HEX数据包
数据包的作用是把一个个单独的数据给打包起来,方便进行多字节的数据通信。把属于同一批的数据进行打包和分割,方便接收方进行识别(串口数据包通常使用额外添加包头包尾)
如果数据和包头包尾重复,可能会引起误判
解决方法:
1.限制载荷数据的范围(发送时对数据进行限幅)。
2.如果无法避免载荷数据和包头包尾重复,尽量使用固定长度的数据包。
3.增加包头包尾的数量并且让它尽量呈现出载荷数据出现不了的状态
HEX数据包数据都是以原始的字节数据本身呈现的
文本数据包
文本数据包里面每个字节都经过了一层编码和译码,最终表现出来就是文本格式(文本数据包基本不用担心载荷和包头包尾重复的问题)
数据包的收发流程
数据包的发送
HEX数据包定义一个数组,填充数据,用sendarray函数进行发送
文本数据包写一个字符串,然后调用sendstring函数进行发送
接收数据包
固定包长HEX数据包的接受方法
每拿到一个数据都是一个独立的过程,需要设计一个能记住不同状态的机制,在不同状态执行不同的操作,同时还要进行状态的合理转移(状态机)。
状态一:等待包头(用变量来标志)
状态二:接收数据
状态三:等待包尾
可变包长文本数据包的接受方法
可变包长的接受数据要兼有等待包尾的功能(判断是否出现了结束标志位)