应用程序共享同一串口的方法与装置的制作方法

文档序号:6583322阅读:358来源:国知局
专利名称:应用程序共享同一串口的方法与装置的制作方法
技术领域
本发明涉及计算机技术领域,特别涉及一种应用程序共享同一串口的实现方法与
装置。
背景技术
在工业控制中,很多设备采用的是串行端口 (RS232或者RS485)来作为控制端口, 而一般计算机的串口设备在操作系统中是只能限制为l个应用程序控制,如图l所示,一旦 某个程序打开了一个串口,其他应用程序便无法使用它,因此需要一种能够实现多个应用 程序同时使用同一 串口的方法或装置。

发明内容
本发明提供了一种应用程序共享同一串口的方法和装置,以解决一个串口只能被 一个应用程序使用的问题。
本发明应用程序共享同一串口的方法,包括以下步骤
(1).通过多线程通讯的方式接收应用程序的指令; (2).解析指令,将访问同一串口的指令进行排队处理,按照接收的顺序通过串口 发送出去; (3).监听并发送串口的响应码。 本发明应用程序共享同一串口的方法,由于采用多线程通讯的方式接收应用程序 发送的指令,对访问同一串口的指令进行排队处理,使多个应用程序共享同一串口得以实 现。 —种应用程序共享同一串口的装置,包括 接收模块,通过多线程通讯的方式接收应用程序的指令; 解析模块,解析接收模块接收到的指令,将访问同一串口的指令进行排队处理,按
照接收的顺序通过串口发送出去; 发送模块,监听并发送串口的响应码。 本发明应用程序共享同一串口的装置,由于采用可以同时接收多个访问指令的接 收模块和对访问同一串口的指令进行排队处理的解析模块,使多个应用程序共享同一串口 得以实现。


图1是串口被一个应用程序单独使用时,其他应用程序无法使用同一串口的示意 图; 图2是两个个应用程序共享同一串口的示意图; 图3是本发明应用程序关于同一串口的方法实施例的流程图; 图4是本发明应用程序关于同一串口的装置实施例的结构图。
具体实施例方式
由于操作系统的限制,无法在操作系统层面上更改串口被占用的唯一性,本发明 提供了一种应用程序共享同一串口的方法和装置,在应用层面上,通过多线程通讯方式接 收应用程序的访问指令,应用程序的个数不受限制,将访问同一串口的指令进行排队处理, 从而实现串口的共享。 本发明应用程序共享同一串口的方法,如图2所示,其实现的主体是一个串口共
享服务,应用程序通过多进程通讯的方法将指令发送到串口共享服务,共享服务解析数据
后再将指令通过串口发送出去,同时监听串口得到硬件的响应回码,并将回码通过网络返
回给应用程序,将该串口共享服务的方法应用在本发明应用程序共享同一串口的装置上即
可实现应用程序共享同一串口 。 下面结合附图对本发明做进一步的说明。 本发明应用程序共享同一串口的方法,如图3所示,包括以下步骤 步骤301 :初始化网络端口 ,监听网络端口 ; 步骤302 :通过Scoket接口通讯的方式接收应用程序的指令; 步骤303 :解析指令,指令共分为4种打开串口、关闭串口、发送数据和接收数据, 如果是打开串口进入步骤304,如果是关闭串口进入步骤305,如果是发送或接收数据进入 步骤306,从0开始计数串口被打开的次数; 步骤304 :根据计数值和串口是否已经被打开进入步骤307返回相应结果,如果计 数值大于O,说明有其他应用程序通过串口共享服务打开了该串口,将计数值加l,步骤307 发送打开成功,如果计数值等于0但串口已经被打开,说明其他应用程序通过其他方式占 用了该串口,此时步骤307返回打开失败,如果计数值等于0且串口没有被打开,说明该串 口此时空闲,向系统申请打开串口并将计数值加1 ; 步骤305 :将计数值减1,如果计数值为0,则向系统申请关闭串口,进入步骤307, 返回关闭成功; 步骤306 :将指令发给指定的串口,如果有其他指令在访问同一串口,则将指令排 序并按序发送,如果要访问的串口没有被其他指令访问,则通过串口将指令发出去;
步骤307 :监听并发送串口的响应码。
—种应用程序共享同一串口的装置,如图4所示,包括 接收模块,用于打开并监听网络接口,通过Socket接口通讯方式接收监听到的应 用程序发送的指令; 解析模块,包括判断模块、计数模块和排队模块,判断模块判断接收模块接收到的 指令,根据指令内容和串口状态对指令进行相应的处理,计数模块计数每个串口被打开的 次数,排队模块对访问同一个串口的发送和接收数据指令进行排队处理。
发送模块,监听并发送串口的响应码。
其工作过程如图3所示 步骤301 :接收模块打开网络接口,开始监听网络接口是否有应用程序发来的指 令; 步骤302 :接收监听到的指令;
步骤303 :解析模块的判断模块解析指令判断指令类别如果是打开串口则进入 步骤304,如果是关闭串口进入步骤305,如果是发送或接收数据进入步骤306,计数模块从 0开始计数串口被打开的次数; 步骤304 :发送模块根据计数值的大小和串口状态返回相应的结果,如果计数模 块的计数值大于O,说明有其他应用程序通过本串口共享装置打开了该串口,计数模块的计 数值加1,步骤307发送模块发送打开成功,如果计数值等于0但串口已经被打开,说明其他 应用程序通过其他方式占用了该串口,此时步骤307发送模块返回打开失败,如果计数值 等于O且串口没有被打开,说明该串口此时空闲,发送模块向系统申请打开串口,计数模块 将计数值加1 ; 步骤305 :计数模块的计数值减1,如果计数值为0,进入步骤307,发送模块向系统 申请关闭串口并返回关闭成功; 步骤306 :判断模块将指令发给指定的串口,如果有其他指令在访问同一串口,排 队模块将指令排序并按序发送,如果要访问的串口没有被其他指令访问,则通过串口将指 令发出去; 步骤307 :发送模块监听并发送串口的响应码。 本发明应用程序共享同一串口的方法与装置,对外暴露一个Socket通讯接口 ,采 用多线程通讯支持多个应用的连接,任何一个应用对串口进行操作时,只需要将命令码发 送到串口共享服务,服务自动将命令码转发到指定的串口并且将回码通过相同的方式返回 给应用,对于应用除了通讯方式发生了改变,其他任何操作都与单独打开一个串口使用没 有任何区别,并且不需要对内部逻辑实现变更。 以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明 的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范 围之内。
权利要求
一种应用程序共享同一串口的方法,其特征在于,包括以下步骤(1).通过多线程通讯的方式接收应用程序的指令;(2).解析指令,将访问同一串口的指令进行排队处理,按照接收的顺序通过串口发送出去;(3).监听并发送串口的响应码。
2. 根据权利要求l所述的应用程序共享同一串口的方法,其特征在于,步骤(1)之前包 括以下步骤初始化网络接口 ,监听网络接口 。
3. 根据权利要求1或2所述的应用程序共享同一串口的方法,其特征在于,步骤(2)包 括以下步骤a. 解析指令,如果是打开串口进入步骤b,如果是关闭串口进入步骤c,如果是发送或 接收数据进入步骤d,从0开始计数串口打开的次数;b. 根据计数值和串口是否已经被打开返回相应结果,如果计数值大于O,则发送打开 成功并将计数值加1,如果计数值等于0且串口已经被打开,则返回打开失败,如果计数值 等于O且串口没有被打开,则向系统申请打开串口并将计数值加1 ;c. 将计数值减1,返回关闭成功,如果计数值为0,则向系统申请关闭串口 ;d. 将指令发给指定的串口 ,如果有其他指令在访问同一串口 ,则将指令排序并按序发 送,如果要访问的串口没有被其他指令访问,则直接发送指令。
4. 根据权利要求1或2所述的应用程序共享同一串口的方法,其特征在于,所述多线程 通讯的方式为Socket接口通讯。
5. —种应用程序共享同一串口的装置,其特征在于,包括 接收模块,通过多线程通讯的方式接收应用程序的指令;解析模块,解析接收模块接收到的指令,将访问同一串口的指令进行排队处理,按照接 收的顺序通过串口发送出去;发送模块,监听并发送串口的响应码。
6. 根据权利要求5所述的应用程序共享同一串口的装置,其特征在于,所述接收模块 还用于初始化并监听网络接口。
7. 根据权利要求5或6所述的应用程序共享同一串口的装置,其特征在于,所述解析模 块包括判断模块,判断指令内容,根据指令内容、串口状态和计数模块的计数值对指令进行相 应的处理;计数模块,从0开始计数,串口通过本装置被打开一次计数加1,串口通过本装置被关 闭一次计数减1 ;排队模块,将访问同一串口的指令按接收顺序进行排队并通过串口发送出去。
8. 根据权利要求5或6所述的应用程序共享同一串口的装置,其特征在于,所述多线程 通讯的方式为Socket接口通信。
全文摘要
本发明公开了一种应用程序共享同一串口的方法与装置,采用多线程通讯的方式接收应用程序的指令,将访问同一串口的指令进行排队处理并将串口的回码发送给应用程序,从而使应用程序共享同一串口得以实现。
文档编号G06F9/50GK101751291SQ20091021445
公开日2010年6月23日 申请日期2009年12月30日 优先权日2009年12月30日
发明者刘明华, 蒋中斌, 赵宏 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1