本工具可以用于灵活定制各种格式的报文。以下是定制报文中每个字段的说明:
isbig
:指示报文中的字节顺序是否为大端序(Big Endian)。如果为true
,则表示使用大端序;如果为false
,则表示使用小端序。frame
:报文的字段定义数组,每个字段定义包括字段名称、字段类型、字段长度以及可选的其他属性。name
:字段名称,用于标识字段的含义,可以自定义,不能重复。type
:字段类型,指定字段的数据类型。类型包括fix
(固定值)、len
(长度字段)、dec
(十进制数值)、str
(字符串)、hex
(十六进制数值)和crc
(CRC校验值)等。len
:字段长度,指定字段的字节长度。hex
和str
类型不需要长度,会自动计算;crc
不需要,会根据mode类型自动计算。refer
:长度参考字段,用于指定字段长度的参考字段的名字。例如,len
字段的长度可以参考str
或hex
字段值的长度加偏移量。value
:字段的值。dec
、hex
和str
类型不需要值,界面会自动生成输入框,dec只能输入10进制数如1234,hex只能输入16进制数如11aabbcc,len类型的value代表初始长度,最终值是初始值加引用长度值;crc类型的value代表校验跳过开头的长度的字节,默认0从头开始校验。mode
:CRC校验模式,用于指定CRC校验的算法。常见的模式包括crc8
、crc16
和crc32
等。以上是对每个字段的简要说明。根据这些字段定义,你可以使用该工具生成符合特定格式的报文,并根据需要设置字段的值。
举例,编辑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)