基于混合传输协议的报文生成、解析方法、设备及系统与流程

文档序号:26748430发布日期:2021-09-25 01:38阅读:80来源:国知局
基于混合传输协议的报文生成、解析方法、设备及系统与流程

1.本发明属于数据交互技术领域,尤其涉及一种基于混合传输协议的报文生成、解析方法、设备及系统。


背景技术:

2.在数据交互场景下,一般通过json或者二进制传输。
3.json传输的优点是通用性强,简单易懂,交互简单,有成熟的库文件及代码,有成熟的工具可以进行读写功能,缺点是传输基本明文,很容易让第三方读取和窃取传输内容,只适合传输字符、数字、布尔等类型的数据,不适合传输二进制数据与文件,若传输传输二进制数据与文件必须转换格式,此时传输大小是实际有效数据长度的2倍,给传输时间和传输流量都造成了损失。
4.二进制传输的优点是适合传输二进制文件或者二进制数据,比如上下位机交互场景下,通常采用的是二进制格式传输,协议制定报头、长度、数据、校验、报尾的类似格式进行传输,传输效率高,节省流量,有一定的加密特征,缺点是可读性差,通用性不强。


技术实现要素:

5.基于此,针对上述技术问题,提供一种基于混合传输协议的报文生成、解析方法、设备及系统。
6.为解决上述技术问题,本发明采用如下技术方案:
7.一方面,提供一种基于混合传输协议的报文生成方法,其特征在于,所述混合传输协议定义报文的格式包括依次设置的报头字段、json数据长度字段、json数据字段、二进制数据字段、对应所述二进制数据字段的校验位字段、总校验位字段和报尾字段以及json数据长度字段所占字节大小、校验位字段所占字节大小和总校验位字段所占字节大小,该方法包括:
8.填充报头字段,生成报头;
9.将待发送的每个第二数据转换为二进制数据,根据待发送的每个第一数据以及每个二进制数据的长度信息,确定json数据长度,在json数据长度字段填充所述json数据长度;
10.将所述待发送的每个第一数据以及每个二进制数据的长度信息按照json格式填充入json数据字段;
11.将每个二进制数据填充入二进制数据字段,并计算相应的校验值填充入校验位字段;
12.计算总校验值填充入总校验位字段;
13.填充报尾字段,生成报尾。
14.另一方面,提供一种基于混合传输协议的报文解析方法,其特征在于,所述混合传输协议定义报文的格式包括依次设置的报头字段、json数据长度字段、json数据字段、二进
制数据字段、对应所述二进制数据字段的校验位字段、总校验位字段和报尾字段以及json数据长度字段所占字节大小、校验位字段所占字节大小和总校验位字段所占字节大小,该方法包括:
15.根据报文的报头以及报尾,截取两者之间的有效信息;
16.从所述有效信息的总校验位字段获取总校验值,通过所述总校验值对所述有效信息进行校验;
17.校验成功后,根据json数据长度字段所占字节大小从所述有效信息的json数据长度字段获取json数据长度,根据所述json数据长度从所述有效信息中获取json数据字段;
18.从所述json数据字段中获取json格式的第一数据以及json格式的长度信息;
19.通过每个二进制数据的长度信息从所述有效信息中获取对应的二进制数据,并通过相应的校验值对二进制数据进行校验。
20.又一方面,提供一种电子设备,其特征在于,该设备被配置为执行上述一种基于混合传输协议的报文生成方法,或者执行上述一种基于混合传输协议的报文解析方法。
21.再一方面,提供一种数据交互系统,其特征在于,包括下位机以及上位机;
22.所述下位机被配置为:
23.执行上述一种基于混合传输协议的报文生成方法,生成报文,将所述报文发送给所述上位机;
24.接收所述上位机发送的报文,执行上述一种基于混合传输协议的报文解析方法,对所述报文进行解析;
25.所述上位机被配置为:
26.接收所述下位机发送的报文,执行上述一种基于混合传输协议的报文解析方法,对所述报文进行解析;
27.执行上述一种基于混合传输协议的报文生成方法,生成报文,将所述报文发送给所述下位机。
28.本发明基于混合传输协议,结合了json和二进制传输的优点,并且通用性强,适合各种数据交互场景,传输效率高,有效节省流量。
附图说明
29.下面结合附图和具体实施方式本发明进行详细说明:
30.图1为本发明一种基于混合传输协议的报文生成方法的流程图;
31.图2为本发明一种基于混合传输协议的报文解析方法的流程图;
32.图3为本发明的报文格式示意图;
33.图4为本发明一种数据交互系统的结构示意图。
具体实施方式
34.如图3所示,本发明基于混合传输协议,混合传输协议定义报文的格式包括依次设置的报头字段、json数据长度字段、json数据字段、二进制数据字段、对应二进制数据字段的校验位字段、总校验位字段和报尾字段以及json数据长度字段所占字节大小、校验位字段所占字节大小和总校验位字段所占字节大小。
35.在本实施例中,二进制数据字段和对应二进制数据字段的校验位字段均为多个,如图3所示,每个二进制数据字段后设置对应的校验位字段。
36.报头为二进制报头,报尾为二进制报尾,json数据长度字段为二进制格式,其所占字节大小为4个字节,校验位字段为二进制格式,其所占字节大小为1个字节,总校验位字段为二进制格式,其所占字节大小为1个字节。
37.如图1所示,本说明书实施例提供一种基于混合传输协议的报文生成方法,包括:
38.s101、填充报头字段,生成报头。
39.其中,报头可以是预设长度的预设字符。
40.s102、将待发送的每个第二数据转换为二进制数据,根据待发送的每个第一数据以及每个二进制数据的长度信息,确定json数据长度,在json数据长度字段填充json数据长度。
41.其中,json数据长度是可变的,依据所有需以json格式传输的数据的长度确定,即计算每个第一数据转换为json格式后的长度,计算每个二进制数据的长度信息转换为json格式后的长度,最后相加确定json数据长度。
42.s103、将待发送的每个第一数据以及每个二进制数据的长度信息按照json格式填充入json数据字段。
43.每个第一数据按照json格式填充入json数据字段参见图3中的json属性1、json属性2...json属性n,每个二进制数据的长度信息按照json格式填充入json数据字段参见图3中的二进制数据a的长度信息、二进制数据b的长度信息...二进制数据x的长度信息。
44.其中,json格式是指key

value的格式,如“firstname”:“joan”,代表firstname=“joan”,需要指出的是,这里只是对json格式的示例,并非对第一数据进行限定。
45.json数据长度代表json数据字段的长度,在解析报文时,根据json数据长度就可以在报头和报尾之间的有效信息中截取到json数据字段,然后进行json解析,从而得到json属性+二进制数据的长度信息。
46.第一数据是指适合以json格式传输的数据,如字符、数字或者布尔等类型的数据,对于上下位机场景,第一数据如设备版本信息、设备号、软件版本号等等数据。
47.第二数据是指适合以二进制传输的数据,如需要加密的数据等,对于上下位机场景,第二数据如固件hex文件信息以及can数据信息等等数据。
48.而由于二进制数据的长度信息(即二进制数据字段所占字节大小)属于数字类型,并且在解析报文时需要依赖二进制数据的长度信息才能区分不同的二进制数据字段,故二进制数据的长度信息需要方便解析阅读,因此,本发明将二进制数据的长度信息也以json格式填充入json数据字段,使其以json格式传输。
49.s104、将每个二进制数据填充入二进制数据字段,并计算相应的校验值填充入校验位字段。
50.可以采用和校验、奇偶校验或者crc校验等校验方式对二进制数据进行计算得到校验值,这里只是对校验方式的示例,并非对校验方式的限定,也可以采用其它的校验方式。
51.s105、计算总校验值填充入总校验位字段。
52.可以采用和校验、奇偶校验或者crc校验等校验方式对所有数据进行计算得到总
校验值,这里只是对校验方式的示例,并非对校验方式的限定,也可以采用其它的校验方式。
53.s106、填充报尾字段,生成报尾。
54.其中,报尾可以是预设长度的预设字符。
55.其中,报头、报尾、长度信息、所占字节大小及校验值,可以快速分包,不易粘包。
56.本实施例报文生成方法将适合以json格式传输的第一数据填充入报文的json数据字段,将适合以二进制传输的第二数据以二进制数据填充入报文的二进制数据字段,并将每个二进制数据的长度信息按照json格式填充入json数据字段,生成的报文结合了json和二进制传输的优点,并且通用性强,适合各种数据交互场景,传输效率高,没有其他冗余数据以及多余的数据结构内容,有效节省流量。
57.如图2所示,基于同一发明构思,本说明书实施例还提供一种基于混合传输协议的报文解析方法,用于对通过上述一种基于混合传输协议的报文生成方法生成的报文进行解析,包括:
58.s201、根据报文的报头以及报尾,截取两者之间的有效信息。
59.有效信息中包含json数据长度字段、json数据字段、二进制数据字段、对应二进制数据字段的校验位字段、总校验位字段。
60.s202、从有效信息的总校验位字段获取总校验值,通过总校验值对有效信息进行校验。
61.由于总校验位字段所占字节大小已知,并且在报文中的位置已知,所以可以在有效信息中确定哪段数据是总校验位字段。
62.校验时,可以采用和校验、奇偶校验或者crc校验等校验方式对所有数据进行计算得到总校验值,将该总校验值与从总校验位字段获取的总校验值进行比对,从而进行校验,这里只是对校验方式的示例,并非对校验方式的限定,也可以采用其它的校验方式。
63.s203、校验成功后,根据json数据长度字段所占字节大小从有效信息的json数据长度字段获取json数据长度,根据json数据长度从有效信息中获取json数据字段。
64.json数据长度代表json数据字段的长度,根据json数据长度就可以在报头和报尾之间的有效信息中截取到json数据字段,然后进行json解析,从而得到json属性+二进制数据的长度信息,参见图3。
65.s204、从json数据字段中获取json格式的第一数据以及json格式的长度信息。
66.由于从json数据字段中获取的数据均为key

value形式,故可以通过key就可以区分出第一数据和长度信息。
67.s205、通过每个二进制数据的长度信息从有效信息中获取对应的二进制数据,并通过相应的校验值对二进制数据进行校验。
68.校验时,可以采用和校验、奇偶校验或者crc校验等校验方式对二进制数据进行计算得到校验值,将该校验值与从对应的校验位字段获取的校验值进行比对,从而进行校验,这里只是对校验方式的示例,并非对校验方式的限定,也可以采用其它的校验方式。
69.基于同一发明构思,本说明书实施例还提供一种电子设备,该设备被配置为执行本说明书上述一种基于混合传输协议的报文生成方法部分中描述的根据本发明各种示例性实施方式的步骤,或者执行本说明书上述一种基于混合传输协议的报文解析方法部分中
描述的根据本发明各种示例性实施方式的步骤,此处不再赘述。
70.基于同一发明构思,如图4所示,本说明书实施例还提供一种数据交互系统,包括下位机11以及上位机12。
71.其中,下位机11被配置为:
72.执行本说明书上述一种基于混合传输协议的报文生成方法部分中描述的根据本发明各种示例性实施方式的步骤,生成报文,将报文发送给上位机12。
73.接收上位机12发送的报文,执行本说明书上述一种基于混合传输协议的报文解析方法部分中描述的根据本发明各种示例性实施方式的步骤,对报文进行解析。
74.上位机12被配置为:
75.接收下位机11发送的报文,执行本说明书上述一种基于混合传输协议的报文解析方法部分中描述的根据本发明各种示例性实施方式的步骤,对报文进行解析;
76.执行本说明书上述一种基于混合传输协议的报文生成方法部分中描述的根据本发明各种示例性实施方式的步骤,生成报文,将报文发送给下位机11。
77.本实施例数据交互系统基于混合传输协议,结合了json和二进制传输的优点,并且通用性强,适合各种数据交互场景。
78.下位机11以及上位机12可以分别是车辆诊断设备的下位机和上位机,下位机11可以与车辆20的obd口21连接,上位机可以为智能手机或者平板电脑等等,上位机通过无线(如usb线)或者有线(wifi、蓝牙等)方式与下位机连接。
79.在车辆诊断的应用场景中,上位机12生成诊断指令(报文),发送给下位机11,下位机11对诊断指令进行解析,并发送给车辆,车辆反馈信息给下位机11,下位机11根据车辆反馈信息生成报文,发送给上位机12,上位机12对该报文进行解析,进行车辆诊断。
80.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
81.但是,本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例的变化、变型都将落在本发明的权利要求书范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1