QExtSerialPort を使用して USB デバイスを読み取っていますが、シリアル ポート経由で送信されるデータの読み取りに問題があります。データは 100 ~ 1000 Hz のレートで送信され、データがまとまらない場合があります。たとえば、データのサイズが 18 バイトの場合、ほとんどの場合は 18 バイトとして読み取られますが、36 バイトまたは 54 バイトなどを読み取る場合もあります。これは特に、コンピューターに他のことをさせたときに発生します。私が使用するコードは次のとおりです。
QextSerailPort port = new QextSerialPort("COM11")
QByteArray data;
connect(port, SIGNAL(readyRead()),this, SLOT(DataAvailable()));
void MainWindow::DataAvailable()
{
while(!(port->bytesAvailable()));
data = port->readAll();
qDebug() << data.toHex();
}
誰にも解決策がありますか?