serial.readall
5.3.1 では空のバッファを返していますが、5.3.0 では同じコードが機能しています。誰かが同じ問題に直面しましたか?これに対する回避策はありますか?
Qt を MSVC 2010 Windows 7 で使用しています。Qt ダウンロード ページから「Windows 32 ビット用 Qt 5.3.1 (VS 2010、OpenGL、537 MB)」をダウンロードしました。
私のコード:
portname=ui->lineEdit->text();
serial.setPortName(portname);
if(serial.open(QIODevice::ReadWrite))
{
ui->pushButton_5->setText("Device Connected");
ui->pushButton_5->setStyleSheet("background : yellow");
if(!serial.setBaudRate((QSerialPort::Baud115200),QSerialPort::AllDirections))
qDebug()<<serial.errorString();
if(!serial.setDataBits(QSerialPort::Data8))
qDebug()<<serial.errorString();
if(!serial.setParity(QSerialPort::NoParity))
qDebug()<<serial.errorString();
if(!serial.setStopBits(QSerialPort::OneStop))
qDebug()<<serial.errorString();
if(!serial.setFlowControl(QSerialPort::HardwareControl))
qDebug()<<serial.errorString();
}
else
{
qDebug()<<"Serial port not opened. Error: "<<serial.errorString();
QTest::qSleep(2000);
exit(0);
}
serial.write(outbuff, l);
rsp=(serial.readAll()).toHex();
serial.readAll は空のバッファを返します。別のツールから同じ入力を送信すると、同じ HW から応答が返ってきます。