一种控制外围串口设备的方法转让专利

申请号 : CN201710923154.1

文献号 : CN107729264B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 樊季林

申请人 : 康佳集团股份有限公司

摘要 :

本发明公开了一种控制外围串口设备的方法,包括:根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;控制设备与第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;接收控制设备传来的、对第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;将控制信息对应的对第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制外围串口设备。实施本发明实施例,使得控制设备通过第三方控制设备上的任一虚拟串口实现对外围串口设备的控制。

权利要求 :

1.一种控制外围串口设备的方法,其特征在于,包括:

根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;所述第三方控制设备与外围串口设备通过所述端口号大于域值的任一虚拟串口进行串口通讯;控制设备与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;

接收控制设备传来的、对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;

将所述控制信息对应的对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制所述外围串口设备;

所述域值指的是控制设备与第三方控制设备的任意虚拟串口建立连接时,所连接虚拟串口对应的最大端口号。

2.如权利要求1所述的方法,其特征在于,将控制设备中端口号大于域值的任一虚拟串口转换成控制设备中端口号小于或等于域值的任一虚拟串口之前,还包括接收预设串口配置信息,所述预设串口配置信息包括:所述小于或等于域值的任一虚拟串口的注册信息;

所述小于或等于域值的任一虚拟串口的配置文件;

所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序。

3.如权利要求2所述的方法,其特征在于,所述第三方控制设备内置操作系统,所述将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口,包括:所述操作系统根据所述注册信息,识别所述小于或等于域值的任一虚拟端口的加载顺序、端口号以及驱动名称;

所述操作系统根据所述配置文件,加载所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序;

所述操作系统运行所述驱动程序,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口。

4.如权利要求1-3任一项所述的方法,其特征在于,将所述控制信息对应的对所述第三方控制设备中小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,进而控制所述外围串口设备,包括:将所述控制信息依次通过所述端口号小于或等于域值的任一虚拟串口、所述端口号大于域值的任一虚拟串口传送给所述外围串口设备;

接收所述外围串口设备响应所述控制信息对应的对所述第三方控制设备中小于或等于域值的任一虚拟串口的操作后返回的操作结果,并将所述操作结果传送给所述控制设备。

说明书 :

一种控制外围串口设备的方法

[0001] 本申请是针对于2011年11月07日提交到中国专利局、申请号为201110314253.2、发明名称为“一种控制外围串口设备的方法、系统及控制设备”的母案申请作出的分案申请,上述母案申请的内容以引入的方式并入本文中。

技术领域

[0002] 本发明涉及串口通讯领域,具体而言,尤其涉及一种控制外围串口设备的方法。

背景技术

[0003] 基于串口通讯的外围串口设备,均需要通过串口(物理串口或虚拟串口)和控制设备建立连接,从而实现控制设备与外围串口设备之间的串口通讯。
[0004] 现有中,对于通过物理串口进行串口通讯的外围串口设备,通常是为该外围串口设备开发一个驱动,控制设备在安装了该外围串口设备的驱动之后,就可以通过其物理串口与外围串口设备的物理串口进行串口通讯,进而控制外围串口设备。例如,开发人员开发一个条码扫描设备的驱动,控制设备安装了该条码扫描设备的驱动程序,就可以通过物理串口与该条码扫描设备的物理串口进行串口通讯,例如进行条码扫描操作等。现有中,控制设备通常为内置有WINCE系统的设备,例如PDA等。
[0005] 现有中,对于通过虚拟串口与控制设备进行串口通讯的外围串口设备,其通常是与第三方控制设备上端口号为1-9的虚拟串口进行串口通讯。控制设备通过远程桌面RDP协议与第三方控制设备上端口号为1-9的虚拟串口建立连接,实现与外围串口设备的串口通讯,进而实现控制设备对外围串口设备的控制。

发明内容

[0006] 本发明的目的在于克服现有技术的不足,提供一种控制外围串口设备的方法、系统及控制设备,使得控制设备能够通过控制其虚拟串口、或控制第三方控制设备的任一虚拟串口来实现对外围串口设备的控制。
[0007] 为了解决上述问题,本发明提出了一种控制外围串口设备的方法,包括:
[0008] 根据预设串口配置信息,将外围串口设备的物理串口转换成控制设备的任一虚拟串口;
[0009] 接收对所述控制设备的虚拟串口进行操作的控制信息;
[0010] 将所述控制信息对应的对所述虚拟串口的操作转换成对所述外围串口设备的物理串口的操作。
[0011] 一种控制外围串口设备的方法,包括:
[0012] 根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;所述第三方控制设备与外围串口设备通过所述端口号大于域值的任一虚拟串口进行串口通讯;控制设备与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;
[0013] 接收控制设备传来的、对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;
[0014] 将所述控制信息对应的对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制所述外围串口设备;
[0015] 所述域值指的是控制设备与第三方控制设备的任意虚拟串口建立连接时,所连接虚拟串口对应的最大端口号。
[0016] 相应地,本发明提供了一种控制设备,包括:
[0017] 接收模块,用于接收对所述控制设备的虚拟串口进行操作的控制信息;
[0018] 转换模块,用于根据预设串口配置信息,将外围串口设备的串口转换成控制设备的虚拟串口;以及还用于将所述接收模块接收的所述控制信息对应的对所述虚拟串口的操作转换成对所述外围串口设备的物理串口的操作。
[0019] 最后,本发明还提供了一种控制外围串口设备的系统,包括:
[0020] 控制设备,用于根据预设串口配置信息,将外围串口设备的串口转换成控制设备的虚拟串口;接收对所述控制设备的虚拟串口进行操作的控制信息;以及将所述控制信息对应的对所述虚拟串口的操作转换成对所述外围串口设备的物理串口的操作;
[0021] 外围串口设备,用于接收控制设备传来的控制信息并响应所述控制信息对应的对所述虚拟串口的操作,以及通过其物理串口将操作结果返回给控制设备。
[0022] 本发明的有益效果:
[0023] 通过根据预设串口配置信息,将外围串口设备的物理串口转换成控制设备的虚拟串口;或者将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口,其中,第三方控制设备通过其端口号大于域值的任一虚拟串口与外围串口设备进行串口通讯,控制设备利用远程桌面协议,与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;如此设计,控制设备对其虚拟串口的操作或对第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作均可以转换为对外围串口设备的串口的操作,进而实现控制设备对所述外围串口设备的控制。

附图说明

[0024] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0025] 图1是本发明实施一的控制外围串口设备的方法流程图;
[0026] 图2是本发明实施二的控制外围串口设备的方法流程图;
[0027] 图3是本发明实施三的控制外围串口设备的方法流程图;
[0028] 图4是本发明实施四的控制外围串口设备的方法流程图;
[0029] 图5是本发明实施例五的控制设备的结构示意图;
[0030] 图6是本发明实施例五的转换模块的结构示意图;
[0031] 图7是本发明实施例六的控制外围串口设备的系统示意图。

具体实施方式

[0032] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0033] 现有中,若外围串口设备通过物理串口与控制设备进行串口通讯时,均需要应用开发者为该外围串口设备开发一个驱动。应用开发者在开发外围串口设备的驱动时,需要涉及到很多细节,例如,外围串口设备如何初始化,如何接收和发送数据,如何解析和封装数据包,如何管理其电源以便省电等。因此,对于应用开发者来说,其需要掌握足够的技术细节,并且还需要花费较长的开发周期才能够开发适合于某一个具体外围串口通讯设备的驱动。
[0034] 试想,如果外围串口设备的制造商或第三方开发人员将外围串口通讯设备对应的驱动做成一个虚拟串口并由控制设备的操作系统加载,如此,则屏蔽了对该外围串口设备底层操作的所有技术细节,而其技术细节均由虚拟串口的驱动来完成。这样,对于应用开发者来说,其只需通过控制控制设备上的虚拟串口,则可以实现对该外围串口设备的控制,而不用去关心该外围串口设备的底层操作。并且,所有的应用开发者均可以通过控制该控制设备上的虚拟串口来控制外围串口设备。
[0035] 根据上述构思,如图1所示,是本发明实施例一的一种控制外围串口设备的方法,包括:
[0036] S11、根据预设串口配置信息,将外围串口设备的物理串口转换成控制设备的虚拟串口;
[0037] 虚拟串口,指的是控制设备在不增加任何硬件的条件下,通过一定的操作,在其操作系统上建立外围串口设备的VSP(VirtualSerialPort:虚拟串口)。如此,应用开发者可以像使用操作系统的标准串口一样使用虚拟串口与外围串口设备进行串口通讯。虚拟串口相当于在控制设备与外围串口设备之间建立了一条无限长的数据链路,应用开发者可以认为外围串口设备是直接连接到控制设备上的。
[0038] 本步骤中,控制设备根据预设的串口虚拟信息,可以将外围串口设备的物理串口转换成控制设备的虚拟串口。如此,应用开发者对该控制设备虚拟串口的操作即可转换为对外围串口设备的物理串口的操作。
[0039] 外围串口设备可以为一切基于物理串口与控制设备进行串口通讯的设备,例如条码扫描设备等。现有中,当控制设备将条码扫描设备的物理串口转换成控制设备上的虚拟串口时,应用开发者通过控制控制设备上的虚拟串口,即可实现对外围串口设备的控制。其中,控制设备可以为PDA等。
[0040] S12、接收对所述控制设备的虚拟串口进行操作的控制信息;
[0041] 本步骤中,应用开发者在控制设备上输入的控制信息对应的操作,包括对所述控制设备的虚拟串口的访问、读、写等操作。
[0042] S13、将所述控制信息对应的对所述虚拟串口的操作转换成对所述外围串口设备的物理串口的操作。
[0043] 步骤S13中,控制设备在接收了应用开发者输入的控制信息后,还将该控制信息通过所述虚拟串口传送给所述外围串口设备。外围串口设备响应所述控制信息对应的对所述控制设备的虚拟串口的操作,并将操作结果返回给控制设备。如此,即可以将所述控制信息对应的对所述控制设备上所述虚拟串口的操作转换成对所述外围串口设备的物理串口的操作。
[0044] 在步骤S11-S13中,通过将外围串口设备的物理串口转换成控制设备的虚拟串口,如此则使得应用开发者对控制设备的虚拟串口的操作均可以转换成对外围串口设备的操作。因此,所有的应用开发者通过控制控制设备上的所述虚拟串口,即可实现对外围串口设备的控制,如访问、读、写外围串口控制设备等,而不用去关心该外围串口设备的底层操作的实现(比如:外围串口设备如何初始化,如何接收和发送数据等底层操作的实现),从而减少了应用开发者的开发工作量,并且也使得该虚拟串口具有一定的通用性和易操作性。
[0045] 如图2所示,是本发明实施例二的一种控制外围串口设备的方法,包括:
[0046] S21、接收预设串口配置信息;
[0047] 具体实现中,在将外围串口设备的物理串口转换成控制设备的虚拟串口之前,还需要接收开发人员导入的预设串口配置信息,所述预设串口配置信息具体包括:开发人员设置的所述虚拟串口的注册信息、配置的所述虚拟串口的配置文件、以及预设的所述外围串口设备的物理串口转换成所述控制设备的虚拟串口的驱动程序。
[0048] 其中,所述控制设备内置有操作系统,所述根据预设串口配置信息,将外围串口设备的物理串口转换成控制设备的虚拟串口,具体包括:
[0049] 首先,操作系统根据接收到的注册信息,识别需要加载的虚拟串口的加载顺序、端口号以及对应的驱动的名称。例如,需要加载的虚拟串口的对应的驱动名称为:VirualCom.dll,端口号为9。
[0050] 需要说明的一点是,本发明实施例中的操作系统,可以为现有的所有操作系统,例如Windows系列操作系统,Vista系列的操作系统等。
[0051] 需要说明的另一点是,开发人员在设置所述虚拟串口的注册信息时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。在本发明实施例中,所述的开发人员,均指的是外围串口设备的制造商或第三方开发人员,并非应用开发者。
[0052] 其次,所述操作系统根据开发人员配置的配置文件,例如,根据开发人员配置的该虚拟串口的bib配置文件,加载所述外围串口设备的物理串口转换成所述控制设备的虚拟串口的驱动程序,以便在操作系统生成的时候,保证该操作系统内包括该驱动程序。需要说明的一点是,开发人员在配置该虚拟串口的配置文件时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。
[0053] 最后,所述操作系统运行所述外围串口设备的物理串口转换成所述控制设备的虚拟串口的驱动程序,完成所述外围串口设备的物理串口到控制设备的虚拟串口的转换。
[0054] 需要说明的是,开发人员在预设外围串口设备的物理串口转换成控制设备的虚拟串口的驱动程序时,所使用的开发语言没有明确的限定,可以为C语言,C++语言,汇编语言等。
[0055] 例如,在使用C++语言来预设外围串口设备的物理串口转换成控制设备的虚拟串口的驱动程序时,开发人员(包括外围串口设备的制造商或第三方开发人员,不同于应用开发者)可以使用COM_Init函数来完成外围串口设备的初始化,使用COM_Open函数来打开外围串口设备的物理串口,并通过该物理串口向外围串口设备发送应用开发者输入的控制信息。例如,还使用COM_Close函数来控制外围串口设备的物理串口的关闭;使用COM_IOControl函数来完成对物理串口的通讯波特率,奇偶位,数据位、硬件流、以及设备电源管理的设置,当然对外围串口设备的一些控制功能都可以封装在该函数中。使用COM_Deinit函数来卸载外围串口设备,使用COM_Write来完成对数据包的封装、并把数据包发送给外围串口设备。使用COM_Read函数来完成对数据包的读取和解析,并将数据传输给控制设备。
[0056] S22、根据预设串口配置信息,将外围串口设备的物理串口转换成控制设备的虚拟串口;
[0057] S23、接收对所述控制设备的虚拟串口进行操作的控制信息;
[0058] S24、将所述控制信息对应的对所述虚拟串口的操作转换成对所述外围串口设备的物理串口的操作。
[0059] 其中,步骤S22-S24的操作与实施例一步骤S11-S13的操作相同,在此不在重复描述。
[0060] 在实施例一以及本实施中,外围串口设备可以为一切基于物理串口与控制设备进行串口通讯的设备,例如条码扫描设备等。当开发人员将条码扫描设备的物理串口转换成控制设备上的虚拟串口时,应用开发者通过控制控制设备上的所述虚拟串口,即可实现对条码扫描设备的控制。如此,所有的应用开发者在对开发改条码扫描设备的应用时,不用去关心该虚拟串口的底层操作的实现,从而也缩减了应用开发者的工作量。
[0061] 现有技术中,对于通过虚拟串口进行串口通讯的外围串口设备(如蓝牙设备等),其通常是与第三方控制设备(如装有WINCE系统的蓝牙设备、Windowsmobile系统的蓝牙设备)上端口号为1-9的虚拟串口进行串口通讯。控制设备(如PC机等)通过RDP(RemoteDesktopProtocol:远程桌面协议)与第三方控制设备建立连接,通过控制第三方控制设备上端口号为1-9的虚拟串口,进而控制外围串口设备。然而,对于端口号非常紧缺的第三方控制设备(如装有WINCE系统的蓝牙设备、Windowsmobile系统的蓝牙设备等),其与外围串口设备进行通讯的虚拟串口的端口号可能不是1-9内的任一端口号,而是端口号大于9的端口号。此时,PC机通过RDP协议与装有WINCE的蓝牙设备时建立连接时,由于其只能发现装有WINCE系统、Windowsmobile系统的蓝牙设备上端口号为1-9之间的任一串口,所以此时PC机不能与外围串口设备建立连接,控制外围串口设备。由此,本发明还提供了一种控制外围串口设备的方法,如图3所示,是本发明实施例三的一种控制外围串口设备的方法,包括:
[0062] S31、根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;所述第三方控制设备与外围串口设备通过所述端口号大于域值的任一虚拟串口进行串口通讯;控制与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;
[0063] 本步骤中所述的虚拟串口,与实施一中所述的虚拟串口相同,在此不再重复描述。本步骤中所述的域值,指的是控制设备与第三方控制设备的任一虚拟串口建立连接时,该任一虚拟串口对应的最大端口号。
[0064] 具体实现中,外围串口设备可以为一切基于虚拟串口与第三方控制设备进行串口通讯的设备,例如蓝牙设备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。
[0065] S32、接收控制设备传来的、对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;
[0066] 本步骤中,应用开发者在控制设备上输入控制信息,并将其传输给第三方控制设备。其中,应用开发者输入的控制信息对应的操作,包括读、写、控制等操作。
[0067] S33、将所述控制信息对应的对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制所述外围串口设备。
[0068] 步骤S33中,应用开发者在控制设备上输入控制信息,并将其传输给第三方控制设备。比如,第三方控制设备在接收了对所述端口号为1至9任一虚拟串口的控制信息后,将该控制信息依次通过端口号为1-9的任一虚拟串口、端口号大于9的任一虚拟串口传送给外围串口设备。外围串口设备响应所述控制信息对应的对所述第三方控制设备中端口号为1-9的任一虚拟串口的操作,并将操作结果返回给第三方控制设备。第三方控制设备接收到所述操作结果后,还将其传送给控制设备。
[0069] 在步骤S31-S33中将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口,使得应用开发者通过控制设备输入的对第三方控制设备上端口号小于或等于域值的任一虚拟串口上的操作均可以转换成对第三方控制设备上端口号大于域值的任一虚拟串口的操作,进而转换为对外围串口设备的虚拟串口的操作。如此,使得控制设备通过第三方控制设备上的任一虚拟串口,即可实现对外围串口设备的控制。
[0070] 如图4所示,是本发明实施例四的一种控制外围串口设备的方法,包括:
[0071] S41、接收预设串口配置信息;
[0072] 具体实现中,将控制设备中端口号大于域值的任一虚拟串口转换成控制设备中端口号小于或等于域值的任一虚拟串口之前,还包括接收预设串口配置信息,所述预设串口配置信息具体包括:
[0073] 开发人员设置的第三方控制设备上端口号小于或等于域值的任一虚拟串口的注册信息、配置的所述小于或等于域值的任一虚拟串口的配置文件、以及预设的所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序。
[0074] 其中,所述第三方控制设备内置有操作系统,如WINC系统,或Windows系统,将控制设备中端口号大于域值的任一虚拟串口转换成控制设备中端口号小于或等于域值的任一虚拟串口,具体为:
[0075] 首先,操作系统根据接收到的注册信息,识别需要加载的虚拟串口的加载顺序、端口号以及对应的驱动的名称。例如,需要加载的虚拟串口的对应的驱动名称为:VirualCom.dll,端口号为9。此处在设置虚拟串口的端口号时,只能设置端口号为小于或等于域值的任一虚拟串口,如端口号为1-9之间的任一虚拟串口。
[0076] 需要说明的一点是,开发人员在设置所述小于或等于域值的任一虚拟串口的注册信息时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。在本发明实施例中,所述的开发人员,均指的是外围串口设备的制造商或第三方开发人员,并非应用开发者。
[0077] 其次,操作系统根据所述配置文件,加载所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序。例如,操作系统根据开发人员配置的端口号为9的虚拟串口的bib配置文件(其中9为域值),加载端口号为12的虚拟串口转换成9虚拟串口的驱动程序,以便在操作系统生成的时候,保证该操作系统内包括该驱动程序。需要说明的一点是,开发人员在配置小于或等于域值的任一虚拟串口的配置文件时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。
[0078] 最后,所述操作系统运行所述开发人员预设的所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序,完成所述端口号大于域值的任一虚拟串口转换成到所述端口号小于或等于域值的任一虚拟串口的转换。
[0079] 其中,开发人员在预设所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。
[0080] 例如,在使用C++语言来预设所述端口号大于域值的任一虚拟串口转换成所述端口号小于或等于域值的任一虚拟串口的驱动程序时,开发人员(包括外围串口设备的制造商或第三方开发人员,不同于应用开发者)可以使用COM_Init函数来完成外围串口设备的初始化,使用COM_Open函数来打开外围串口设备对应的虚拟串口,并通过该虚拟串口向外围串口设备发送应用开发者输入的控制信息。例如,还使用COM_Close函数来控制外围串口设备的虚拟串口的关闭;使用COM_IOControl函数来完成对虚拟串口的通讯波特率,奇偶位,数据位、硬件流、以及设备电源管理的设置,当然对外围串口设备的一些控制功能都可以封装在该函数中。使用COM_Deinit函数来卸载外围串口设备,使用COM_Write来完成对数据包的封装、并把数据包发送给外围串口设备。使用COM_Read函数来完成对数据包的读取和解析,并将数据传输给控制设备。
[0081] S42、根据预设串口配置信息,将第三方控制设备中端口号大于域值的任一虚拟串口转换成第三方控制设备中端口号小于或等于域值的任一虚拟串口;所述第三方控制设备与外围串口设备通过所述端口号大于域值的任一虚拟串口进行串口通讯;控制设备与所述第三方控制设备中端口号小于或等于域值的任一虚拟串口建立连接;
[0082] S43、接收控制设备传来的、对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口进行操作的控制信息;
[0083] S44、将所述控制信息对应的对所述第三方控制设备中端口号小于或等于域值的任一虚拟串口的操作转换成对所述第三方控制设备中端口号大于域值的任一虚拟串口的操作,控制所述外围串口设备。
[0084] 其中,步骤S42-S44的操作与实施例三步骤S31-S33的操作相同,在此不在重复描述。
[0085] 本实施例中,第三方控制设备根据接收到的预设串口配置信息,将其上端口号大于域值的任一虚拟串口转换成端口号小于或等于域值的任一虚拟串口,使得应用开发者通过控制设备输入的对第三方控制设备上端口号小于或等于域值的任一虚拟串口上的操作均可以转换成对第三方控制设备上端口号大于域值的任一虚拟串口的操作,进而转换为对外围串口设备的虚拟串口的操作。如此,使得控制设备通过第三方控制设备上的任一虚拟串口,即可实现对外围串口设备的控制,如访问、读写外围串口控制设备等。
[0086] 相应地,如图5所示,本发明实施例五还公开一种控制设备,包括:
[0087] 接收模块51,用于接收对所述控制设备的虚拟串口进行操作的控制信息;其中,应用开发者在控制设备上输入的控制信息对应的操作,包括访问、读、写等操作。发明实施例所述的虚拟串口,与实施一中所述的虚拟串口相同,在此不再描述。
[0088] 其中,所述接收模块51还用于接收预设串口配置信息,所述预设串口配置信息为开发人员预设的,具体包括:
[0089] 所述虚拟串口的注册信息;
[0090] 所述虚拟串口的配置文件;
[0091] 所述外围串口设备的物理串口转换成所述控制设备的虚拟串口的驱动程序。其中,开发人员在配置该预设串口配置信息时,所使用的开发语言没有明确的限定,例如可以为C语言,C++语言,汇编语言等。
[0092] 转换模块52,用于根据预设串口配置信息,将外围串口设备的串口转换成控制设备的虚拟串口;如此,应用开发者对该虚拟串口的操作即可转换为对外围串口设备的物理串口的操作。
[0093] 转换模块52,还用于将接收模块51接收到的所述控制信息对应的对所述虚拟串口的操作转换成对所述外围串口设备的物理串口的操作。
[0094] 具体实现中,如图6所示,转换模块52包括:
[0095] 注册信息识别单元61,用于根据所述注册信息,识别需要加载的所述虚拟端口的加载顺序、端口号以及驱动名称;例如,注册信息识别单元61,需要加载的虚拟串口的对应的驱动名称为:VirualCom.dll,端口号为9。此处,开发人员在设置转换后的虚拟串口的端口号时,对端口号没有限定。
[0096] 驱动程序记载单元62,用于根据所述配置信息,加载所述外围串口设备的物理串口转换到所述控制设备的虚拟串口的驱动程序;例如,驱动程序记载单元62根据开发人员配置的端口号为9的虚拟串口的bib配置文件(其中9为域值),加载端口号为12的虚拟串口转换成9虚拟串口的驱动程序,以便在操作系统生成的时候,保证该操作系统内包括该驱动程序。
[0097] 驱动程序运行单元,用于运行所述驱动程序,将所述外围串口设备的物理串口转换成控制设备的虚拟串口。
[0098] 其中,需要说明的是,开发人员在使用C++语言来预设所述驱动程序时,外围串口设备的制造商或第三方开发人员(不同于应用开发者)可以使用COM_Init函数来完成外围串口设备的初始化,使用COM_Open函数来打开外围串口设备的物理串口,并通过该物理串口向外围串口设备发送应用开发者输入的控制信息。例如,还使用COM_Close函数来控制外围串口设备的物理串口的关闭;使用COM_IOControl函数来完成对物理串口的通讯波特率,奇偶位,数据位、硬件流、以及设备电源管理的设置,当然对外围串口设备的一些控制功能都可以封装在该函数中。使用COM_Deinit函数来卸载外围串口设备,使用COM_Write来完成对数据包的封装、并把数据包发送给外围串口设备。使用COM_Read函数来完成对数据包的读取和解析,并将数据传输给控制设备。
[0099] 收发单元62,用于将所述控制信息通过所述虚拟串口传送给所述外围串口设备;以及用于接收所述外围串口设备响应所述控制信息对应的对所述虚拟串口的操作后返回的操作结果。
[0100] 本实施例中,在转换模块的作用下,将接收模块接收到的应用开发者输入的控制信息对应的对所述控制设备的虚拟串口的操作转换成对外围串口设备的操作。如此,所有的应用开发者通过控制控制设备上的虚拟串口,即可实现对外围串口设备的控制,如访问、读、写外围串口控制设备等,而不用去关心该外围串口设备的底层操作的实现(比如:外围串口设备如何初始化,如何接收和发送数据等底层操作的实现),缩减了应用开发者的工作量,并且也使得该虚拟串口具有一定的通用性和易操作性。
[0101] 最后,如图7所示,本发明还公开了一种控制外围串口设备的系统,包括:
[0102] 控制设备71,用于根据预设串口配置信息,将外围串口设备的串口转换成控制设备的虚拟串口;接收对所述控制设备的虚拟串口进行操作的控制信息;以及将所述控制信息对应的对所述虚拟串口的操作转换成对所述外围串口设备的物理串口的操作;
[0103] 外围串口设备72,用于接收控制设备传来的控制信息并响应所述控制信息对应的对所述虚拟串口的操作,以及通过其物理串口将操作结果返回给控制设备。
[0104] 本实施例的控制外围串口设备的系统,通过控制设备将外围串口设备的物理串口转换成控制设备的虚拟串口,使得应用开发者在控制设备的虚拟串口上的操作均可以转换成对外围串口设备的操作。如此,所有的应用开发者通过控制控制设备上的所述虚拟串口,即可实现对外围串口设备的控制,如访问、读写外围串口控制设备等,而不用去关心该外围串口设备的底层操作的实现(比如:外围串口设备如何初始化,如何接收和发送数据等底层操作的实现),从而缩减了应用开发者的开发工作量,并且也使得该虚拟串口具有一定的通用性和易操作性。
[0105] 以上对本发明实施例所提供的,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。