关于串口通讯的问题

CoolDesigner 2004-06-19 12:25:04
要不停的接受串口的数据,但是数据中有两种数据格式:如:

@@Bpabcd,共8个字节
还有一个是@@Bdabcdef 共10个字节

串口不停的吐出这两种数据,我想请教的是,对于这样的情况,该怎么解析出@@Bdabcdef。的数据,而且,即效率高,也不漏掉数据。是采用轮询方式,还是事件方式,如果是事件方式,那么设置接受几个字节开始触发事件?

非常谢谢。解决后,高分相送。
...全文
152 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiirii 2004-07-02
  • 打赏
  • 举报
回复
如你说的
@@是开始标志,所以,你可用 mscomm之类,一个字节就触发一次事件,
or 连续接收,但你处理的时候,只要是连续俩个 @@ 的,就当开始,
前面的就当结束
CsdnRob 2004-07-02
  • 打赏
  • 举报
回复
请高手指教,谢谢先
jpyc 2004-07-02
  • 打赏
  • 举报
回复
http://soft.56kc.com/Filedown.aspx?FID=167
http://soft.56kc.com/Filedown.aspx?FID=386

http://www.56kc.com/technology.aspx
串口通讯应用程序的解决方案
飞天揽月 2004-07-02
  • 打赏
  • 举报
回复
ding
julong88 2004-07-02
  • 打赏
  • 举报
回复
用@@是开始标志,还有字符串的长度判断
CoolDesigner 2004-06-19
  • 打赏
  • 举报
回复
如何解析其中一种格式的数据,且不丢失,该怎么写,效率才高呢?
CoolDesigner 2004-06-19
  • 打赏
  • 举报
回复
发送速度是一秒一次,很快的
aiirii 2004-06-19
  • 打赏
  • 举报
回复
看對方數據發送的速度了!!
有時用事件反而處理慢!

我以前做的, 一個線程負責接收, 接到了, PostMessage到主線程, 再分析處理!!
yixia 2004-06-19
  • 打赏
  • 举报
回复
这样行么?
接受的字串连接起来找两次@@ @@之间的length,如果等于8就说明 是@@Bdabcdef

事件方式,每接受到数据几次,找出后删掉,然后再把接收到的字串和前边删除剩余的连接

再找。

关于事件处罚,有个Tcom控件封装的很好,你可以看看
ghtghtmalone 2004-06-19
  • 打赏
  • 举报
回复
我想可以约定一个特定的结束符来判断你的接收数据。
getit911 2004-06-19
  • 打赏
  • 举报
回复
Spcomm是线程的,不断读数据,收到数据后会调用接收消息,不会丢数据。
CoolDesigner 2004-06-19
  • 打赏
  • 举报
回复
请高手指教,谢谢先

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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