一种协议解析方法、装置、软网关和存储介质与流程

文档序号:27250163发布日期:2021-11-03 20:25阅读:177来源:国知局
一种协议解析方法、装置、软网关和存储介质与流程

1.本发明实施例涉及互联网技术,尤其涉及一种协议解析方法、装置、软网关和存储介质。


背景技术:

2.随着互联网技术的快速发展,不同硬件设备所使用的通讯协议往往不同,从而需要利用网关进行协议解析和转换,以实现多个硬件设备之间的通讯。
3.目前,通常是利用硬件网关基于其自身的硬件进行协议的解码。然而,这种硬件网关由于硬件限制,只能支持两三种相近协议的解码,所以硬件网关相对于目前协议繁多的物联世界比较笨拙,迭代不够迅速,且换代成本较高。


技术实现要素:

4.本发明实施例提供了一种协议解析方法、装置、软网关和存储介质,以利用软件服务代替硬件解析协议,摆脱硬件载体和硬解码能力对物联协议解析的限制。
5.第一方面,本发明实施例提供了一种协议解析方法,应用于软网关,包括:
6.向第一硬件设备发送请求报文,所述请求报文用于获取第一硬件设备的属性值;
7.接收第一硬件设备基于所述请求报文发送的响应报文;
8.根据第一物联协议的协议类库对所述响应报文进行协议解析,获得解析后的属性值,其中,所述第一物联协议是所述第一硬件设备使用的通信协议。
9.第二方面,本发明实施例还提供了一种协议解析装置,集成于软网关,包括:
10.请求报文发送模块,用于向第一硬件设备发送请求报文,所述请求报文用于获取第一硬件设备的属性值;
11.响应报文接收模块,用于接收第一硬件设备基于所述请求报文发送的响应报文;
12.协议解析模块,用于根据第一物联协议的协议类库对所述响应报文进行协议解析,获得解析后的属性值,其中,所述第一物联协议是所述第一硬件设备使用的通信协议。
13.第三方面,本发明实施例还提供了一种软网关,所述软网关包括:
14.一个或多个处理器;
15.存储器,用于存储一个或多个程序;
16.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的协议解析方法。
17.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本发明任意实施例所提供的协议解析方法。
18.本发明实施例中构建的软网关可以通过向第一硬件设备发送请求报文,该请求报文用于获取第一硬件设备的属性值,并接收第一硬件设备基于请求报文发送的响应报文,根据第一硬件设备使用的第一物联协议所对应的协议类库对响应报文进行协议解析,获得
解析后的属性值,从而可以利用软件服务解析物联协议代替硬件解码的协议解析,并且可以利用不同的协议类库解析相应的物联协议,从而可以支持多种物联协议的解析,摆脱了硬件载体和硬解码能力对物联协议解析的限制。
附图说明
19.图1是本发明实施例一提供的一种协议解析方法的流程图;
20.图2是本发明实施例二提供的一种协议解析方法的流程图;
21.图3是本发明实施例三提供的一种协议解析装置的结构示意图;
22.图4是本发明实施例四提供的一种软网关的结构示意图。
具体实施方式
23.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
24.实施例一
25.图1为本发明实施例一提供的一种协议解析方法的流程图,本实施例可适用于对物联协议进行软件解析,以实现软网关与硬件设备之间的数据交互的情况。该方法可以由协议解析展示装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于软网关中。如图1所示,该方法具体包括以下步骤:
26.s110、向第一硬件设备发送请求报文,请求报文用于获取第一硬件设备的属性值。
27.其中,第一硬件设备可以是指需要连接网关进行通讯的设备。例如,第一硬件设备可以是但不限于温湿度传感器和空调等物联设备。本实施例中的硬件设备本质上为服务端。
28.具体地,软网关可以基于第一硬件设备使用的第一物联协议上的设备属性配置信息和待访问的设备属性,生成用于获取该设备属性的属性值的请求报文,并将该请求报文发送至第一硬件设备,以实现软网关的数据采集功能。
29.示例性地,在步骤s110之前,还可以包括:基于第一物联协议上的通讯参数配置信息,与第一硬件设备建立通讯连接。
30.其中,通讯参数配置信息可以包括但不限于第一硬件设备的ip地址和端口配置信息。具体地,本实施例可以构建一个物联协议的软网关服务,启动该服务后,等待与第一硬件设备进行通讯连接,并可以对第一硬件设备的连接动作和发送的报文进行监听。当监听到第一硬件设备的连接动作后,软网关可以基于第一硬件设备的ip地址和端口配置信息,主动与第一硬件设备建立通讯连接,或者,也可以被动等待第一硬件设备的通讯连接。当通讯连接成功后,软网关便可与第一硬件设备进行数据交互。
31.s120、接收第一硬件设备基于请求报文发送的响应报文。
32.具体地,第一硬件设备接收到软网关发送的请求报文后,可以对请求报文进行解析,获得待访问设备属性,并获取待访问设备属性对应的属性值。第一硬件设备可以基于该属性值生成第一物联协议下的响应报文,并将该响应报文发送至软网关中。软网关可以监听第一硬件设备端口下的通讯报文,从而可以及时准确地接收到第一硬件设备发送的响应
报文。
33.s130、根据第一物联协议的协议类库对响应报文进行协议解析,获得解析后的属性值,其中,第一物联协议是第一硬件设备使用的通信协议。
34.其中,通信协议可以是指通信双方对数据传送控制的一种约定。物联协议可以包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。通讯协议中各层都为上一层提供业务功能。为了提供这种业务功能,下一层将上一层中的数据并入到本层的数据域中,然后通过加入报头或报尾来实现该层业务功能,该过程叫做数据封装。数据要经过一次次包装,最后转化成可以在网络上传输的信号,发送到网络上。当到达目标设备后,再执行相反的拆包过程。本实施例中的第一物联协议可以是指基于tcp/ip(transmission control protocol/internet protocol,传输控制协议/因特网互联协议)通讯的通信协议。例如,第一物联协议可以包括基于tcp/ip通讯的modbus tcp协议、knx ip协议或者bacnet ip协议。tcp/ip是internet最基本的协议、internet国际互联网络的基础,由网络层的ip协议和传输层的tcp协议组成。协议类库可以包括用于解析物联协议的对象类和方法等。不同的物联协议对应不同的协议类库。
35.具体地,软网关接收到第一硬件设备发送的响应报文是被数据封装后的原始信息,从而可以通过调用第一硬件设备所使用的第一物联协议的协议类库中的相应方法,解码响应报文的头部和尾部,获得待访问的设备属性的属性值。不同的物联协议,其报文头尾及格式都不相同。根据不同协议类库将原始信息进行解析后,可以获得不同协议表示的真实信息。本实施例可以通过添加不同的协议类库来支持多种物联协议的解析,摆脱硬件载体及硬解码能力对物联协议的解析限制。本实施例也可以通过远程更新等机制的接口设计,利用更新协议类库来更新支持的协议种类及数量,避免了功能“烧入”硬件繁琐步骤,实现了软硬解耦的功能。如果以跨平台的代码来构建软网关,则这个软网关可以运行在linux、windows、mac等不同的操作系统上,从而安装该软网关后就可以实现基于tcp/ip通讯物联协议的解析,大大扩展了硬件网关使用的领域边界。
36.需要说明的是,本实施例的软网关可以基于步骤s110

s130描述的协议解析方式获取第一硬件设备的每个设备参数的属性值,实现软网关与第一硬件设备的数据交互。例如,若第一硬件设备是使用modbus tcp协议的温湿度传感器,则软网关可以根据起始位地址、读取长度、功能码、设备id等参数读取modbus寄存器各属性值,并接收相应的响应报文,即modbus tcp报文。软网关捕获到这些原始的modbus tcp报文时,可以利用modbus tcp协议类库,将报文去头去尾,正确解析出数据交互时传达的属性值,从而实现数据采集功能。
37.本实施例的技术方案中,构建的软网关可以通过向第一硬件设备发送请求报文,该请求报文用于获取第一硬件设备的属性值,并接收第一硬件设备基于请求报文发送的响应报文,根据第一硬件设备使用的第一物联协议所对应的协议类库对响应报文进行协议解析,获得解析后的属性值,从而可以利用软件服务解析物联协议代替硬件解码的协议解析,并且可以利用不同的协议类库解析相应的物联协议,从而可以支持多种物联协议的解析,摆脱了硬件载体和硬解码能力对物联协议解析的限制。
38.在上述技术方案的基础上,在步骤s130之后,还可以包括:根据第一物联协议上的设备属性配置信息和解析后的属性值,确定设备属性与属性值之间的映射关系;基于映射
关系构建第一物联协议对应的第一物模型。
39.具体地,软网关可以按照上述协议解析方式获取第一硬件设备的每个设备属性的属性值,并基于第一物联协议上的设备属性配置信息和解析后的每个属性值,确定设备属性与属性值之间的映射关系,从而可以基于该映射关系动态地创建该第一物联协议的通用型的第一物模型,并将每个设备属性作为其属性赋予第一物模型,以及为这些属性赋予对应的属性值,从而构建出一个与第一硬件设备相同属性的数字孪生虚拟设备。通过这些属性和属性值便可完成第一硬件设备的数据采集、协议转换、指令控制等功能,等同于硬件网关相同的功能。
40.例如,若第一硬件设备是使用modbus tcp协议的温湿度传感器,则可以基于modbus tcp协议手册上的各不同modbus寄存器代表的不同属性,与解析后的属性值进行一一对应,获得设备属性与属性值之间的映射关系,并可以利用json格式来描述第一硬件设备不同点位属性的各属性值。例如,modbus寄存器0位,功能码为1,数据类型为布尔值,表示开关状态;modbus寄存器1至2位,功能码为3,数据类型为浮点型,表示温度读值;modbus寄存器3至4位,功能码为16,数据类型为浮点型,表示设定温度值。该步骤完成第一硬件设备被虚拟构建后各属性的映射,即实现硬件设备的数据采集及指令控制。
41.示例性地,基于映射关系构建第一物联协议对应的第一物模型,可以包括:基于映射关系,将每个设备属性和相应的属性值写入通用物模型中,并创建每个设备属性对应的属性别名,获得第一物联协议对应的第一物模型。
42.具体地,通过对每个设备属性创建一个对应的属性别名,以便后续可以通过调用属性别名的方式,通过第一物模型快速地获取相应属性值信息,进一步提高了访问效率。
43.在上述技术方案的基础上,在基于映射关系构建第一物联协议对应的第一物模型之后,还可以包括:根据第二物联协议的协议类库,对第一物模型进行协议转换,确定第二物联协议对应的第二物模型,以使使用第二物联协议的第二硬件设备基于第二物模型获取第一硬件设备的属性值。
44.其中,第二物联协议可以是不同于第一物联协议的协议,即第二硬件设备与第一硬件设备所使用的物联协议不同。例如,第一硬件设备是使用modbus tcp协议的温湿度传感器,第二硬件设备可以是使用bacnet ip协议的空调。
45.具体地,可以根据第二物联协议的协议类库,将第一物模型中存储的设备属性和属性值进行协议转换,获得符合第二物联协议规则的第二物模型,从而第二硬件设备可以通过读取第二物模型的方式,获取第一硬件设备的属性值,从而实现软网关的协议转换功能。例如,第一硬件设备是使用modbus tcp协议的温湿度传感器,第二硬件设备可以是使用bacnet ip协议的空调,此时可以根据bacnet ip协议类库构建一个第二物模型,并将之前的开关状态、温度值、设定温度按bacnet ip协议规则写入对应的ai、bi、bo等bacnet属性点上,从而可以将modbus tcp协议的第一物模型转换为bacnet ip协议的第二物模型,以供支持bacnet ip协议的第二硬件设备读取,即完成了协议转换。
46.示例性地,作为另一种协议转换的方式,可以按照上述创建第一物模型的方式,通过与第二硬件设备的数据交互,构建一个基于第二物联协议的第二物模型,从而可以通过各自的物模型实现第一硬件设备和第二硬件设备的数据交互。例如,可以对温湿度传感器构建一个传感器物模型,对空调构建一个空调物模型,由于每个物模型之间的关系是平等
的,没有主从关系,从而空调物模型可以直接访问传感器模型,获取温湿度传感器中的设备属性值。例如,空调物模型可以通过访问温度属性的属性别名的方式,快速地获得温湿度传感器的温度值,从而更加便捷地实现了协议转换功能。
47.实施例二
48.图2为本发明实施例二提供的一种协议解析方法的流程图,本实施例在上述各实施例的基础上,对软网关和平台端之间的数据交互进行了详细描述。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
49.参见图2,本实施例提供的协议解析方法具体包括以下步骤:
50.s210、向第一硬件设备发送请求报文,请求报文用于获取第一硬件设备的属性值。
51.s220、接收第一硬件设备基于请求报文发送的响应报文。
52.s230、根据第一物联协议的协议类库对响应报文进行协议解析,获得解析后的属性值,其中,第一物联协议是第一硬件设备使用的通信协议。
53.s240、根据第一物联协议上的设备属性配置信息和解析后的属性值,确定设备属性与属性值之间的映射关系。
54.s250、基于映射关系,将每个设备属性和相应的属性值写入通用物模型中,并创建每个设备属性对应的属性别名,获得第一物联协议对应的第一物模型。
55.s260、接收平台端发送的信息查询请求,信息查询请求包括待查询设备属性对应的目标属性别名。
56.其中,平台端可以是指需要获取设备属性值信息的终端。例如,平台端可以是第三方或者云端等。本实施例中的平台端本质上为客户端。
57.具体地,在构建物模型后,平台端可以基于待查询设备属性对应的目标属性别名生成信息查询请求,并将该信息查询请求发送至软网关。
58.需要说明的是,在构建物模型之前,可以根据起始位地址、读取长度、功能码、设备id这四个参数生成待查询设备属性对应的信息查询请求。在构建物模型之后,可以仅基于待查询设备属性对应的目标属性别名这一个参数生成信息查询请求,从而可以提高访问效率。例如,若平台端想获取温湿度传感器的温度,则在构建模型之前,需要功能码:03、设备id:1、寄存器起始位地址:0、寄存器访问长度:2这四个参数生成信息查询请求。在构建模型之后,只需要温度对应的属性别名,比如livingroomtemp生成信息查询请求,从而可以简化访问操作,提高访问效率。
59.s270、基于第一物模型,根据信息查询请求中的目标属性别名,确定查询获得的目标属性值,并将目标属性值发送至平台端。
60.具体地,软网关接收到用于访问第一硬件设备的信息查询请求后,可以对该信息查询请求进行解析,获得待查询设备属性对应的目标属性别名,并可以从第一物模型中存储的每个属性别名对应的属性值中获得目标属性别名对应的目标属性值;也可以通过上述步骤s210

s230的方式,实时获取第一硬件设备中的目标属性值,并对第一物模型中存储的目标属性值进行更新。软网关将获得的目标属性值发送至平台端,从而通过软网关实现平台端与第一硬件设备的通信。
61.本实施例的技术方案,软网关通过接收平台端发送的信息查询请求,该信息查询请求包括待查询设备属性对应的目标属性别名,并基于第一物模型,根据信息查询请求中
的目标属性别名,确定查询获得的目标属性值,并将目标属性值发送至平台端,从而利用属性别名可以更加快速便捷地访问软网关,进一步提高了访问效率。
62.以下是本发明实施例提供的协议解析装置的实施例,该装置与上述各实施例的协议解析方法属于同一个发明构思,在协议解析装置的实施例中未详尽描述的细节内容,可以参考上述协议解析方法的实施例。
63.实施例三
64.图3为本发明实施例三提供的一种协议解析装置的结构示意图,本实施例可适用于对物联协议进行软件解析,以实现软网关与硬件设备之间的数据交互的情况,该装置可以集成于软网关,具体包括:请求报文发送模块310、响应报文接收模块320和协议解析模块330。
65.其中,请求报文发送模块310,用于向第一硬件设备发送请求报文,请求报文用于获取第一硬件设备的属性值;响应报文接收模块320,用于接收第一硬件设备基于请求报文发送的响应报文;协议解析模块330,用于根据第一物联协议的协议类库对响应报文进行协议解析,获得解析后的属性值,其中,第一物联协议是第一硬件设备使用的通信协议。
66.可选地,该装置还包括:
67.映射关系确定模块,用于在获得解析后的属性值之后,根据第一物联协议上的设备属性配置信息和解析后的属性值,确定设备属性与属性值之间的映射关系;
68.物模型构建模块,用于基于映射关系构建第一物联协议对应的第一物模型。
69.可选地,物模型构建模块,具体用于:基于映射关系,将每个设备属性和相应的属性值写入通用物模型中,并创建每个设备属性对应的属性别名,获得第一物联协议对应的第一物模型。
70.可选地,该装置还包括:
71.信息查询请求接收模块,用于在基于映射关系构建第一物联协议对应的第一物模型之后,接收平台端发送的信息查询请求,信息查询请求包括待查询设备属性对应的目标属性别名;
72.目标属性值发送模块,用于基于第一物模型,根据信息查询请求中的目标属性别名,确定查询获得的目标属性值,并将目标属性值发送至平台端。
73.可选地,该装置还包括:
74.协议转换模块,用于在基于映射关系构建第一物联协议对应的第一物模型之后,根据第二物联协议的协议类库,对第一物模型进行协议转换,确定第二物联协议对应的第二物模型,以使使用第二物联协议的第二硬件设备基于第二物模型获取第一硬件设备的属性值。
75.可选地,该装置还包括:
76.通讯连接模块,用于在向第一硬件设备发送请求报文之前,基于第一物联协议上的通讯参数配置信息,与第一硬件设备建立通讯连接。
77.可选地,第一物联协议包括基于tcp/ip通讯的modbus tcp协议、knx ip协议或者bacnet ip协议。
78.本发明实施例所提供的协议解析装置可执行本发明任意实施例所提供的协议解析方法,具备执行协议解析方法相应的功能模块和有益效果。
79.值得注意的是,上述协议解析装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
80.实施例四
81.图4是本发明实施例四提供的一种软网关的结构示意图。参见图4,该软网关包括:
82.一个或多个处理器410;
83.存储器420,用于存储一个或多个程序;
84.当一个或多个程序被一个或多个处理器410执行,使得一个或多个处理器410实现如上述实施例中任意实施例所提供的协议解析方法,该方法包括:
85.向第一硬件设备发送请求报文,请求报文用于获取第一硬件设备的属性值;
86.接收第一硬件设备基于请求报文发送的响应报文;
87.根据第一物联协议的协议类库对响应报文进行协议解析,获得解析后的属性值,其中,第一物联协议是第一硬件设备使用的通信协议。
88.图4中以一个处理器410为例;软网关中的处理器410和存储器420可以通过总线或其他方式连接,图4中以通过总线连接为例。
89.存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的协议解析方法对应的程序指令/模块(例如,协议解析装置中的请求报文发送模块310、响应报文接收模块320和协议解析模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行软网关的各种功能应用以及数据处理,即实现上述的协议解析方法。
90.存储器420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据软网关的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至软网关。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
91.本实施例提出的软网关与上述实施例提出的协议解析方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行协议解析方法相同的有益效果。
92.实施例五
93.本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的协议解析方法步骤,该方法包括:
94.向第一硬件设备发送请求报文,请求报文用于获取第一硬件设备的属性值;
95.接收第一硬件设备基于请求报文发送的响应报文;
96.根据第一物联协议的协议类库对响应报文进行协议解析,获得解析后的属性值,其中,第一物联协议是第一硬件设备使用的通信协议。
97.本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或
者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
98.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
99.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
100.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
101.本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
102.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1