HEX报文协议打包生成工具

发布时间:2023年12月30日

本工具可以用于灵活定制各种格式的报文。以下是定制报文中每个字段的说明:

  • isbig:指示报文中的字节顺序是否为大端序(Big Endian)。如果为true,则表示使用大端序;如果为false,则表示使用小端序。
  • frame:报文的字段定义数组,每个字段定义包括字段名称、字段类型、字段长度以及可选的其他属性。
  • name:字段名称,用于标识字段的含义,可以自定义,不能重复。
  • type:字段类型,指定字段的数据类型。类型包括fix(固定值)、len(长度字段)、dec(十进制数值)、str(字符串)、hex(十六进制数值)和crc(CRC校验值)等。
  • len:字段长度,指定字段的字节长度。hexstr类型不需要长度,会自动计算;crc不需要,会根据mode类型自动计算。
  • refer:长度参考字段,用于指定字段长度的参考字段的名字。例如,len字段的长度可以参考strhex字段值的长度加偏移量。
  • value:字段的值。dechexstr类型不需要值,界面会自动生成输入框,dec只能输入10进制数如1234,hex只能输入16进制数如11aabbcc,len类型的value代表初始长度,最终值是初始值加引用长度值;crc类型的value代表校验跳过开头的长度的字节,默认0从头开始校验。
  • mode:CRC校验模式,用于指定CRC校验的算法。常见的模式包括crc8crc16crc32等。

以上是对每个字段的简要说明。根据这些字段定义,你可以使用该工具生成符合特定格式的报文,并根据需要设置字段的值。

举例,编辑frame.txt文件,定制报文格式

{
“isbig”:true,
“frame”:[
{“name”:”head”,”type”:”fix”,”len”:2,”value”:0xffaa},
{“name”:”len”,”type”:”len”,”len”:2,”refer”:”data”,”value”:6},
{“name”:”dec1″,”len”:2,”type”:”dec”},
{“name”:”dec2″,”len”:2,”type”:”dec”},
{“name”:”str1″,”type”:”str”},
{“name”:”data”,”type”:”hex”},
{“name”:”crc”,”type”:”crc”,”mode”:”crc16″,”value”:”0″}],
}

打开软件如上图,dec1输入1,dec2输入11,str1输入22,data输入3344,结果输出:FF AA 00 08 00 01 00 0B 32 32 33 44 D7 45

根据配置文件,len的值为data长度加6等于8,dec2的位置输入十进制数11结果为0x000b,字符串“22”转成hex后为3232,data内容保持不变,crc算法为CRC16/CCITT-FALSE,计算范围为从开头到数据结尾,如果帧定义中crc段value>0,则代表偏移value个字节后开始计算。

软件下载地址:https://www.armfun.cn/wp-content/uploads/2023/12/HEX报文协议生成工具.rar(解压码:www.armfun.cn)

文章来源:https://blog.csdn.net/qqk808/article/details/135307605
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。