как readyRead () работает в Qt?

Это мой первый вопрос на этом сайте!

У меня возникли некоторые проблемы при чтении данных с COM-порта, я отправляю полное сообщение с другого COM-порта, и когда я получаю его с помощью Qt, оно всегда разрезается на несколько вложенных сообщений.

void SerialPortReader::init()
{
    connect(m_serialPort, SIGNAL(readyRead()), this, SLOT(readData()));
}   

void SerialPortReader::readData()
{
//    m_serialPort->waitForReadyRead(200);
    QByteArray byteArray = m_serialPort->readAll();
    qDebug() << byteArray;

    if(byteArray.startsWith(SOF) && byteArray.endsWith(EOF_LS)
        && byteArray.size() >= MIN_SIZE_DATA) {
    decodeData(byteArray.constData());
    } else {
        qDebug() << "LIB SWCom : Unvalid trame !";
    }
}

отправленные сообщения имеют длину 25 или 27 байт, и если я использую Putty или Hyperterminal для их чтения, у меня нет проблем. Также, если я использую 2 эмулируемых последовательных порта COM для связи, у меня нет этой проблемы ... Это происходит только с системой чтения Qt И с 2 физическими COM портами ...

Я думаю, что я не понимаю, когда сигнал ReadyRead излучается точно ...

Я очень запутался, заранее благодарю за помощь!

Ответы на вопрос(3)

Ваш ответ на вопрос