C#serialPort如何区分数据?

yjg864 2015-04-29 09:29:49
我在使用serialPort类来接发数据现在功能已经基本实现了,可是我在接收数据的时候有些疑问因为下位机的数据是不定时的发送过来的那么我怎么判断一条数据结束继而处理下一条呢?我已经深深的感觉自己脑子不够用了So上CSDN求各路大神能给一个脑洞打开的方案叩谢
...全文
355 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-04-29
  • 打赏
  • 举报
回复
PLC 设备有好多中,各厂商的通讯协议也略有不同。不知道你们的是哪家的 你只要按照通讯协议开发软件,就不会有问题的 PLC串行通讯协议
yjg864 2015-04-29
  • 打赏
  • 举报
回复
引用 8 楼 dxd0128 的回复:
下位机每次发过来数据的时候,都加上起止标识符应该就可以了。
蛋疼的是PLC的协议不能修改所以起止标识符这个方法应该是行不通的
独立级IT民工 2015-04-29
  • 打赏
  • 举报
回复
下位机每次发过来数据的时候,都加上起止标识符应该就可以了。
独立级IT民工 2015-04-29
  • 打赏
  • 举报
回复
如果长度不固定,那只能通过字节数组起止符来处理判断。一次读多少个字节,分别判断起止符,读到结束符的时候算一条完整数据。
yjg864 2015-04-29
  • 打赏
  • 举报
回复
引用 4 楼 phdmm 的回复:
如果知道下位机数据长度,可以加以个_serialPort.ReceivedBytesThreshold = 长度;
下位机发过来的长度是不固定的
诗人的乌班图 2015-04-29
  • 打赏
  • 举报
回复
引用 3 楼 yjg864 的回复:
[quote=引用 1 楼 u014694753 的回复:] 最近也在使用serialPort开发串口通信楼主有没有什么好的教程可以分享一下?
你可以在CSDN搜索博文那里会有很多优秀的基础介绍哦写的都很详细[/quote] 好哒谢谢
phdmm 2015-04-29
  • 打赏
  • 举报
回复
如果知道下位机数据长度,可以加以个_serialPort.ReceivedBytesThreshold = 长度;
yjg864 2015-04-29
  • 打赏
  • 举报
回复
引用 1 楼 u014694753 的回复:
最近也在使用serialPort开发串口通信楼主有没有什么好的教程可以分享一下?
你可以在CSDN搜索博文那里会有很多优秀的基础介绍哦写的都很详细
公西雒 2015-04-29
  • 打赏
  • 举报
回复
一般发过来的数据都是有起始符或者停止符的,例如673403072877287623803075346524746,起始符是0307,一般是两位,除了起始位出现0307,其他数据位不会出现0307,这个需要咨询硬件接口厂商了解具体数据格式。
诗人的乌班图 2015-04-29
  • 打赏
  • 举报
回复
最近也在使用serialPort开发串口通信楼主有没有什么好的教程可以分享一下?

111,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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