• 9662阅读
  • 1回复

[讨论]Qt串口第三方类中bytesAvailable函数的一些小细节 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2011-02-15
这个函数来源于网上流传很广的yafei Qt串口教程中所使用的Posix_QextSerialPort类。
从字面上,很容易知道这个函数的作用,返回串口中有多少可供读取的字节数。

其返回值有三种状态。
(1)返回值 > 0  : 可供读取的字节数。
(2)返回值 = 0  : 串口尚未打开
(3)返回值 = -1 : 发生错误
需要值得注意的是:返回值 = 0时,并不是说串口中无数据可读,而是串口尚未打开!

那么如何判断串口无数据可读的情况呢?解决办法如下:
当返回值 = -1时,使用lastError函数获取错误值,如果错误值为E_PORT_TIMEOUT(此值为4),则当前串口中无数据可读。
另外注意的是bytesAvailable返回的是qint64,不是int。
[ 此帖被我要下载代码在2011-02-15 11:30重新编辑 ]
离线morriszy

只看该作者 1楼 发表于: 2011-02-15
谢谢楼主分享经验~

最近在研究串口通讯时,碰到CRC问题,CRC要求:(1字节+1字节+1字节)mod 255 ,谁能指导一下,感谢~
[ 此帖被morriszy在2011-02-15 14:20重新编辑 ]
VS2010+Qt4.7.0
快速回复
限100 字节
 
上一个 下一个