串口收发验证

gong_7247 2012-03-31 08:22:51
我现在想写一个串口发送的程序,包括发送端和接收端。
现在我从数据库中查询表单,得到一个8位的SQL栏,比如:

11112222
12345678
32657812
...


现在我逐条发送信息到接收端,我希望我发送一条(格式@S111122220000*),接收端接收后转发给发送端,然后发送端再确认,如果前后信息相同,进行下一条数据发送,如果不成功,重新发送这条。接收端将所有接收到的信息保存XML格式,每条信息以下划线隔开。

现在我不知道逻辑上如何实现,我的目的是,确认查询数据库后,数据从发送端发出,每条数据都准确可靠被接收端收到,由于这是工业数据,必须完整,如果还有其他方法,请指教,谢谢!
...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fronz 2012-07-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
每条数据都准确可靠被接收端收到
[/Quote]
你是想做一个较好的通讯协议?
但这个方式是每个数据都发两遍,效率不低么?如果第一遍通讯有错怎么办,(第二遍可能永远无法与第一遍相同)

一般条件下是在通讯两端的尾字节加一位校验和来进一步保证代码的准确性。两端算出的校验和一致就不需重发
一条晚起的虫 2012-06-26
  • 打赏
  • 举报
回复
// 直接就套用Modbus协议吧
rolim 2012-04-01
  • 打赏
  • 举报
回复
串口有国标协议的
ima_zhan 2012-04-01
  • 打赏
  • 举报
回复
思路挺好
hdg3707 2012-04-01
  • 打赏
  • 举报
回复
同步帧+标志位(0:新数据;1:重发)+长度+数据+CRC+结束帧
应该帧:0XAA:接收正确,0XBB:接收错误
西山小月 2012-03-31
  • 打赏
  • 举报
回复
接收端接收数据后,好像很难确认是新的一条数据还是重发的数据,这样接收端会重复接收数据。

所以最好用结构体,里面有个标识位,标识出数据的属性,是否是重发的,第几次重发等等。

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧