【发布时间】:2014-03-30 23:10:51
【问题描述】:
我正在使用 Qt creator c++ 和 linux 操作系统,我正在尝试创建读取和发送短信的程序。一切正常,但是当我尝试读取表示收到新消息的 cmti 信号时,它会刹车并且操作系统向我发送 SIGBUS、总线错误。
我的代码很简单:
port->setPortName(s);
bool status = port->open(QSerialPort::ReadWrite);
if(status)
{
port->setBaudRate(115200, QSerialPort::AllDirections);
port->setDataBits(QSerialPort::Data8);
port->setParity(QSerialPort::NoParity);
QByteArray in;
if(port->waitForReadyRead(300))
{
in = port->readAll();
while (port->waitForReadyRead(64))
{
in += in->readAll();
}
}
//...
}
当调制解调器发送 cmti 并且端口在 port->watiForReadyRead() 中获得该信号时,它给了我错误并且永远不会到达 port->readAll()。此外,当发生此错误时,它会更改调制解调器的 ttyUSB 端口。
我最好的猜测是调制解调器阻止了端口,因此我的应用程序可以读取。在寡妇的c#中,我通过在串口上设置读取超时来解决这个问题,但我不能在qt中这样做。
有人可以帮忙吗???
【问题讨论】:
标签: qt serial-port at-command