我正在Qt creator C++和linux os上工作,我試圖創建讀取和發送sms消息的程序。一切工作正常,但當我嘗試讀取cmti信號,表明收到新消息,它剎車和操作系統發送給我SIGBUS,總線錯誤。當從gsm調制解調器接收CMTI信號時,應用程序崩潰
我的代碼很簡單:
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和端口獲取信號端口 - > watiForReadyRead()它給了我的錯誤,並不會繼續端口 - > readAll()。另外,當這個錯誤發生時它改變調制解調器的ttyUSB端口。
我最好的猜測是調制解調器阻止端口,所以我的應用程序可以閱讀。在寡婦的c#中,我已經通過設置串口讀超時來解決這個問題,但是我不能在qt中這樣做。
任何人都可以幫忙嗎?
感謝您的指導,設置了AT + CNMI = 2,1,0,0,0。 – user2880783