当前位置: 首页 > 专利查询>天津大学专利>正文

一种多硬件接口通讯协议软件按需自动生成方法技术

技术编号:19488981 阅读:23 留言:0更新日期:2018-11-17 11:59
本发明专利技术公开了一种多硬件接口通讯协议软件按需自动生成方法,包括线下协议统一和线上自动生成两个阶段;线下协议统一阶段包括:确定项目涉及的所有硬件种类和属性基本数据;建立数据库;为每种硬件建立单独的通讯管道;编写管道操作程序、数据按位解析程序和数据按位装填程序组成预置程序;根据硬件的特异属性,编写可直接连接底层驱动的程序用以实现硬件接口的特异性并编入预置程序。线上自动生成阶段包括:用户录入基本数据;根据程序自动生成技术编写程序自动生成程序;调用程序自动生成程序;程序自动生成程序读取数据库中用户的需求后,在预置程序后生成可直接调用的接口通讯函数;对生成后的预置程序进行动态编译生成动态链接库。

【技术实现步骤摘要】
一种多硬件接口通讯协议软件按需自动生成方法
本专利技术涉及计算机软件领域,特别是涉及一种应用动态链接技术和数据库技术生成所需多硬件接口之一通讯软件的方法。
技术介绍
目前,在大型软件系统开发时,通常存在一个系统包含多种硬件接口的情况。硬件通讯接口往往只有种类的属性的变化,但对于单个开发人员,每次开发需要实现一种硬件通讯接口时,都需要大量时间理解、学习、开发。同时,还会存在开发人员众多的情况,尤其在长工期开发时人员流动性也会大。如图1所示,新的开发人员在硬件接口通讯软件编写上需要重新学习开发。这种情况对于整个项目而言,属于重复工作,会消耗大量的工时,造成系统开发时间大量增加。
技术实现思路
本专利技术的目的是为了克服现有技术中的不足,提供一种多硬件接口通讯协议软件按需自动生成方法,该方法只需用户明白基本的通讯接口需求,即可生成所需硬件通讯协议,用户使用时只需在主程序中直接引用调用即可。同一系统不同部分的开发人员均可快速使用。由此可以大量减少整个系统开发时间。本专利技术的目的是通过以下技术方案实现的:一种多硬件接口通讯协议软件按需自动生成方法,包括线下协议统一和线上自动生成两个阶段;所述线下协议统一阶段包括以下步骤:(1)确定项目涉及的所有硬件种类和属性基本数据;(2)建立数据库,将基本协议数据的结构构建在数据库中,基本协议数据包括协议集名、协议名、上行、下行、帧头、字段长度、字段内容、开始位置、结束位置和帧尾;(3)为每种硬件建立单独的通讯管道;(4)编写管道操作程序、数据按位解析程序和数据按位装填程序组成预置程序;(5)根据硬件的特异属性,编写可直接连接底层驱动的程序用以实现硬件接口的特异性,并将其编入预置程序;所述线上自动生成阶段包括以下步骤:A.用户录入基本数据,基本数据是由线下协议统一阶段规划完成;录入的数据存入数据库中;B.根据程序自动生成技术编写程序自动生成程序;C.调用程序自动生成程序;程序自动生成程序读取数据库中用户的需求后,在预置程序后生成可直接调用的接口通讯函数;D.对生成后的预置程序进行动态编译生成动态链接库。进一步的,步骤(4)中数据按位解析的流程为:a)将数据长度、开始位置、结束位置从数据库读出并存储在数组中,同时初始化一个输出数组以存储解析出的数据;b)依次对每个字段进行解析,解析出的字段依次填入输出数组;c)取出字段长度,判断字段所在缓冲区的字节编号,确定字段的位置;d)判断字段长度是否为8的整数倍,是则整段复制到输出数组当前位置,不是则按位复制到输出数组当前位置;全部字段解析完成后,返回的输出数组既是所需数据。进一步的,步骤(4)中数据按位装填的流程为:a)将数据长度、开始位置和结束位置从数据库读出存储到数组中;b)依次对每个字段进行填充并确定字段的位置;c)判断需要填充的字段长度是否为8的倍数,是则整段填充;不是则按位填充。与现有技术相比,本专利技术的技术方案所带来的有益效果是:通过本专利技术方法可快速生成想要的硬件通讯协议程序,大大减少开发人员的重复工作时间。同时具有很好的普适性,整个项目的各个开发单位都可以从中受益。附图说明图1是现有技术中通常面临的情况示意图。图2是本专利技术方法在软件系统开发中所处位置示意图。图3是本专利技术方法中线下协议统一阶段的流程示意图。图4是本专利技术方法中线上自动生成阶段的流程示意图。图5-1和图5-2分别是数据按位解析和数据按位装填的流程图。具体实施方式下面结合附图对本专利技术作进一步的描述。如图2至图5-2所示,本专利技术方法的核心在于自动生成技术,自动生成的前提是协议统一。因此专利技术实现分为了两个部分:(一)线下协议统一,主要使用传输编码格式统一技术、管道技术和程序预制技术。(二)线上自动生成,主要使用数据库技术、程序自动生成技术和动态链接技术。通过本专利技术方法可以实现将目前主流的硬件通讯协议统一。首先,进行功能统一。将系统开发可能用到的硬件接口的功能统一化成两种功能——上行和下行。不同硬件接口实现的功能不一样,但宏观上还是对数据的接收和发送。这对于一个大型的系统而言,既是上行和下行。接下来统一数据传输格式,将数据传输格式统一为帧头、数据加帧尾的格式。不同协议之间最大的区别是它的每段数据长度不尽相同,比如同样以字节长的帧头,有的可能是2位+3位+2位,有的则可能是4位+4位。为了统一这种情况,为每个数据段设置了开始位置和结束位置,因此可以对不同协议可能出现的不同数据段精确诠释。为了统一所用上下行操作,本专利技术采用了操作系统管道机制,管道是一种用于在进程间共享数据的机制,其实质是一段共享内存。Windows系统为这段共享的内存设计采用数据流I/0的方式来访问。由一个进程读、另一个进程写,类似于一个管道两端,因此这种进程间的通信方式称作“管道”。“管道”可以帮助用户可以绕开底层硬件,直接在上层操作硬件接口进行通讯。同时为不同硬件接口设置不同的管道,可以使多个硬件接口在上层并行工作。本专利技术还使用了程序预制技术,来实现自动生成功能的铺垫工作。该技术依据统一量的结构,编写预制程序。预制程序包括管道操作程序,数据按位解析程序和数据按位装填程序。管道操作程序是为了本次操作可以调用到该接口对应的管道。数据按位解析和数据按位装填程序则是对应统一格式对数据进行上行和下行的数据封装操作,以便不同硬件不同协议下的数据可以统一进行接收和发送。数据库技术是按照数据结构来组织、存储和管理数据的仓库。本专利技术利用数据库来进行数据的存储、架构和提取。程序自动生成技术是读取数据库的基本数据后,程序自动生成程序按读取的协议生成代码,并将代码按规范的格式打印在预制程序后面。以串口为例,属性基本数据是每个硬件接口独有的基本数据,串口的属性基本数据包括通道号、使用协议、波特率、数据位长度、校验位等。协议基本数据在线下阶段统一完成,对所用接口通用。协议基本数据包括协议集名、协议名、上行或下行、帧头、字段长度、字段内容、开始位置和结束位置等。协议集对应一个硬件接口的多个通讯函数,它里面包括了该接口的不同协议,如下行(通道号0)、下行(通道号1)或上行(通道号0)等。之后对应基本数据生成所需协议,协议分为上行和下行两种。程序自动生成程序读取到这些后生成可供用户调用的主函数。从返回类型开始生成,一直到程序结尾的“}”。并将生成的程序填入预置程序中,形成一个完整的协议。最后使用动态链接技术对生成的协议进行动态编译。用自动生成出的程序编译成用户可以方便调用的动态链接库。动态链接库是Windows操作系统时,实现共享函数库概念的一种方式。动态链接使进程可以调用不属于其可执行代码的函数。用户使用时,在系统代码中添加动态链接库后,就可以直接调用自动生成的硬件接口通讯软件。具体实施过程中,应事先调研好本次系统开发需要涉及的所有硬件需求和属性基本数据。之后对每种硬件建立单独的通讯管道。本实施例以串口为例:一、线下协议统一阶段见图3,串口的属性基本数据包括通道号、使用协议、波特率、数据位长度和校验位。属性基本数据中,多数可以在统一后的协议里实现,比如数据位长度、校验位和通道号。对于波特率和使用协议这种特异属性,采用专门写个连接底层驱动函数的方法。在最终调用动态链接库时,直接声明底层驱动函数就实现了这些特异属性。基本协议基本参数包括:协本文档来自技高网...

【技术保护点】
1.一种多硬件接口通讯协议软件按需自动生成方法,其特征在于,包括线下协议统一和线上自动生成两个阶段;所述线下协议统一阶段包括以下步骤:(1)确定项目涉及的所有硬件种类和属性基本数据;(2)建立数据库,将基本协议数据的结构构建在数据库中,基本协议数据包括协议集名、协议名、上行、下行、帧头、字段长度、字段内容、开始位置、结束位置和帧尾;(3)为每种硬件建立单独的通讯管道;(4)编写管道操作程序、数据按位解析程序和数据按位装填程序组成预置程序;(5)根据硬件的特异属性,编写可直接连接底层驱动的程序用以实现硬件接口的特异性,并将其编入预置程序;所述线上自动生成阶段包括以下步骤:A.用户录入基本数据,基本数据是由线下协议统一阶段规划完成;录入的数据存入数据库中;B.根据程序自动生成技术编写程序自动生成程序;C.调用程序自动生成程序;程序自动生成程序读取数据库中用户的需求后,在预置程序后生成可直接调用的接口通讯函数;D.对生成后的预置程序进行动态编译生成动态链接库。

【技术特征摘要】
1.一种多硬件接口通讯协议软件按需自动生成方法,其特征在于,包括线下协议统一和线上自动生成两个阶段;所述线下协议统一阶段包括以下步骤:(1)确定项目涉及的所有硬件种类和属性基本数据;(2)建立数据库,将基本协议数据的结构构建在数据库中,基本协议数据包括协议集名、协议名、上行、下行、帧头、字段长度、字段内容、开始位置、结束位置和帧尾;(3)为每种硬件建立单独的通讯管道;(4)编写管道操作程序、数据按位解析程序和数据按位装填程序组成预置程序;(5)根据硬件的特异属性,编写可直接连接底层驱动的程序用以实现硬件接口的特异性,并将其编入预置程序;所述线上自动生成阶段包括以下步骤:A.用户录入基本数据,基本数据是由线下协议统一阶段规划完成;录入的数据存入数据库中;B.根据程序自动生成技术编写程序自动生成程序;C.调用程序自动生成程序;程序自动生成程序读取数据库中用户的需求后,在预置程序后生成可直接调用的接口通讯函数;D....

【专利技术属性】
技术研发人员:石高涛吴迪
申请(专利权)人:天津大学
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1