• 4677阅读
  • 3回复

[提问]关于QIODevice 的readyread() [复制链接]

上一主题 下一主题
离线294987445
 
只看楼主 倒序阅读 楼主  发表于: 2011-09-06
我用这个判断串口是否有新数据过来。
如果有新数据过来就调用槽函数read()


connect(MyCom , SIGNAL(readyread() , this , SLOT(read()));


void read()
{
        qDebug() << MyCom.readAll();
}


为什么有的时候明明readyread了   但是从串口读到得数据的个数是0.
离线wxj120bw

只看该作者 1楼 发表于: 2011-09-06
回 楼主(294987445) 的帖子
猜可能是空的数据包 就是没有数据的数据包
离线294987445
只看该作者 2楼 发表于: 2011-09-07
回 1楼(wxj120bw) 的帖子
1、怎么可以让是空数据包的时候不读啊?

2、如果我上次读数据没有把里面的数据读完的话    下次再读的时候是从上次剩下的数据开始读吗?
离线wxj120bw

只看该作者 3楼 发表于: 2011-09-07
回 2楼(294987445) 的帖子
1 数据包是空的 只是猜测 你可以借助wireshark工具来分析
2 以前做QTcpSocket,如果第一次没收到,第二次就回收到。因为QTcpSocket类有缓存机制。还有QTcpSocket的都继承QIODevice类
快速回复
限100 字节
 
上一个 下一个