拆解报文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
报文的拆解
1、发送方式
pos 机发送一个16进制的报文8个字节一组进行发送
2、报文的机构
一个报文有三部分组成:TPDU 、报文头、应用数据
3、BCD码(压缩码)
Char buf []="123456";
采用BCD 码存储: char buf [0]=0x12;
char buf[1]=0x34;
char buf [2]=0x56;
4、对TPDU和报文头拆解
TPUD :占10个字节,,BCD可以压缩一般 5 个字节长度
报文头:12个字节、压缩之后是6个字节。
所以报文的前11个字节为TPUD 和报文头60 00 01 01 00 00 00 00 00 00 00 两个数字为一组,为一个字节。
5、对数据域进行拆解
[1] 对消息类型拆解
四个字节压缩后是两个字节既两组:02 00
[2] 对位元表拆解
B
BINARY 位图格式
64 位一个字节8位所以是8个字节没有压缩所以是8组数据
将这8组数据16进制转换成2进制
0 :0000 8 :1000
1 :0001 9 :1001 (8+1)
2 :0010 10(a):1010 (8+2)
3 :0011 11(b):1011 (8+3)
4 :0100 12(c):1100 (8+4)
5 :0101 13(d):1101 (8+5)
6 :0110 14(e):1110 (8+6)
7 :0111 15(f):1111 (8+7)
转换成2进制后,有1 的那位代表该域有值,然后去报文规范中找到该域,[3] 对各个域的拆解
M 为强制域若没有则证明该消息有错。
BCD 码为压缩码n6数字类型6个字节,压缩后为三个字节,取三组00 00 00 再找下一个域,对余下报文分析
注意类型为ASCII 不需要压缩an 12 表示该字段由字母和数字组成,12 个字节取12组
LLVAR :V AR 可变长度LL 两位
ans .. 25 :数字、字母、下划线
.. 这个字段的长度例如长度为7 (25个字节之内都可以)则为07 ,在报文中会显示出来07 00 00 00 00 00 00 00 00 一共7组
注意为BCD 码压缩
若长度为37 则37 12 34 56 78 90 (0~10)
12 34 56 78 90 (11~20)
12 34 56 78 90 (21~30)
12 34 56 70 ( 31 32 33 34 35 36 37 ) 奇数时最后一位补0