掌桥专利:专业的专利平台
掌桥专利
首页

一种用于通讯协议封装的配置方法、系统、设备及介质

文献发布时间:2024-01-17 01:26:37


一种用于通讯协议封装的配置方法、系统、设备及介质

技术领域

本发明涉及软件开发技术领域,具体的,本发明应用于自助终端设备,特别是涉及一种用于通讯协议封装的配置方法、系统、设备及介质。

背景技术

自助设备中,使用了多种硬件模块,各个模块来自不同的厂商,其通讯协议不同,协议复杂程度也不同;在上层软件调用这些硬件模块时,需要根据其协议封装各种各样的功能库。具体的,硬件通讯指令集格式存在共性,通常由指令ID、指令参数和指令体数据组成,指令体数据可为一个数据包或多个数据包构成。

基于此,需要设计一种方法,对自助设备中的硬件模块协议封装和拆封进行统一,进而规范开发流程,统一接入方式,方便调用。

发明内容

本发明的目的在于,针对现有技术中的上述问题,提供一种用于通讯协议封装的配置方法、系统、设备及介质,进而规范开发流程,统一接入方式。

为实现上述目的,本发明的具体技术方案如下:

一方面,本发明提供一种用于通讯协议封装的配置方法,包括以下步骤:

执行框架设置步骤,得到开发框架;

根据所述开发框架执行指令数据的封装;

根据封装的所述指令数据执行接口封装步骤;

所述框架设置步骤,包括:ID设置步骤、通讯方法类设置步骤、格式化方法类设置步骤、接口管理类设置步骤、实例托管类设置步骤、数据管理类设置步骤和执行结果类设置步骤。

作为一种改进的方案,所述ID设置步骤,包括:

构建第一框架;

设置所述第一框架内所有指令具备CMD_ID;

将所述第一框架内的指令体数据划分数据包,设置每个所述数据包具备PKT_ID。

作为一种改进的方案,所述通讯方法类设置步骤,包括:在所述第一框架内设置CDevSignleton类,通过所述CDevSignleton类提供通讯方法类,以及串口、USB或HID通讯方式的服务支持;

所述格式化方法类设置步骤,包括:在所述第一框架内设置CFormateSingleton类,通过所述CFormateSingleton类提供将指令数据转换为通讯数据的格式化方法;

所述接口管理类设置步骤,包括:在所述第一框架内设置CPKTBase类,通过所述CPKTBase类管理PKT_ID、指令数据和数据处理方法;通过所述CPKTBase类提供用于所述第一框架统一托管指令数据包的接口,通过所述CPKT_Base提供虚接口;

所述实例托管类设置步骤,包括:在所述第一框架内设置CPKTHandlerBase类,通过所述CPKTHandlerBase类托管继承自所述CPKTBase类的指令数据包类实例;

所述数据管理类设置步骤,包括:在所述第一框架内设置CDevCMDData类,继承自所述CPKTHandlerBase类;通过所述CDevCMDData类管理所述CMD_ID、指令参数以及托管的指令数据包;

所述执行结果类设置步骤,包括:在所述第一框架内设置CDevResonseData类,通过所述CDevResonseData类管理指令执行结果、错误代码以及接收硬件模块返回的数据。

作为一种改进的方案,所述用于通讯协议封装的配置方法,还包括:

响应于通讯数据生成过程,调用CPKTHandlerBase::Item,以所述CDevCMDData类实例为目标,申请指令数据包类实例进行赋值操作;通过flush()方法将指令数据发送至硬件模块;

响应于通讯数据解析过程,调用CPKTHandlerBase::Queryer,以所述CDevResonseData类实例为目标,获取指令数据包类实例,执行取值操作。

作为一种改进的方案,所述虚接口,包括:

用于将指令数据按照通讯协议处理为通讯数据的接口CreatPacketData();

用于将指令的通讯数据包翻译为指令数据的接口ParePacketData();

用于获取指令包ID的接口GetPacketID();

用于获取通讯数据包的长度的接口GetPacketLen();

用于序列化数据内容并记录日志的接口GetString()。

作为一种改进的方案,所述根据所述开发框架执行指令数据的封装,包括:

创建工程,引入所述开发框架;

根据硬件通讯协议定义CMD_ID,以及PKT_ID;

定义后,根据所述硬件通讯协议定义指令数据包类,继承CPKTBase类,并编写全部指令数据包类。

作为一种改进的方案,所述接口封装步骤,包括:

依次执行:创建指令类实例操作、设置指令参数操作、创建指令数据包类实例操作、赋值操作、追加指令数据包操作、赋值操作、指令执行操作、解析操作、获取执行结果操作、获取错误码操作、获取返回指令数据包类实例操作以及取值操作。

另一方面,本发明还提供一种用于通讯协议封装的配置系统,包括:

框架设置模块、数据封装模块和接口封装模块;

所述框架设置模块,用于执行框架设置步骤,得到开发框架;所述框架设置步骤,包括:ID设置步骤、通讯方法类设置步骤、格式化方法类设置步骤、接口管理类设置步骤、实例托管类设置步骤、数据管理类设置步骤和执行结果类设置步骤;

所述数据封装模块,用于根据所述开发框架执行指令数据的封装;

所述接口封装模块,用于根据封装的所述指令数据执行接口封装步骤。

另一方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述用于通讯协议封装的配置方法的步骤。

另一方面,本发明还提供一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;其中:

所述存储器,用于存放计算机程序;

所述处理器,用于通过运行所述存储器上所存放的程序来执行所述用于通讯协议封装的配置方法的步骤。

本发明技术方案的有益效果是:

本发明所述的用于通讯协议封装的配置方法,可以实现通过软件框架的设计,统一各个硬件模块协议的封装和拆封,进而规范开发流程,并统一接入方式,方便后续泛化接入上层软件的调用,具有较高的应用价值。

本发明所述的用于通讯协议封装的配置系统,可以通过框架设置模块、数据封装模块和接口封装模块的相互配合,进而实现本发明所述的用于通讯协议封装的配置方法。

本发明所述的计算机可读存储介质,可以实现引导框架设置模块、数据封装模块和接口封装模块进行配合,进而实现本发明所述的用于通讯协议封装的配置方法,且本发明所述的计算机可读存储介质还有效提高所述用于通讯协议封装的配置方法的可操作性。

本发明所述的计算机设备,可以实现存储并执行所述计算机可读存储介质,进而实现本发明所述的用于通讯协议封装的配置方法。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例1所述用于通讯协议封装的配置方法的流程示意图;

图2是本发明实施例2所述用于通讯协议封装的配置系统的架构示意图;

图3是本发明实施例4所述计算机设备的结构示意图;

附图中的标记说明如下:

1501、处理器;1502、通信接口;1503、存储器;1504、通信总线。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

在本发明的描述中,需要说明的是,本发明所描述的实施例是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

本实施例提供一种用于通讯协议封装的配置方法,如图1所示,包括以下步骤:

需要说明的是,现有技术中, 硬件通讯指令集格式存在共性,通常由指令ID、指令参数和指令体数据组成,指令体数据可为一个数据包或多个数据包构成;基于此,本方法通过设计软件框架,统一各个硬件模块协议的封装和拆封;进而规范开发流程,统一接入方式,方便后续泛化接入上层软件的调用,具体如下:

A:框架的设置步骤:

首先,框架所有指令具备CMD_ID;指令体数据划分为一个或多个数据包,每个数据包具备PKT_ID;

后续进行不同类的设置:

第一,关于通讯方法:框架(即第一框架)设置CDevSignleton类,用于提供预置的通讯方法类,支持串口、USB或HID等通讯方式;当需求实现自定义的通讯方式时,开发者可继承CDevHandlerInterface类,通过CDevSignleton类的Set()方法提供至框架;

第二,关于格式化方法:框架设置CFormateSingleton类,用于提供预置指令数据转为通讯数据的格式化方法;当需求实现自定义的通讯方式时,开发者可继承CFormatterInterface类,通过CFormateSingleton的Set()方法提供至框架;

第三,关于接口管理:框架设置CPKTBase类,为指令数据包单元,用于管理PKT_ID、指令数据和数据处理方法;其提供一致接口,用于框架统一托管指令数据包;实际应用时,开发者所开发的指令数据包类需继承此类,并实现其虚方法;具体的,CPKT_Base提供以下虚接口:

1、虚接口CreatPacketData(),用于将指令数据按照通讯协议处理为通讯数据;

2、虚接口ParePacketData(),用于将指令的通讯数据包翻译为指令数据;

3、虚接口GetPacketID(),用于获取指令包ID;

4、虚接口GetPacketLen(),用于获取通讯数据包的长度;

5、虚接口GetString(),用于通过序列化数据内容来记录日志。

第四,关于实例托管:框架设置CPKTHandlerBase类,用于统一托管继承自CPKTBase类的指令数据包类实例;

第五,关于参数及数据包管理:框架设置CDevCMDData类,继承自CPKTHandlerBase;其用于管理CMD_ID、指令参数,以及托管的指令数据包;具体的,在实际的通讯数据生成过程中:业务层能够使用CPKTHandlerBase::Item,以CDevCMDData类实例为目标,申请任意个和任意类型的指令数据包类实例,进行赋值操作;之后通过其flush()方法将指令数据发送给硬件模块执行对应操作;其中,fulsh()方法内部会依次调用其托管的指令数据包类实例CreatPacketData()方法,获取全部通讯数据,然后拼接CMD_ID和指令参数,最终使用CFormateSingleton类格式化方法生成完整的指令通讯数据。

第六,关于执行结果管理:框架设置CDevResonseData类,用于管理指令执行结果,错误代码以及接收硬件模块返回的数据;实际应用时,业务层使用CPKTHandlerBase::Queryer,以CDevResonseData类实例为目标,获取需要的指令数据包类实例,然后进行取值操作;CDevResonseData类内部使用CFormateSingleton类逆格式化方法对通讯数据拆包,然后使用指令数据包类实例的ParePacketData()方法将通讯数据拆封为指令体数据。

以上完成了框架的设置,后续进行数据以及接口的封装,具体如下:

B:数据的封装步骤;

首先创建工程,引入开发框架;根据硬件通讯协议定义指令ID:CMD_ID,以及定义数据包ID:PKT_ID;定义完成后,根据硬件通讯协议定义指令数据包类,继承CPKTBase类,用于实现CreatPacketData()、ParePacketData()、GetPacketID()、GetPacketLen()、GetString();后续完成所需要的全部指令数据包类的编写;若有相应需求,通过编写CMyDevHandler,继承CDevHandlerInterface类,实现接口Open()、Close()、Send()、Receive();若还有相应需求,通过编写CMyCFormatter类,继承CFormatterInterface类,实现接口Formate()、Unformate();到此完成开发过程;

C:接口的封装步骤:

在本实施方式中,接口封装依次包括:创建指令类实例、设置指令参数、创建指令数据包类实例、赋值、继续追加指令数据包、再赋值、执行、解析、获取执行结果、获取错误码、获取返回指令数据包类实例以及取值的多个顺序步骤;本实施方式以封装设备初始化接口init()为例,进行封装步骤的详细说明,如下:

1、创建指令类实例:

CDevCMDData denomSetting(DEV_DENOM_CMD);

2、设置指令参数:

denomSetting->SetParam();

3、创建指令数据包类实例:

CPKTHandlerBase::Item denomDef(&denomSetting)

4、赋值:

denomDef->SetExpanded();

denomDef->SetDenomID();

5、继续追加指令数据包:

CPKTHandlerBase::Item denomSet(&denomSetting)

6、赋值:

denomSet->SetDenomHandler();

7、执行:

CDevResonseData denomResponse = denomSetting->flush();

8、解析,获取执行结果:

denomResponse->GetResult();

9、获取错误码:

denomResponse->GetErrorCode();

10、获取返回指令数据包类实例:

CPKTHandlerBase::Queryer denomSetted(&denomResponse)

11、取值:

denomSetted->GetExpanded();

denomSetted->GetDenomID();

12、到此,完成init()接口封装。

实施例2

本实施例基于与实施例1中所述的一种用于通讯协议封装的配置方法相同的发明构思,提供一种用于通讯协议封装的配置系统,如图2所示,包括:框架设置模块、数据封装模块和接口封装模块;

所述框架设置模块,用于执行框架设置步骤,得到开发框架;所述框架设置步骤,包括:ID设置步骤、通讯方法类设置步骤、格式化方法类设置步骤、接口管理类设置步骤、实例托管类设置步骤、数据管理类设置步骤和执行结果类设置步骤;

作为一种实施方式,所述ID设置步骤,包括:所述框架设置模块构建第一框架;所述框架设置模块设置所述第一框架内所有指令具备CMD_ID;所述框架设置模块将所述第一框架内的指令体数据划分数据包,设置每个所述数据包具备PKT_ID。

作为一种实施方式,所述通讯方法类设置步骤,包括:所述框架设置模块在所述第一框架内设置CDevSignleton类,通过所述CDevSignleton类提供通讯方法类,以及串口、USB或HID通讯方式的服务支持;

作为一种实施方式,所述格式化方法类设置步骤,包括:所述框架设置模块在所述第一框架内设置CFormateSingleton类,通过所述CFormateSingleton类提供将指令数据转换为通讯数据的格式化方法;

作为一种实施方式,所述接口管理类设置步骤,包括:所述框架设置模块在所述第一框架内设置CPKTBase类,通过所述CPKTBase类管理PKT_ID、指令数据和数据处理方法;通过所述CPKTBase类提供用于所述第一框架统一托管指令数据包的接口,通过所述CPKT_Base提供虚接口;

作为一种实施方式,所述实例托管类设置步骤,包括:所述框架设置模块在所述第一框架内设置CPKTHandlerBase类,通过所述CPKTHandlerBase类托管继承自所述CPKTBase类的指令数据包类实例;

作为一种实施方式,所述数据管理类设置步骤,包括:所述框架设置模块在所述第一框架内设置CDevCMDData类,继承自所述CPKTHandlerBase类;通过所述CDevCMDData类管理所述CMD_ID、指令参数以及托管的指令数据包;

作为一种实施方式,所述执行结果类设置步骤,包括:所述框架设置模块在所述第一框架内设置CDevResonseData类,通过所述CDevResonseData类管理指令执行结果、错误代码以及接收硬件模块返回的数据。

作为一种实施方式,还包括:响应于通讯数据生成过程,所述框架设置模块调用CPKTHandlerBase::Item,以所述CDevCMDData类实例为目标,申请指令数据包类实例进行赋值操作;通过flush()方法将指令数据发送至硬件模块;响应于通讯数据解析过程,所述框架设置模块调用CPKTHandlerBase::Queryer,以所述CDevResonseData类实例为目标,获取指令数据包类实例,执行取值操作。

作为一种实施方式,所述虚接口,包括:用于将指令数据按照通讯协议处理为通讯数据的接口CreatPacketData();用于将指令的通讯数据包翻译为指令数据的接口ParePacketData();用于获取指令包ID的接口GetPacketID();用于获取通讯数据包的长度的接口GetPacketLen();用于序列化数据内容并记录日志的接口GetString()。

所述数据封装模块,用于根据所述开发框架执行指令数据的封装;

作为一种实施方式,所述根据所述开发框架执行指令数据的封装,包括:所述数据封装模块创建工程,引入所述开发框架;所述数据封装模块根据硬件通讯协议定义CMD_ID,以及PKT_ID;定义后,所述数据封装模块根据所述硬件通讯协议定义指令数据包类,继承CPKTBase类,并编写全部指令数据包类。

所述接口封装模块,用于根据封装的所述指令数据执行接口封装步骤。

作为一种实施方式,所述接口封装步骤,包括:所述接口封装模块依次执行:创建指令类实例操作、设置指令参数操作、创建指令数据包类实例操作、赋值操作、追加指令数据包操作、赋值操作、指令执行操作、解析操作、获取执行结果操作、获取错误码操作、获取返回指令数据包类实例操作以及取值操作。

实施例3

本实施例提供一种计算机可读存储介质,包括:

所述存储介质用于储存将上述实施例1所述的用于通讯协议封装的配置方法实现所用的计算机软件指令,其包含用于执行上述为所述用于通讯协议封装的配置方法所设置的程序;具体的,该可执行程序可以内置在实施例2所述的用于通讯协议封装的配置系统中,这样,用于通讯协议封装的配置系统就可以通过执行内置的可执行程序实现所述实施例1所述的用于通讯协议封装的配置方法。

此外,本实施例具有的计算机可读存储介质可以采用一个或多个可读存储介质的任意组合,其中,可读存储介质包括电、光、电磁、红外线或半导体的系统、装置或器件,或者以上任意组合。

实施例4

本实施例提供一种电子设备,如图3所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。

存储器1503,用于存放计算机程序;

处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例1中所述用于通讯协议封装的配置方法的步骤。

作为本发明的一种实施方式,上述终端提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

作为本发明的一种实施方式,通信接口用于上述终端与其他设备之间的通信。

作为本发明的一种实施方式,存储器可以包括随机存取存储器(Random AccessMemory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

作为本发明的一种实施方式,上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

区别于现有技术,采用本申请一种用于通讯协议封装的配置方法、系统、设备及介质,可以通过软件框架的设计,统一各个硬件模块协议的封装和拆封,进而规范开发流程,并统一接入方式,方便后续泛化接入上层软件的调用,具有较高的应用价值。

应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。

还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。

另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种网络存储系统的配置方法、装置、设备及介质
  • 一种仪表板配置渲染方法、系统、设备及存储介质
  • 一种遥测信息标准化配置方法、系统、介质及设备
  • 一种用于化妆间盒子的交易方法、系统、电子设备及存储介质
  • 一种数据配置方法及装置、一种计算设备及存储介质
  • 一种用于智能监控终端的通讯协议配置方法、设备及介质
  • 一种用于功率分配的配置方法、系统、设备及存储介质
技术分类

06120116210402