MSComm控件接收数据问题

tianxiawushuang0000 2010-08-04 07:51:04
MSComm控件每次接收不定长的数据,初始化设置m_Com.SetRThreshold(1),当发一次数据,怎样使数据接收完成后pc向发数据的设备发一个信号,表示传输已完成,同时pc机界面上也显示接收完成。希望各位大侠指导一下。
...全文
55 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢二楼,说的很详细,受益匪浅。。
  • 打赏
  • 举报
回复
谢谢二楼,说的很详细,受益匪浅。。
悟迟 2010-08-04
  • 打赏
  • 举报
回复
MSComm控件每次接收不定长的数据
要么接受到的数据有可以解码的协议,要么如同一楼所说,自己定义
比如GPS数据如下(NMEA协议):
$GPGGA,012547.20,2225.73782714,N,11352.99468415,E,2,08,1.0,19.457,M,-2.644,M,5.4,0852*64
$GPVTG,165.5,T,,,001.578,N,002.923,K,D*43
有特定的头($GPGGA、$GPVTG...),和特定的尾(0x0d 0x0a),还有校验(*64、*43
要么你自己定义协议,

有了协议,如果协议如同GPS数据一样,你就开一个缓冲区,保存数据,每次收到数据就尝试解码,当然不是每次都可以解析,比如说找到头但是没找到尾巴,就继续等待,
当缓冲区内、找到头找到尾、并且校验成功,就解析数据,给设备发成功命令,并将解析用到的清理出缓冲区
ylx1982 2010-08-04
  • 打赏
  • 举报
回复
这个自己定义一个协议就好了
接收到什么数据认为结束

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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