一种基于串口仿真软件的开发方法和装置与流程

文档序号:16627943发布日期:2019-01-16 06:17阅读:197来源:国知局
一种基于串口仿真软件的开发方法和装置与流程

本发明涉及软件仿真领域,特别是涉及一种基于串口仿真软件的开发方法和装置。



背景技术:

在串口程序的开发过程中,往往需要将串口设备通过串口线物理地连接到开发机上(如图一中的1和2的虚线连接)。对于通用型的串口程序的开发,或者多人协同开发的情况,这一开发方式有诸多不便之处:一个串口设备只能给一个开发工程师使用;重启和更换串口设备的时候费时费力;串口和串口程序之间的通讯不可见,不利于程序的调试。



技术实现要素:

基于此,有必要针对目前在通用型的串口程序的开发过程中,一个串口设备只能给一个开发工程师使用;重启和更换串口设备的时候费时费力,并且不利于程序调试的问题,提供一种基于串口仿真的开发方法和装置。

本发明提供的基于串口仿真软件的开发方法,包括:虚拟出至少两个串口资源,所述串口资源包括第一串口和第二串口;通过一串口线将所述第一串口和第二串口进行绑定,以将数据从所述第一串口发送至所述第二串口;通过所述第一串口和所述第二串口进行资源访问、监听和发送数据。

在其中一个实施例中,所述方法还包括:对设备数据协议进行解析,以形成仿真软件的插件。

在其中一个实施例中,所述通过所述第一串口和所述第二串口进行资源访问、监听和发送数据的步骤包括:绑定所述第一串口和第二串口;以及设置所述第一串口和第二串口的波特率、数据位、基偶校验位以及停止位。

在其中一个实施例中,所述方法还包括:按顺序显示接收和发送的数据。

在其中一个实施例中,所述方法还包括:设置插件内部的多个参数;以及根据所述参数,更改设备的运行状态。

本发明提供的基于串口仿真软件的开发装置,包括:

虚拟模块,用于虚拟出至少两个串口资源,所述串口资源包括第一串口和第二串口;

绑定模块,用于通过一串口线将所述第一串口和第二串口进行绑定,以将数据从所述第一串口发送至所述第二串口;

串口数据处理模块,用于通过所述第一串口和所述第二串口进行资源访问、监听和发送数据。

在其中一个实施例中,所述装置还包括:协议解析模块,用于对设备数据协议进行解析,以形成仿真软件的插件。

在其中一个实施例中,所述串口数据处理模块包括:绑定单元,用于绑定所述第一串口和第二串口;以及设置单元,用于设置所述第一串口和第二串口的波特率、数据位、基偶校验位以及停止位。

在其中一个实施例中,所述装置还包括:显示模块,用于按顺序显示接收和发送的数据。

在其中一个实施例中,所述装置还包括:设置模块,用于设置插件内部的多个参数;以及更改模块,用于根据所述参数,更改设备的运行状态。

本发明提供的基于串口仿真软件的开发方法及发装置,通过虚拟出至少两个串口资源,所述串口资源包括第一串口和第二串口,并通过一串口线将所述第一串口和第二串口进行绑定,以将数据从所述第一串口发送至所述第二串口,以及通过所述第一串口和所述第二串口进行资源访问、监听和发送数据,从而提供一种便捷、高效的辅助开发的组建方案。

附图说明

图1为一种基于串口仿真软件的开发方法的方法流程图;

图2为一种基于串口仿真软件的开发装置的装置框图;

图3为一种基于串口仿真软件的开发装置的串口数据处理模块的内部框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参照图1,本发明的一种基于串口仿真软件的开发方法,所述方法包括:

a1:虚拟出至少两个串口资源,所述串口资源包括第一串口和第二串口;

a2:通过一串口线将所述第一串口和第二串口进行绑定,以将数据从所述第一串口发送至所述第二串口;

a3:通过所述第一串口和所述第二串口进行资源访问、监听和发送数据。

在一个具体实施例中,需要说明的是,本发明的目的是解决上述开发方式效率较低的缺点,提供一种便捷、高效的辅助开发的组建方案。

本发明提出的基于仿真软件的技术方案包含如下部分:

(1)虚拟串口:利用串口虚拟技术虚拟出两个或更多个串口资源。例如下com1和com2,使用虚拟资源解除了方案对开发机接口的依赖,当下,大部分的笔记本都没有配置串口,部分的台式机也只有一个串口,为解决串口资源不足的问题,其他方案往往采用添加串口转换卡。

(2)串口绑定:即实现一个虚拟的串口线,实现发送到com1上的数据能自动转发到com2,反之,发送到com2上的数据能自动转发到com1。串口绑定解除了对串口线的依赖,使得不接串口线同样能完成串口通讯过程。

(3)仿真软件:仿真软件有三个基本功能:串口资源访问,监听和发送数据;显示仿真软件和串口程序之间的通讯数据,协议插件的管理。仿真软件的运行,解除了开发过程对物理设备的依赖,降低开发环境配置成本的同时提高了工作效率。

(4)插件式的协议处理:即将对设备数据协议解析部分作成仿真软件的插件,增加某设备的仿真功能,只需要编写针对该设备的协议解析及处理的动态库,再将动态库置于仿真软件目录下。插件式的仿真软件设计在添加仿真功能,软件的开发部署,以及使用上均明显优于非插件式的设计。

在其中一个实施例中,所述方法还包括:

对设备数据协议进行解析,以形成仿真软件的插件。

在其中一个实施例中,所述通过所述第一串口和所述第二串口进行资源访问、监听和发送数据的步骤包括:

绑定所述第一串口和第二串口;

设置所述第一串口和第二串口的波特率、数据位、基偶校验位以及停止位。

在其中一个实施例中,所述方法还包括:

按顺序显示接收和发送的数据。

在其中一个实施例中,所述方法还包括:

设置插件内部的多个参数;

根据所述参数,更改设备的运行状态。

下面对本发明的设计甚至实现做进一步的详细说明:

本方案的实施细节如下:步骤1,在开发机上虚拟出两个串口,如,com1和com2,必须要保证开发机上有至少两个空闲的串口,否则无法用本方法进行串口设备的测试。

步骤2,串口绑定:实现发送到com1上的数据能自动转发到com2,反之,发送到com2上的数据能自动转发到com1。第三方工具“virtualserialportdriver”是已有串口工具中同时具有虚拟串口功能和串口配对功能的,该工具在只有一个物理串口的机器上另外虚拟出四个串口,并且能将其中任何两个串口进行绑定

步骤3,运行仿真软件,并绑定步骤2中的已配对的串口之一。步骤2中已配对的两个串口是对等的,在本方案中无区别。在这里为了说明的方便,假设绑定了com2。

步骤4,串口资源访问。在仿真软件上访问串口资源。在软件的左上角,可以选择需要访问的串口,并且设置波特率、数据位、奇偶校验、停止位这些参数。具体应当设置成什么值,应当与需要仿真的设备的参数相同。

步骤5,监听串口数据,在软件右上面板点击开始,即开始监听选中串口,并且软件将串口上接受和发送的数据显示在面板上。

步骤6,仿真设备:软件动态检查插件目录,如果找到插件,例如,是一个实现插件功能的应用程序动态库,根据开放的接口从动态库中读出相应的信息,然后将全部的插件名(通常就是设备名)列在软件左下方的下拉框中。从下拉框中选择一个插件名,从软件右下方点击“模拟器”。当仿真软件处于“模拟器”状态下时,软件将对应的插件加载运行,并且自动把收到的数据通过接口发送给插件,并等待插件的返回数据,一旦收到插件有返回数据,会立即将返回数据从串口发送出去(并同时显示在收发数据的面板上)。

步骤7,协议处理插件的制作。从步骤6看出,只有加载了相应的协议处理插件,仿真软件才能仿真一台设备。这个叙述一下协议处理插件的制作要点。在本方案中,插件即实现了某接口的动态连接库,插件的主要功能是根据仿真软件给出的二进制数据,解析成针对设备的命令,再根据正常情况下设备的反应情况,作出相应的返回。下面举两个例子说明:

例如仿真一款串口模块,以无线通信模块为例,仿真软件发送给插件表示“启动模块”的数据,插件根据内部的某个参数,如果表示运行状态的那个参数状态是非启动状态,则表明当前可以正确执行这个命令,于是插件将该参数的状态改成“已启动”,并且将表示“启动成功”的数据返回给仿真软件。

例如仿真一款串口设备,以投影机为例,仿真软件发送给插件表示“关闭投影机”的数据,插件根据内部的某个参数,如果表示运行状态的那个参数状态是已启动状态,则表明当前可以正确执行这个命令,于是插件将该参数的状态改成“冷却中”,返回一个表示“冷却中”的数据,并启动一个计时器,因为这款投影机在关闭之前有大约15秒的冷却时间(大部分的投影机都有这样的特性)。当计时器计时到15秒时,将状态参数改成“未启动”,再给仿真程序发送一个表示“关闭成功”的数据。

从上面的例子看出,协议处理插件都要实现两部分内容:一仿真软件约定的通讯接口,二,根据具体设备的行为特征,对设备输入输出数据的仿真。对应设备的不同,这个部分的实现可能截然不同,而且没有规律可循。不过,通常这些行为特征可以从设备的串口通讯协议,以及设备说明书上找到参考。在这种情况下,设备制造商自行开发插件是最理想的情况(插件式的软件设计也提供了这种可能性)。

至此,搭建的串口程序的辅助开发环境全部结束,开发工程师可以在开发机上进行开发工作,并且认为某一串口设备已经通过串口线连接在com1上。当他需要对另外一个串口设备进行开发时,可以直接在仿真软件里重复步骤4~步骤6,改变仿真软件所仿真的设备即可。

进一步需要说明的是,本方案的核心是要求开发一款仿真软件,并且具有如下功能:

串口资源访问,监听和发送数据:即要求仿真软件能绑定本步骤选定的串口(com2),并可设置它们的波特率、数据位、奇偶校验、停止位等,因为待仿真的串口设备使用的这些串口参数是不同的,这些参数是待仿真串口设备特征的一部分。有多种方式可以实现对串口资源的访问和控制,例如,开发在windows平台上运行的仿真软件,可以用微软.net类库中的system.io.ports.serialport类,该类已经封装了对串口的读、写、配置等功能,从而降低了开发的难度。

显示通讯数据:仿真软件可以按顺序显示它接收与发送的数据,从而可以人工地复查仿真软件和串口程序之间通讯是否正确。比较直接连接串口设备来开发的方式,通讯数据的可视化提高了开发过程中的调试的效率,发现错误的速度提高而难度极大降低。

协议处理插件的管理:所有串口仿真软件的功能可被抽象成两个部分,串口控制部分和协议处理部分。本方案将协议处理部分分离出来,设计成仿真软件的插件。这要求仿真软件具有这些插件的管理能力。插件式的仿真软件设计有许多优点:插件可以单独开发和升级,不再依赖于仿真软件的主体,灵活度增加,甚至第三方可以参与插件的开发;支持新的设备的仿真只需要开发相应的插件,难度降低等等。

请参照图2,一种基于串口仿真软件的开发装置,所述装置包括:

虚拟模块a100,用于虚拟出至少两个串口资源,所述串口资源包括第一串口和第二串口;

绑定模块a101,用于通过一串口线将所述第一串口和第二串口进行绑定,以将数据从所述第一串口发送至所述第二串口;

串口数据处理模块a102,用于通过所述第一串口和所述第二串口进行资源访问、监听和发送数据。

在其中一个实施例中,所述装置还包括:

协议解析模块a103,用于对设备数据协议进行解析,以形成仿真软件的插件。

需要说明的是,该协议解析模块a103接收所述串口数据处理模块a102对串口数据进行处理后的数据信息,并对设备数据协议解析部分作成仿真软件的插件,增加某设备的仿真功能。

在其中一个实施例中,所述串口数据处理模块a102包括:

绑定单元a1021,用于绑定所述第一串口和第二串口;

设置单元a1022,与所述绑定单元通信连接,用于设置所述第一串口和第二串口的波特率、数据位、基偶校验位以及停止位。

在其中一个实施例中,所述装置还包括:

显示模块a104,用于按顺序显示接收和发送的数据。

在其中一个实施例中,所述装置还包括:

设置模块a105,用于设置插件内部的多个参数;

更改模块a106,用于根据所述参数,更改设备的运行状态。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1