CN101751291B - 应用程序共享同一串口的方法与装置 - Google Patents
应用程序共享同一串口的方法与装置 Download PDFInfo
- Publication number
- CN101751291B CN101751291B CN 200910214455 CN200910214455A CN101751291B CN 101751291 B CN101751291 B CN 101751291B CN 200910214455 CN200910214455 CN 200910214455 CN 200910214455 A CN200910214455 A CN 200910214455A CN 101751291 B CN101751291 B CN 101751291B
- Authority
- CN
- China
- Prior art keywords
- serial ports
- instruction
- count value
- sharing
- application programs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种应用程序共享同一串口的方法与装置,采用多线程通讯的方式接收应用程序的指令,将访问同一串口的指令进行排队处理并将串口的回码发送给应用程序,从而使应用程序共享同一串口得以实现。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种应用程序共享同一串口的实现方法与装置。
背景技术
在工业控制中,很多设备采用的是串行端口(RS232或者RS485)来作为控制端口,而一般计算机的串口设备在操作系统中是只能限制为1个应用程序控制,如图1所示,一旦某个程序打开了一个串口,其他应用程序便无法使用它,因此需要一种能够实现多个应用程序同时使用同一串口的方法或装置。
发明内容
本发明提供了一种应用程序共享同一串口的方法和装置,以解决一个串口只能被一个应用程序使用的问题。
本发明应用程序共享同一串口的方法,包括以下步骤:
(1).通过多线程通讯的方式接收应用程序的指令;
(2).解析指令,将访问同一串口的指令进行排队处理,按照接收的顺序通过串口发送出去;
(3).监听并发送串口的响应码。
本发明应用程序共享同一串口的方法,由于采用多线程通讯的方式接收应用程序发送的指令,对访问同一串口的指令进行排队处理,使多个应用程序共享同一串口得以实现。
一种应用程序共享同一串口的装置,包括:
接收模块,通过多线程通讯的方式接收应用程序的指令;
解析模块,解析接收模块接收到的指令,将访问同一串口的指令进行排队处理,按照接收的顺序通过串口发送出去;
发送模块,监听并发送串口的响应码。
本发明应用程序共享同一串口的装置,由于采用可以同时接收多个访问指令的接收模块和对访问同一串口的指令进行排队处理的解析模块,使多个应用程序共享同一串口得以实现。
附图说明
图1是串口被一个应用程序单独使用时,其他应用程序无法使用同一串口的示意图;
图2是两个个应用程序共享同一串口的示意图;
图3是本发明应用程序关于同一串口的方法实施例的流程图;
图4是本发明应用程序关于同一串口的装置实施例的结构图。
具体实施方式
由于操作系统的限制,无法在操作系统层面上更改串口被占用的唯一性,本发明提供了一种应用程序共享同一串口的方法和装置,在应用层面上,通过多线程通讯方式接收应用程序的访问指令,应用程序的个数不受限制,将访问同一串口的指令进行排队处理,从而实现串口的共享。
本发明应用程序共享同一串口的方法,如图2所示,其实现的主体是一个串口共享服务,应用程序通过多进程通讯的方法将指令发送到串口共享服务,共享服务解析数据后再将指令通过串口发送出去,同时监听串口得到硬件的响应回码,并将回码通过网络返回给应用程序,将该串口共享服务的方法应用在本发明应用程序共享同一串口的装置上即可实现应用程序共享同一串口。
下面结合附图对本发明做进一步的说明。
本发明应用程序共享同一串口的方法,如图3所示,包括以下步骤:
步骤301:初始化网络端口,监听网络端口;
步骤302:通过Scoket接口通讯的方式接收应用程序的指令;
步骤303:解析指令,指令共分为4种:打开串口、关闭串口、发送数据和接收数据,如果是打开串口进入步骤304,如果是关闭串口进入步骤305,如果是发送或接收数据进入步骤306,从0开始计数串口被打开的次数;
步骤304:根据计数值和串口是否已经被打开进入步骤307返回相应结果,如果计数值大于0,说明有其他应用程序通过串口共享服务打开了该串口,将计数值加1,步骤307发送打开成功,如果计数值等于0但串口已经被打开,说明其他应用程序通过其他方式占用了该串口,此时步骤307返回打开失败,如果计数值等于0且串口没有被打开,说明该串口此时空闲,向系统申请打开串口并将计数值加1;
步骤305:将计数值减1,如果计数值为0,则向系统申请关闭串口,进入步骤307,返回关闭成功;
步骤306:将指令发给指定的串口,如果有其他指令在访问同一串口,则将指令排序并按序发送,如果要访问的串口没有被其他指令访问,则通过串口将指令发出去;
步骤307:监听并发送串口的响应码。
一种应用程序共享同一串口的装置,如图4所示,包括:
接收模块,用于打开并监听网络接口,通过Socket接口通讯方式接收监听到的应用程序发送的指令;
解析模块,包括判断模块、计数模块和排队模块,判断模块判断接收模块接收到的指令,根据指令内容和串口状态对指令进行相应的处理,计数模块计数每个串口被打开的次数,排队模块对访问同一个串口的发送和接收数据指令进行排队处理。
发送模块,监听并发送串口的响应码。
其工作过程如图3所示:
步骤301:接收模块打开网络接口,开始监听网络接口是否有应用程序发来的指令;
步骤302:接收监听到的指令;
步骤303:解析模块的判断模块解析指令判断指令类别:如果是打开串口则进入步骤304,如果是关闭串口进入步骤305,如果是发送或接收数据进入步骤306,计数模块从0开始计数串口被打开的次数;
步骤304:发送模块根据计数值的大小和串口状态返回相应的结果,如果计数模块的计数值大于0,说明有其他应用程序通过本串口共享装置打开了该串口,计数模块的计数值加1,步骤307发送模块发送打开成功,如果计数值等于0但串口已经被打开,说明其他应用程序通过其他方式占用了该串口,此时步骤307发送模块返回打开失败,如果计数值等于0且串口没有被打开,说明该串口此时空闲,发送模块向系统申请打开串口,计数模块将计数值加1;
步骤305:计数模块的计数值减1,如果计数值为0,进入步骤307,发送模块向系统申请关闭串口并返回关闭成功;
步骤306:判断模块将指令发给指定的串口,如果有其他指令在访问同一串口,排队模块将指令排序并按序发送,如果要访问的串口没有被其他指令访问,则通过串口将指令发出去;
步骤307:发送模块监听并发送串口的响应码。
本发明应用程序共享同一串口的方法与装置,对外暴露一个Socket通讯接口,采用多线程通讯支持多个应用的连接,任何一个应用对串口进行操作时,只需要将命令码发送到串口共享服务,服务自动将命令码转发到指定的串口并且将回码通过相同的方式返回给应用,对于应用除了通讯方式发生了改变,其他任何操作都与单独打开一个串口使用没有任何区别,并且不需要对内部逻辑实现变更。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (6)
1.一种应用程序共享同一串口的方法,其特征在于,包括以下步骤:
(1).通过多线程通讯的方式接收应用程序的指令;
(2).解析指令,将访问同一串口的指令进行排队处理,按照接收的顺序通过串口发送出去;
(3).监听并发送串口的响应码,
步骤(2)包括以下步骤:
a.解析指令,如果是打开串口进入步骤b,如果是关闭串口进入步骤c,如果是发送或接收数据进入步骤d;
b.根据计数值和串口是否已经被打开返回相应结果,如果计数值大于0,则发送打开成功并将计数值加1,如果计数值等于0且串口已经被打开,则返回打开失败,如果计数值等于0且串口没有被打开,则向系统申请打开串口并将计数值加1,所述计数值表示串口打开的次数,从0开始计数;
c.将计数值减1,返回关闭成功,如果减1后计数值为0,则向系统申请关闭串口,所述计数值表示串口打开的次数,从0开始计数;
d.将指令发给指定的串口,如果有其他指令在访问同一串口,则将指令排序并按序发送,如果要访问的串口没有被其他指令访问,则直接发送指令。
2.根据权利要求1所述的应用程序共享同一串口的方法,其特征在于,步
骤(1)之前包括以下步骤:
初始化网络接口,监听网络接口。
3.根据权利要求1或2所述的应用程序共享同一串口的方法,其特征在于,所述多线程通讯的方式为Socket接口通讯。
4.一种应用程序共享同一串口的装置,其特征在于,包括:
接收模块,通过多线程通讯的方式接收应用程序的指令;
解析模块,解析接收模块接收到的指令,将访问同一串口的指令进行排队处理,按照接收的顺序通过串口发送出去;
发送模块,监听并发送串口的响应码,
所述解析模块包括:
判断模块,判断指令内容,根据指令内容、串口状态和计数模块的计数值对指令进行相应的处理;
计数模块,从0开始计数,串口通过本装置被打开一次计数加1,串口通过本装置被关闭一次计数减1;
排队模块,将访问同一串口的指令按接收顺序进行排队并通过串口发送出去。
5.根据权利要求4所述的应用程序共享同一串口的装置,其特征在于,所述接收模块还用于初始化并监听网络接口。
6.根据权利要求4或5所述的应用程序共享同一串口的装置,其特征在于,所述多线程通讯的方式为Socket接口通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910214455 CN101751291B (zh) | 2009-12-30 | 2009-12-30 | 应用程序共享同一串口的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910214455 CN101751291B (zh) | 2009-12-30 | 2009-12-30 | 应用程序共享同一串口的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101751291A CN101751291A (zh) | 2010-06-23 |
CN101751291B true CN101751291B (zh) | 2013-03-20 |
Family
ID=42478303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910214455 Expired - Fee Related CN101751291B (zh) | 2009-12-30 | 2009-12-30 | 应用程序共享同一串口的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101751291B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739619B (zh) * | 2011-04-14 | 2015-08-26 | 阿里巴巴集团控股有限公司 | 一种数据通信方法和装置 |
CN102520936B (zh) * | 2011-11-30 | 2017-02-08 | 厦门雅迅网络股份有限公司 | 一种在Android上实现Socket通讯服务共享的方法 |
CN103428357B (zh) * | 2012-05-25 | 2016-12-21 | 上海盛付通电子支付服务有限公司 | 实现移动终端操作系统上的本地服务共享的方法及装置 |
CN103078908B (zh) * | 2012-12-26 | 2015-09-09 | 北京经纬恒润科技有限公司 | 一种数据传输方法及装置 |
CN103118181B (zh) * | 2013-01-17 | 2015-12-02 | 努比亚技术有限公司 | 一种处理同步at指令的方法及装置 |
CN104601655B (zh) * | 2014-12-05 | 2018-02-13 | 上海斐讯数据通信技术有限公司 | 智能插座的控制方法及装置 |
CN104503852A (zh) * | 2014-12-26 | 2015-04-08 | 河南信安通信技术有限公司 | 一种多进程串口通信方法 |
CN106488297B (zh) * | 2016-10-21 | 2019-01-22 | 广州酷狗计算机科技有限公司 | 一种显示图像数据的方法和装置 |
CN107688486A (zh) * | 2017-08-10 | 2018-02-13 | 深圳市证通电子股份有限公司 | 基于共享服务的串口共享方法、共享装置及存储介质 |
CN108052477A (zh) * | 2017-11-27 | 2018-05-18 | 成都华力创通科技有限公司 | 消除rs422串口干扰的方法 |
CN110620713B (zh) * | 2019-09-11 | 2022-03-25 | 北京演能科技有限公司 | Modbus协议共享通讯的方法和装置 |
CN111475318B (zh) * | 2020-04-29 | 2021-02-23 | 中国人民解放军军事科学院国防科技创新研究院 | 一种支持多用户访问的串口通信装置、方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016868A1 (en) * | 1998-05-13 | 2002-02-07 | Palm, Inc. | Method and apparatus for serial port sharing |
CN101067794A (zh) * | 2007-06-14 | 2007-11-07 | 中兴通讯股份有限公司 | 多核处理器及其串口复用方法 |
-
2009
- 2009-12-30 CN CN 200910214455 patent/CN101751291B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016868A1 (en) * | 1998-05-13 | 2002-02-07 | Palm, Inc. | Method and apparatus for serial port sharing |
CN101067794A (zh) * | 2007-06-14 | 2007-11-07 | 中兴通讯股份有限公司 | 多核处理器及其串口复用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101751291A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101751291B (zh) | 应用程序共享同一串口的方法与装置 | |
US10338945B2 (en) | Heterogeneous field devices control management system based on industrial internet operating system | |
US10365957B2 (en) | Multicasting of event notifications using extended socket for inter-process communication | |
EP2814214B1 (en) | A system for providing multi-cell support with a single symmetric multi-processing, smp, partition in a telecommunications network | |
EP3026863B1 (en) | Firewall with application packet classifier | |
US9537734B2 (en) | Network-based high performance SAP monitoring system and method | |
CN109918230A (zh) | 一种业务板卡异常恢复方法及系统 | |
EP3640187B1 (en) | Method and system for monitoring elevator communication module fault and elevator | |
CN105528261B (zh) | 一种嵌入式设备中智能输出调试信息的方法及系统 | |
CN106326736A (zh) | 数据处理方法及系统 | |
CN107066413A (zh) | 一种用于处理多个总线设备数据的方法、及其总线系统 | |
US20130208581A1 (en) | Wireless gateway apparatus | |
KR20060057587A (ko) | 다중-채널-can-애플리케이션들의 진단을 위한 디바이스및 방법 | |
CN105472290B (zh) | 数据收发运行模式的处理方法及装置 | |
CN103731316B (zh) | 一种流量监控装置及方法 | |
EP1217517A1 (en) | Synchronizing calls in a server and client system | |
US20160197766A1 (en) | Soft redundancy protocol | |
CN101488910B (zh) | 用于在多个套接字之间通信的方法 | |
CN107920035B (zh) | 用于确定性交换式以太网的多核处理器类型装置、系统及运载工具 | |
CN114513383B (zh) | 基于原始套接字的实时以太网现场总线数据包处理方法 | |
CN101247397A (zh) | 一种镜像和访问控制列表功能生效顺序的优化方法 | |
CN105721342B (zh) | 多进程设备的网络连接方法和系统 | |
CN101320359A (zh) | 串口设备控制电路及控制方法 | |
CN106973065A (zh) | 一种服务器事件处理系统及方法 | |
CN101155177A (zh) | 基于共用协议的数据通道共享系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Kezhu road high tech Industrial Development Zone, Guangzhou city of Guangdong Province, No. 233 510670 Patentee after: Wei Chong group Limited by Share Ltd Address before: 510663 Guangzhou province high tech Industrial Development Zone, Guangdong, Cai road, No. 6, No. Patentee before: Guangdong Weichuangshixun Science and Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130320 Termination date: 20181230 |