qextserialport正在推出

时间:2012-11-21 10:06:13

标签: qt qextserialport

我正在使用QExtSerialPort读出一个usb设备,但是我在读取通过串口发送的数据时遇到了问题。数据以100到1000Hz之间的速率发送,有时数据会粘在一起。例如,如果数据的大小为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();
}

有人有解决方案吗?

1 个答案:

答案 0 :(得分:2)

串行端口(如TCP链路)是字节流。您不能传输消息,字符串,结构或大于一个字节的任何内容。

您必须拥有一个可以解析字节流中的消息/任何内容的协议。没有其他办法。