• 7434阅读
  • 5回复

把串口当作QFile文件用QTextStream进行读取问题 [复制链接]

上一主题 下一主题
离线帅坤
 
只看楼主 正序阅读 楼主  发表于: 2010-06-26
环境:Linux下QT2。
部分代码:
……………………
QFile COM1( "/dev/ttyS0" ); //把串口1当作文件

QTextStream readFile( &COM1 ); //通过QTextStream进行读取

QString line = readFlie.readLine(); //一次读取一行数据
……………………
……数据处理代码……
……………………
……其他事情处理代码……
……………………

问题:
如果串口有数据接收到,运行正常,可以执行“数据处理代码”,“其他事情处理代码”;
但是,如果串口一直没有数据接收到,那么程序会一直停留在 “ QString line = readFlie.readLine(); //一次读取一行数据 ” ,这样导致其他事情也处理不了。
我试过加一行判断:
if( !((readFlie.readLine()).isEmpty()) )
{
    QString line = readFlie.readLine(); //一次读取一行数据
    ……………………
    ……数据处理代码……
    …………
}
……………………
……其他事情处理代码……
……………………

这样修改之后,依然不见效果。

这个问题如何处理?如何才能够对是否从串口读到数据进行判断?
[ 此帖被帅坤在2010-06-26 11:00重新编辑 ]
离线帅坤
只看该作者 5楼 发表于: 2010-06-30
回 4楼(nmiirq) 的帖子
谢谢nmiirq的关照,可是没看懂你的答复。
不过,我的问题已经解决了,还是谢谢你了。
离线nmiirq

只看该作者 4楼 发表于: 2010-06-27
串口,MS以二进制数据打开来读写吧?
离线帅坤
只看该作者 3楼 发表于: 2010-06-26
大侠们,救命!~
离线帅坤
只看该作者 2楼 发表于: 2010-06-26
要是能够告诉我如何判断串口有无数据也可以,大侠们帮帮忙~
我的程序一直停在readLine这一行,没办法继续运行。
离线帅坤
只看该作者 1楼 发表于: 2010-06-26
readLine函数是不是要读到回车换行符或者其它什么标志符才会有返回值啊?
这个函数要是读不到就会死循环下去吗?连定时器的timeout()事件都不能中断它!
谁能帮忙解决一下~~~
快速回复
限100 字节
 
上一个 下一个