CN107729264B - 一种控制***串口设备的方法 - Google Patents
一种控制***串口设备的方法 Download PDFInfo
- Publication number
- CN107729264B CN107729264B CN201710923154.1A CN201710923154A CN107729264B CN 107729264 B CN107729264 B CN 107729264B CN 201710923154 A CN201710923154 A CN 201710923154A CN 107729264 B CN107729264 B CN 107729264B
- Authority
- CN
- China
- Prior art keywords
- serial port
- port
- virtual serial
- virtual
- threshold value
- 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.)
- Active
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 161
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000004891 communication Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 description 24
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种控制***串口设备的方法,包括:根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;控制设备与第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;接收控制设备传来的、对第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;将控制信息对应的对第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制***串口设备。实施本发明实施例,使得控制设备通过第三方控制设备上的任一虚拟串口实现对***串口设备的控制。
Description
本申请是针对于2011年11月07日提交到中国专利局、申请号为201110314253.2、发明名称为“一种控制***串口设备的方法、***及控制设备”的母案申请作出的分案申请,上述母案申请的内容以引入的方式并入本文中。
技术领域
本发明涉及串口通讯领域,具体而言,尤其涉及一种控制***串口设备的方法。
背景技术
基于串口通讯的***串口设备,均需要通过串口(物理串口或虚拟串口)和控制设备建立连接,从而实现控制设备与***串口设备之间的串口通讯。
现有中,对于通过物理串口进行串口通讯的***串口设备,通常是为该***串口设备开发一个驱动,控制设备在安装了该***串口设备的驱动之后,就可以通过其物理串口与***串口设备的物理串口进行串口通讯,进而控制***串口设备。例如,开发人员开发一个条码扫描设备的驱动,控制设备安装了该条码扫描设备的驱动程序,就可以通过物理串口与该条码扫描设备的物理串口进行串口通讯,例如进行条码扫描操作等。现有中,控制设备通常为内置有WINCE***的设备,例如PDA等。
现有中,对于通过虚拟串口与控制设备进行串口通讯的***串口设备,其通常是与第三方控制设备上端口号为1-9的虚拟串口进行串口通讯。控制设备通过远程桌面RDP协议与第三方控制设备上端口号为1-9的虚拟串口建立连接,实现与***串口设备的串口通讯,进而实现控制设备对***串口设备的控制。
发明内容
本发明的目的在于克服现有技术的不足,提供一种控制***串口设备的方法、***及控制设备,使得控制设备能够通过控制其虚拟串口、或控制第三方控制设备的任一虚拟串口来实现对***串口设备的控制。
为了解决上述问题,本发明提出了一种控制***串口设备的方法,包括:
根据预设串口配置信息,将***串口设备的物理串口转换成控制设备的任一虚拟串口;
接收对所述控制设备的虚拟串口进行操作的控制信息;
将所述控制信息对应的对所述虚拟串口的操作转换成对所述***串口设备的物理串口的操作。
一种控制***串口设备的方法,包括:
根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;所述第三方控制设备与***串口设备通过所述端口号大于域值的任一虚拟串口进行串口通讯;控制设备与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;
接收控制设备传来的、对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;
将所述控制信息对应的对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制所述***串口设备;
所述域值指的是控制设备与第三方控制设备的任意虚拟串口建立连接时,所连接虚拟串口对应的最大端口号。
相应地,本发明提供了一种控制设备,包括:
接收模块,用于接收对所述控制设备的虚拟串口进行操作的控制信息;
转换模块,用于根据预设串口配置信息,将***串口设备的串口转换成控制设备的虚拟串口;以及还用于将所述接收模块接收的所述控制信息对应的对所述虚拟串口的操作转换成对所述***串口设备的物理串口的操作。
最后,本发明还提供了一种控制***串口设备的***,包括:
控制设备,用于根据预设串口配置信息,将***串口设备的串口转换成控制设备的虚拟串口;接收对所述控制设备的虚拟串口进行操作的控制信息;以及将所述控制信息对应的对所述虚拟串口的操作转换成对所述***串口设备的物理串口的操作;
***串口设备,用于接收控制设备传来的控制信息并响应所述控制信息对应的对所述虚拟串口的操作,以及通过其物理串口将操作结果返回给控制设备。
本发明的有益效果:
通过根据预设串口配置信息,将***串口设备的物理串口转换成控制设备的虚拟串口;或者将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口,其中,第三方控制设备通过其端口号大于域值的任一虚拟串口与***串口设备进行串口通讯,控制设备利用远程桌面协议,与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;如此设计,控制设备对其虚拟串口的操作或对第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作均可以转换为对***串口设备的串口的操作,进而实现控制设备对所述***串口设备的控制。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施一的控制***串口设备的方法流程图;
图2是本发明实施二的控制***串口设备的方法流程图;
图3是本发明实施三的控制***串口设备的方法流程图;
图4是本发明实施四的控制***串口设备的方法流程图;
图5是本发明实施例五的控制设备的结构示意图;
图6是本发明实施例五的转换模块的结构示意图;
图7是本发明实施例六的控制***串口设备的***示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
现有中,若***串口设备通过物理串口与控制设备进行串口通讯时,均需要应用开发者为该***串口设备开发一个驱动。应用开发者在开发***串口设备的驱动时,需要涉及到很多细节,例如,***串口设备如何初始化,如何接收和发送数据,如何解析和封装数据包,如何管理其电源以便省电等。因此,对于应用开发者来说,其需要掌握足够的技术细节,并且还需要花费较长的开发周期才能够开发适合于某一个具体***串口通讯设备的驱动。
试想,如果***串口设备的制造商或第三方开发人员将***串口通讯设备对应的驱动做成一个虚拟串口并由控制设备的操作***加载,如此,则屏蔽了对该***串口设备底层操作的所有技术细节,而其技术细节均由虚拟串口的驱动来完成。这样,对于应用开发者来说,其只需通过控制控制设备上的虚拟串口,则可以实现对该***串口设备的控制,而不用去关心该***串口设备的底层操作。并且,所有的应用开发者均可以通过控制该控制设备上的虚拟串口来控制***串口设备。
根据上述构思,如图1所示,是本发明实施例一的一种控制***串口设备的方法,包括:
S11、根据预设串口配置信息,将***串口设备的物理串口转换成控制设备的虚拟串口;
虚拟串口,指的是控制设备在不增加任何硬件的条件下,通过一定的操作,在其操作***上建立***串口设备的VSP(VirtualSerialPort:虚拟串口)。如此,应用开发者可以像使用操作***的标准串口一样使用虚拟串口与***串口设备进行串口通讯。虚拟串口相当于在控制设备与***串口设备之间建立了一条无限长的数据链路,应用开发者可以认为***串口设备是直接连接到控制设备上的。
本步骤中,控制设备根据预设的串口虚拟信息,可以将***串口设备的物理串口转换成控制设备的虚拟串口。如此,应用开发者对该控制设备虚拟串口的操作即可转换为对***串口设备的物理串口的操作。
***串口设备可以为一切基于物理串口与控制设备进行串口通讯的设备,例如条码扫描设备等。现有中,当控制设备将条码扫描设备的物理串口转换成控制设备上的虚拟串口时,应用开发者通过控制控制设备上的虚拟串口,即可实现对***串口设备的控制。其中,控制设备可以为PDA等。
S12、接收对所述控制设备的虚拟串口进行操作的控制信息;
本步骤中,应用开发者在控制设备上输入的控制信息对应的操作,包括对所述控制设备的虚拟串口的访问、读、写等操作。
S13、将所述控制信息对应的对所述虚拟串口的操作转换成对所述***串口设备的物理串口的操作。
步骤S13中,控制设备在接收了应用开发者输入的控制信息后,还将该控制信息通过所述虚拟串口传送给所述***串口设备。***串口设备响应所述控制信息对应的对所述控制设备的虚拟串口的操作,并将操作结果返回给控制设备。如此,即可以将所述控制信息对应的对所述控制设备上所述虚拟串口的操作转换成对所述***串口设备的物理串口的操作。
在步骤S11-S13中,通过将***串口设备的物理串口转换成控制设备的虚拟串口,如此则使得应用开发者对控制设备的虚拟串口的操作均可以转换成对***串口设备的操作。因此,所有的应用开发者通过控制控制设备上的所述虚拟串口,即可实现对***串口设备的控制,如访问、读、写***串口控制设备等,而不用去关心该***串口设备的底层操作的实现(比如:***串口设备如何初始化,如何接收和发送数据等底层操作的实现),从而减少了应用开发者的开发工作量,并且也使得该虚拟串口具有一定的通用性和易操作性。
如图2所示,是本发明实施例二的一种控制***串口设备的方法,包括:
S21、接收预设串口配置信息;
具体实现中,在将***串口设备的物理串口转换成控制设备的虚拟串口之前,还需要接收开发人员导入的预设串口配置信息,所述预设串口配置信息具体包括:开发人员设置的所述虚拟串口的注册信息、配置的所述虚拟串口的配置文件、以及预设的所述***串口设备的物理串口转换成所述控制设备的虚拟串口的驱动程序。
其中,所述控制设备内置有操作***,所述根据预设串口配置信息,将***串口设备的物理串口转换成控制设备的虚拟串口,具体包括:
首先,操作***根据接收到的注册信息,识别需要加载的虚拟串口的加载顺序、端口号以及对应的驱动的名称。例如,需要加载的虚拟串口的对应的驱动名称为:VirualCom.dll,端口号为9。
需要说明的一点是,本发明实施例中的操作***,可以为现有的所有操作***,例如Windows系列操作***,Vista系列的操作***等。
需要说明的另一点是,开发人员在设置所述虚拟串口的注册信息时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。在本发明实施例中,所述的开发人员,均指的是***串口设备的制造商或第三方开发人员,并非应用开发者。
其次,所述操作***根据开发人员配置的配置文件,例如,根据开发人员配置的该虚拟串口的bib配置文件,加载所述***串口设备的物理串口转换成所述控制设备的虚拟串口的驱动程序,以便在操作***生成的时候,保证该操作***内包括该驱动程序。需要说明的一点是,开发人员在配置该虚拟串口的配置文件时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。
最后,所述操作***运行所述***串口设备的物理串口转换成所述控制设备的虚拟串口的驱动程序,完成所述***串口设备的物理串口到控制设备的虚拟串口的转换。
需要说明的是,开发人员在预设***串口设备的物理串口转换成控制设备的虚拟串口的驱动程序时,所使用的开发语言没有明确的限定,可以为C语言,C++语言,汇编语言等。
例如,在使用C++语言来预设***串口设备的物理串口转换成控制设备的虚拟串口的驱动程序时,开发人员(包括***串口设备的制造商或第三方开发人员,不同于应用开发者)可以使用COM_Init函数来完成***串口设备的初始化,使用COM_Open函数来打开***串口设备的物理串口,并通过该物理串口向***串口设备发送应用开发者输入的控制信息。例如,还使用COM_Close函数来控制***串口设备的物理串口的关闭;使用COM_IOControl函数来完成对物理串口的通讯波特率,奇偶位,数据位、硬件流、以及设备电源管理的设置,当然对***串口设备的一些控制功能都可以封装在该函数中。使用COM_Deinit函数来卸载***串口设备,使用COM_Write来完成对数据包的封装、并把数据包发送给***串口设备。使用COM_Read函数来完成对数据包的读取和解析,并将数据传输给控制设备。
S22、根据预设串口配置信息,将***串口设备的物理串口转换成控制设备的虚拟串口;
S23、接收对所述控制设备的虚拟串口进行操作的控制信息;
S24、将所述控制信息对应的对所述虚拟串口的操作转换成对所述***串口设备的物理串口的操作。
其中,步骤S22-S24的操作与实施例一步骤S11-S13的操作相同,在此不在重复描述。
在实施例一以及本实施中,***串口设备可以为一切基于物理串口与控制设备进行串口通讯的设备,例如条码扫描设备等。当开发人员将条码扫描设备的物理串口转换成控制设备上的虚拟串口时,应用开发者通过控制控制设备上的所述虚拟串口,即可实现对条码扫描设备的控制。如此,所有的应用开发者在对开发改条码扫描设备的应用时,不用去关心该虚拟串口的底层操作的实现,从而也缩减了应用开发者的工作量。
现有技术中,对于通过虚拟串口进行串口通讯的***串口设备(如蓝牙设备等),其通常是与第三方控制设备(如装有WINCE***的蓝牙设备、Windowsmobile***的蓝牙设备)上端口号为1-9的虚拟串口进行串口通讯。控制设备(如PC机等)通过RDP(RemoteDesktopProtocol:远程桌面协议)与第三方控制设备建立连接,通过控制第三方控制设备上端口号为1-9的虚拟串口,进而控制***串口设备。然而,对于端口号非常紧缺的第三方控制设备(如装有WINCE***的蓝牙设备、Windowsmobile***的蓝牙设备等),其与***串口设备进行通讯的虚拟串口的端口号可能不是1-9内的任一端口号,而是端口号大于9的端口号。此时,PC机通过RDP协议与装有WINCE的蓝牙设备时建立连接时,由于其只能发现装有WINCE***、Windowsmobile***的蓝牙设备上端口号为1-9之间的任一串口,所以此时PC机不能与***串口设备建立连接,控制***串口设备。由此,本发明还提供了一种控制***串口设备的方法,如图3所示,是本发明实施例三的一种控制***串口设备的方法,包括:
S31、根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;所述第三方控制设备与***串口设备通过所述端口号大于域值的任一虚拟串口进行串口通讯;控制与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;
本步骤中所述的虚拟串口,与实施一中所述的虚拟串口相同,在此不再重复描述。本步骤中所述的域值,指的是控制设备与第三方控制设备的任一虚拟串口建立连接时,该任一虚拟串口对应的最大端口号。
具体实现中,***串口设备可以为一切基于虚拟串口与第三方控制设备进行串口通讯的设备,例如蓝牙设备A。第三方控制设备为内置有操作***的设备,如装有Wince***或windowsmobile***的蓝牙设备B。若两个蓝牙设备通过蓝牙的串口协议建立连接,假设蓝牙设备B使用端口号为12的蓝牙串口与蓝牙设备A进行串口通讯。而控制设备可以为PC机,其通过RDP与蓝牙设备B建立连接。由于在PC机端只能发现蓝牙设备B中端口号在0到9的之间的任一串口。也就是说,9则为第三方控制设备与控制设备建立连接时使用的虚拟端口对应的最大端口号,即9为域值。因为PC机上发现不了端口号为12的蓝牙串口,所以就没有办法访问蓝牙设备B。如果PC机想要通过RDP来访问同蓝牙设备B建立连接的蓝牙设备A,则需要通过在蓝牙设备B上添加一个端口号为0到9之间的任一虚拟串口。具体做法就是把蓝牙设备B上端口号为12的蓝牙串口转换成蓝牙设备B上端口号在0到9之间的任一虚拟串口,假设就虚拟为虚拟串口9,那么所有对蓝牙设备B上端口号为9的虚拟串口的操作均可全部转化对蓝牙设备上端口号为12的蓝牙串口的操作,这样PC机就可以通过控制蓝牙设备B的端口号为9的虚拟串口来控制蓝牙设备A。
S32、接收控制设备传来的、对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;
本步骤中,应用开发者在控制设备上输入控制信息,并将其传输给第三方控制设备。其中,应用开发者输入的控制信息对应的操作,包括读、写、控制等操作。
S33、将所述控制信息对应的对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制所述***串口设备。
步骤S33中,应用开发者在控制设备上输入控制信息,并将其传输给第三方控制设备。比如,第三方控制设备在接收了对所述端口号为1至9任一虚拟串口的控制信息后,将该控制信息依次通过端口号为1-9的任一虚拟串口、端口号大于9的任一虚拟串口传送给***串口设备。***串口设备响应所述控制信息对应的对所述第三方控制设备中端口号为1-9的任一虚拟串口的操作,并将操作结果返回给第三方控制设备。第三方控制设备接收到所述操作结果后,还将其传送给控制设备。
在步骤S31-S33中将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口,使得应用开发者通过控制设备输入的对第三方控制设备上端口号小于或等于域值的任一虚拟串口上的操作均可以转换成对第三方控制设备上端口号大于域值的任一虚拟串口的操作,进而转换为对***串口设备的虚拟串口的操作。如此,使得控制设备通过第三方控制设备上的任一虚拟串口,即可实现对***串口设备的控制。
如图4所示,是本发明实施例四的一种控制***串口设备的方法,包括:
S41、接收预设串口配置信息;
具体实现中,将控制设备中端口号大于域值的任一虚拟串口转换成控制设备中端口号小于或等于域值的任一虚拟串口之前,还包括接收预设串口配置信息,所述预设串口配置信息具体包括:
开发人员设置的第三方控制设备上端口号小于或等于域值的任一虚拟串口的注册信息、配置的所述小于或等于域值的任一虚拟串口的配置文件、以及预设的所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序。
其中,所述第三方控制设备内置有操作***,如WINC***,或Windows***,将控制设备中端口号大于域值的任一虚拟串口转换成控制设备中端口号小于或等于域值的任一虚拟串口,具体为:
首先,操作***根据接收到的注册信息,识别需要加载的虚拟串口的加载顺序、端口号以及对应的驱动的名称。例如,需要加载的虚拟串口的对应的驱动名称为:VirualCom.dll,端口号为9。此处在设置虚拟串口的端口号时,只能设置端口号为小于或等于域值的任一虚拟串口,如端口号为1-9之间的任一虚拟串口。
需要说明的一点是,开发人员在设置所述小于或等于域值的任一虚拟串口的注册信息时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。在本发明实施例中,所述的开发人员,均指的是***串口设备的制造商或第三方开发人员,并非应用开发者。
其次,操作***根据所述配置文件,加载所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序。例如,操作***根据开发人员配置的端口号为9的虚拟串口的bib配置文件(其中9为域值),加载端口号为12的虚拟串口转换成9虚拟串口的驱动程序,以便在操作***生成的时候,保证该操作***内包括该驱动程序。需要说明的一点是,开发人员在配置小于或等于域值的任一虚拟串口的配置文件时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。
最后,所述操作***运行所述开发人员预设的所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序,完成所述端口号大于域值的任一虚拟串口转换成到所述端口号小于或等于域值的任一虚拟串口的转换。
其中,开发人员在预设所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。
例如,在使用C++语言来预设所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序时,开发人员(包括***串口设备的制造商或第三方开发人员,不同于应用开发者)可以使用COM_Init函数来完成***串口设备的初始化,使用COM_Open函数来打开***串口设备对应的虚拟串口,并通过该虚拟串口向***串口设备发送应用开发者输入的控制信息。例如,还使用COM_Close函数来控制***串口设备的虚拟串口的关闭;使用COM_IOControl函数来完成对虚拟串口的通讯波特率,奇偶位,数据位、硬件流、以及设备电源管理的设置,当然对***串口设备的一些控制功能都可以封装在该函数中。使用COM_Deinit函数来卸载***串口设备,使用COM_Write来完成对数据包的封装、并把数据包发送给***串口设备。使用COM_Read函数来完成对数据包的读取和解析,并将数据传输给控制设备。
S42、根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;所述第三方控制设备与***串口设备通过所述端口号大于域值的任一虚拟串口进行串口通讯;控制设备与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;
S43、接收控制设备传来的、对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;
S44、将所述控制信息对应的对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制所述***串口设备。
其中,步骤S42-S44的操作与实施例三步骤S31-S33的操作相同,在此不在重复描述。
本实施例中,第三方控制设备根据接收到的预设串口配置信息,将其上端口号大于域值的任一虚拟串口转换成端口号小于或等于域值的任一虚拟串口,使得应用开发者通过控制设备输入的对第三方控制设备上端口号小于或等于域值的任一虚拟串口上的操作均可以转换成对第三方控制设备上端口号大于域值的任一虚拟串口的操作,进而转换为对***串口设备的虚拟串口的操作。如此,使得控制设备通过第三方控制设备上的任一虚拟串口,即可实现对***串口设备的控制,如访问、读写***串口控制设备等。
相应地,如图5所示,本发明实施例五还公开一种控制设备,包括:
接收模块51,用于接收对所述控制设备的虚拟串口进行操作的控制信息;其中,应用开发者在控制设备上输入的控制信息对应的操作,包括访问、读、写等操作。发明实施例所述的虚拟串口,与实施一中所述的虚拟串口相同,在此不再描述。
其中,所述接收模块51还用于接收预设串口配置信息,所述预设串口配置信息为开发人员预设的,具体包括:
所述虚拟串口的注册信息;
所述虚拟串口的配置文件;
所述***串口设备的物理串口转换成所述控制设备的虚拟串口的驱动程序。其中,开发人员在配置该预设串口配置信息时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。
转换模块52,用于根据预设串口配置信息,将***串口设备的串口转换成控制设备的虚拟串口;如此,应用开发者对该虚拟串口的操作即可转换为对***串口设备的物理串口的操作。
转换模块52,还用于将接收模块51接收到的所述控制信息对应的对所述虚拟串口的操作转换成对所述***串口设备的物理串口的操作。
具体实现中,如图6所示,转换模块52包括:
注册信息识别单元61,用于根据所述注册信息,识别需要加载的所述虚拟端口的加载顺序、端口号以及驱动名称;例如,注册信息识别单元61,需要加载的虚拟串口的对应的驱动名称为:VirualCom.dll,端口号为9。此处,开发人员在设置转换后的虚拟串口的端口号时,对端口号没有限定。
驱动程序记载单元62,用于根据所述配置信息,加载所述***串口设备的物理串口转换到所述控制设备的虚拟串口的驱动程序;例如,驱动程序记载单元62根据开发人员配置的端口号为9的虚拟串口的bib配置文件(其中9为域值),加载端口号为12的虚拟串口转换成9虚拟串口的驱动程序,以便在操作***生成的时候,保证该操作***内包括该驱动程序。
驱动程序运行单元,用于运行所述驱动程序,将所述***串口设备的物理串口转换成控制设备的虚拟串口。
其中,需要说明的是,开发人员在使用C++语言来预设所述驱动程序时,***串口设备的制造商或第三方开发人员(不同于应用开发者)可以使用COM_Init函数来完成***串口设备的初始化,使用COM_Open函数来打开***串口设备的物理串口,并通过该物理串口向***串口设备发送应用开发者输入的控制信息。例如,还使用COM_Close函数来控制***串口设备的物理串口的关闭;使用COM_IOControl函数来完成对物理串口的通讯波特率,奇偶位,数据位、硬件流、以及设备电源管理的设置,当然对***串口设备的一些控制功能都可以封装在该函数中。使用COM_Deinit函数来卸载***串口设备,使用COM_Write来完成对数据包的封装、并把数据包发送给***串口设备。使用COM_Read函数来完成对数据包的读取和解析,并将数据传输给控制设备。
收发单元62,用于将所述控制信息通过所述虚拟串口传送给所述***串口设备;以及用于接收所述***串口设备响应所述控制信息对应的对所述虚拟串口的操作后返回的操作结果。
本实施例中,在转换模块的作用下,将接收模块接收到的应用开发者输入的控制信息对应的对所述控制设备的虚拟串口的操作转换成对***串口设备的操作。如此,所有的应用开发者通过控制控制设备上的虚拟串口,即可实现对***串口设备的控制,如访问、读、写***串口控制设备等,而不用去关心该***串口设备的底层操作的实现(比如:***串口设备如何初始化,如何接收和发送数据等底层操作的实现),缩减了应用开发者的工作量,并且也使得该虚拟串口具有一定的通用性和易操作性。
最后,如图7所示,本发明还公开了一种控制***串口设备的***,包括:
控制设备71,用于根据预设串口配置信息,将***串口设备的串口转换成控制设备的虚拟串口;接收对所述控制设备的虚拟串口进行操作的控制信息;以及将所述控制信息对应的对所述虚拟串口的操作转换成对所述***串口设备的物理串口的操作;
***串口设备72,用于接收控制设备传来的控制信息并响应所述控制信息对应的对所述虚拟串口的操作,以及通过其物理串口将操作结果返回给控制设备。
本实施例的控制***串口设备的***,通过控制设备将***串口设备的物理串口转换成控制设备的虚拟串口,使得应用开发者在控制设备的虚拟串口上的操作均可以转换成对***串口设备的操作。如此,所有的应用开发者通过控制控制设备上的所述虚拟串口,即可实现对***串口设备的控制,如访问、读写***串口控制设备等,而不用去关心该***串口设备的底层操作的实现(比如:***串口设备如何初始化,如何接收和发送数据等底层操作的实现),从而缩减了应用开发者的开发工作量,并且也使得该虚拟串口具有一定的通用性和易操作性。
以上对本发明实施例所提供的,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (4)
1.一种控制***串口设备的方法,其特征在于,包括:
根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;所述第三方控制设备与***串口设备通过所述端口号大于域值的任一虚拟串口进行串口通讯;控制设备与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;
接收控制设备传来的、对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;
将所述控制信息对应的对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制所述***串口设备;
所述域值指的是控制设备与第三方控制设备的任意虚拟串口建立连接时,所连接虚拟串口对应的最大端口号。
2.如权利要求1所述的方法,其特征在于,将控制设备中端口号大于域值的任一虚拟串口转换成控制设备中端口号小于或等于域值的任一虚拟串口之前,还包括接收预设串口配置信息,所述预设串口配置信息包括:
所述小于或等于域值的任一虚拟串口的注册信息;
所述小于或等于域值的任一虚拟串口的配置文件;
所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序。
3.如权利要求2所述的方法,其特征在于,所述第三方控制设备内置操作***,所述将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口,包括:
所述操作***根据所述注册信息,识别所述小于或等于域值的任一虚拟端口的加载顺序、端口号以及驱动名称;
所述操作***根据所述配置文件,加载所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序;
所述操作***运行所述驱动程序,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口。
4.如权利要求1-3任一项所述的方法,其特征在于,将所述控制信息对应的对所述第三方控制设备中小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,进而控制所述***串口设备,包括:
将所述控制信息依次通过所述端口号小于或等于域值的任一虚拟串口、所述端口号大于域值的任一虚拟串口传送给所述***串口设备;
接收所述***串口设备响应所述控制信息对应的对所述第三方控制设备中小于或等于域值的任一虚拟串口的操作后返回的操作结果,并将所述操作结果传送给所述控制设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710923154.1A CN107729264B (zh) | 2011-10-17 | 2011-10-17 | 一种控制***串口设备的方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110314253.2A CN103049401B (zh) | 2011-10-17 | 2011-10-17 | 一种控制***串口设备的方法、***及控制设备 |
CN201710923154.1A CN107729264B (zh) | 2011-10-17 | 2011-10-17 | 一种控制***串口设备的方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110314253.2A Division CN103049401B (zh) | 2011-10-17 | 2011-10-17 | 一种控制***串口设备的方法、***及控制设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729264A CN107729264A (zh) | 2018-02-23 |
CN107729264B true CN107729264B (zh) | 2020-06-16 |
Family
ID=48062048
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710923154.1A Active CN107729264B (zh) | 2011-10-17 | 2011-10-17 | 一种控制***串口设备的方法 |
CN201110314253.2A Active CN103049401B (zh) | 2011-10-17 | 2011-10-17 | 一种控制***串口设备的方法、***及控制设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110314253.2A Active CN103049401B (zh) | 2011-10-17 | 2011-10-17 | 一种控制***串口设备的方法、***及控制设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN107729264B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021136B (zh) * | 2016-05-09 | 2019-01-01 | 广州广电运通金融电子股份有限公司 | 一种基于Linux或Unix内核操作***的串口映射方法及装置 |
CN106201974A (zh) * | 2016-08-29 | 2016-12-07 | 深圳市华阳信通科技发展有限公司 | 一种串口数据顺序保持方法及*** |
CN113360443B (zh) * | 2021-05-31 | 2022-07-08 | 浪潮电子信息产业股份有限公司 | 一种串口卡通讯实现方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758187A (zh) * | 2005-11-25 | 2006-04-12 | 北京中星微电子有限公司 | 虚拟串口装置 |
CN101340459A (zh) * | 2008-08-07 | 2009-01-07 | 中兴通讯股份有限公司 | 一种基于蓝牙的远端控制方法 |
CN101621440A (zh) * | 2009-05-22 | 2010-01-06 | 浙江天正电气股份有限公司 | 远程多路串口通讯映射*** |
CN101630370A (zh) * | 2008-07-14 | 2010-01-20 | 中兴通讯股份有限公司 | 一种射频识别***的控制方法及射频识别*** |
CN101894041A (zh) * | 2010-07-15 | 2010-11-24 | 中兴通讯股份有限公司 | 多虚拟串口***及其通信方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100574023B1 (ko) * | 2004-01-20 | 2006-04-26 | 삼성전자주식회사 | 다중 가상연결을 이용한 인쇄 데이터 전송 장치 및 방법 |
CN101470688A (zh) * | 2007-12-28 | 2009-07-01 | 希姆通信息技术(上海)有限公司 | 单端串口实现多功能复用的方法 |
-
2011
- 2011-10-17 CN CN201710923154.1A patent/CN107729264B/zh active Active
- 2011-10-17 CN CN201110314253.2A patent/CN103049401B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758187A (zh) * | 2005-11-25 | 2006-04-12 | 北京中星微电子有限公司 | 虚拟串口装置 |
CN101630370A (zh) * | 2008-07-14 | 2010-01-20 | 中兴通讯股份有限公司 | 一种射频识别***的控制方法及射频识别*** |
CN101340459A (zh) * | 2008-08-07 | 2009-01-07 | 中兴通讯股份有限公司 | 一种基于蓝牙的远端控制方法 |
CN101621440A (zh) * | 2009-05-22 | 2010-01-06 | 浙江天正电气股份有限公司 | 远程多路串口通讯映射*** |
CN101894041A (zh) * | 2010-07-15 | 2010-11-24 | 中兴通讯股份有限公司 | 多虚拟串口***及其通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103049401A (zh) | 2013-04-17 |
CN103049401B (zh) | 2018-02-06 |
CN107729264A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070198996A1 (en) | System and method for driving peripheral devices | |
US8738953B2 (en) | Power-saving device for universal serial bus modem apparatus and method thereof | |
US20090204725A1 (en) | Wimax communication through wi-fi emulation | |
EP2439647A1 (en) | Implement method, operation method, and system for no installing data card driver | |
US20050179934A1 (en) | System and method for walk-up printing | |
CN107729264B (zh) | 一种控制***串口设备的方法 | |
WO2017051171A1 (en) | Private access to human interface devices | |
CN113076144A (zh) | 功放适配方法、终端设备、存储介质及计算机程序产品 | |
WO2022193624A1 (zh) | 一种跨不同本国***的专用传输模块适配方法、装置 | |
KR101563195B1 (ko) | 호스트 장치 및 슬레이브 장치 제어 방법 | |
WO2015131553A1 (zh) | 一种数据传输的方法和*** | |
CN112181806A (zh) | 一种基于tftp协议的嵌入式软件测试装置及方法 | |
WO2023246060A1 (zh) | 用户认证授权方法、装置、介质及设备 | |
US20120054326A1 (en) | Remotely Managing an Application on a Device by a Management Server | |
CN112035270A (zh) | 接口适配方法、***、装置、计算机可读介质及电子设备 | |
CN103064676A (zh) | 一种对开放服务网关中组件的控制方法 | |
KR20210045200A (ko) | Dds 데이터 변환 및 전송 장치의 구동을 위한 컴퓨터 프로그램 | |
CN112559199A (zh) | 在glibc环境下控制安卓蓝牙的装置、方法及终端设备 | |
CN111885194B (zh) | 通讯应用的通讯方法及装置、电子设备 | |
US11556493B2 (en) | System component having a configurable communication behavior, and method for operating such a system component | |
WO2005086359A2 (en) | Wireless communication unit and method of running code therein | |
CN111224929B (zh) | 软件连接的管理***及方法 | |
KR20210045190A (ko) | Dds 데이터 변환 및 전송 장치의 구동 방법 | |
KR100931690B1 (ko) | 무선 통신 모뎀의 통신포트 공유 방법 및 장치 그리고프로그램 기록매체 | |
KR20210045186A (ko) | 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |