首页 > 编程知识 正文

串口编程,can通讯协议报文解析

时间:2023-05-04 20:15:47 阅读:175917 作者:4143

关于串行编程-通信协议的分析,转载时请注明出处: http://blog.csdn.net/itas109

QQ技术交流群: 129518033

文章目录串行编程-通信协议分析序言1 .通信协议分析流程2 .伪代码

前言

规定了串行通信协议后,接下来是如何分析通信协议。

1 .解析通信协议流程----------V---|||||放入缓冲区------V--||长度//2 .帧分析/*EB90 00 0007 20211025000000 7F52帧头:0xEB90版本:0x0007数据长度:0x20211025000000校验和(CRC-16/modbus 缓冲区长度至少为7,帧报头(2字节版本) 1字节)数据长度) 2字节)校验和) 2字节)/2.1检索帧报头intheaderindex=buffer.find 帧头的第一个字符索引if(headerindex=0) if ) buffer[headerindex1]==0x90 ) /帧头的第二个字符) { //2.2确定数据长度intlen=buffer } else { //2.3校验码stringdataneedcheck=buffer.substring (header index,len 5); checksum=checksum function (dataneedcheck ); //获取从帧报头到校验和前的所有数据的校验码data checksum=buffer [ headerindexlen5]8buffer [ headerindexlen6]; //获取缓冲数据的检查吗? 成功检查if(checksum==datachecksum )//数据,提取数据并提取同层业务string data frame=buffer.substring (header index,len 7); notify (数据帧); 连续; (else ) /数据验证失败。 进入下一个循环continue; } }如果else {//帧头0xEB90的判断失败,则返回下一个0xEBbuffer=buffer.substring(2); //buffer指后面的数据continue; } }} License

License under CC BY-NC-ND 4.0:签名-非商用-禁止演绎

转载的时候请注明出处。 http://blog.csdn.net/itas109

QQ技术交流群: 129518033

参考:

空值

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。