[发明专利]一种定长单字节格式报文协议下串口接收预处理方法有效
| 申请号: | 201710453289.6 | 申请日: | 2017-06-15 |
| 公开(公告)号: | CN107395565B | 公开(公告)日: | 2020-03-17 |
| 发明(设计)人: | 侯师;李正新;王琳;周军;马力超 | 申请(专利权)人: | 北京机械设备研究所 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06 |
| 代理公司: | 北京天达知识产权代理事务所(普通合伙) 11386 | 代理人: | 庞许倩;马东伟 |
| 地址: | 100854 北京市海淀区永*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 定长 字节 格式 报文 协议 串口 接收 预处理 方法 | ||
1.一种定长单字节格式报文协议下串口接收预处理方法,其特征在于,包括步骤如下:
步骤一、接收串口数据;
步骤二、检查在本次接收数据之前,是否存在不足一包协议字节数的剩余数据,若存在,则将所述剩余数据与本次接收到的数据进行合并组成一个数据包;若无,则本次接收到数据作为一个单独的数据包;
通过剩余字节个数变量判断,在接收本次数据之前,是否有上次数据处理剩余的数据;所述剩余字节个数变量为定义的变量,初始化为0,若在一次接收处理后仍有剩余字节数,该变量值被刷新为该次剩余字节数的个数;如果所述剩余字节个数变量为0,说明上次数据处理无剩余数据,正常进行本次数据接收;如果所述剩余字节个数变量不为0但小于定长报文约定的个数,说明上次接收的数据个数不为定长报文约定的个数或者其整数倍,在本次接收前,存在上次数据处理剩余的数据,则按照发送方的字节数据顺序组包,上次处理剩余的数据放在缓存数组中,与本次接收的数据合并,形成组包;若不存在上次数据处理剩余的数据,正常进行本次数据接收,将接收到数据作为一个单独的数据包;
步骤三、按照协议约束对所述数据包进行判别处理,当符合协议约束时,则进入下一步处理;当不符合协议约束时,则返回步骤一;
所述协议约束为定长报文约定的数据长度,按照所述协议约束对所述数据包进行判断,若所述数据包的数据长度小于定长报文约定的长度,则认为是不足一包协议字节数的数据,更新剩余字节个数变量,返回步骤一,等待下次数据接收;若所述数据包的数据长度不小于定长报文约定的长度,则进入下一步处理;
步骤四、判别字节头是否符合要求,若不满足,则通过数组移位将首字节移除,返回步骤三;若满足,则进行下一步处理;
步骤五、判别字节尾是否符合要求,若不满足,则通过数组移位将首字节移除,返回步骤三;若满足,则进行下一步处理;
步骤六、判别校验和是否符合要求,若不满足,则通过数组移位将首字节移除,返回步骤三;若满足,则将所述报文协议规定的字节长度的数据发送用于后续处理,发送完成后,移除上述报文协议规定的字节长度的数据,返回步骤三。
2.根据权利要求1所述的串口接收预处理方法,其特征在于,步骤五中根据报文协议规定的字节长度在数据包中确定字节尾。
3.根据权利要求2所述的串口接收预处理方法,其特征在于,步骤一中串口接收数据的工作方式为阻塞形式。
4.根据权利要求3所述的串口接收预处理方法,其特征在于,所述数组移位是以存放数据的缓存数组的下标为索引进行数组移位。
5.根据权利要求1所述的串口接收预处理方法,其特征在于,校验和为报文校验字,为报文内容全部字节内容的总和。
6.根据权利要求1-5任一所述的串口接收预处理方法,其特征在于,步骤四至六均通过缓存数组移位的方式将首字节移除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京机械设备研究所,未经北京机械设备研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710453289.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:互联网预选机动车号牌的防抢号方法和系统
- 下一篇:认证方法及装置





