Невозможно прочитать байтовый массив, используя метод readAll () QSerialport - PullRequest
0 голосов
/ 10 июня 2019

Я отправляю Response на последовательный COM-порт, отправка данных работает нормально, но для отправленных данных существует ответ в формате байтового массива.Мне нужно 7 байт данных, но я получаю только 1-й байт.

QSerialPort * serial = new QSerialPort ();

serial->setPortName(serialPortInfo.portName());

if(serial->open(QIODevice::ReadWrite)){

    if(!serial->setBaudRate(QSerialPort::Baud9600))
             ....
             ....
           serial->write(QByteArray::fromHex(command.toLocal8Bit()));
           //the serial must remain opened

           if(serial->waitForReadyRead(5000)){
               //Data was returned


               QByteArray datas = serial->readAll();

  \
                   if (datas.size() == 0) {
                       qDebug() << "Arrived data: 0";
                   } else {
                       for (int i = 0; i < datas.size(); i++){
                           if (datas.at(i)) {
                               qDebug() << datas[i];
                           }
                       }
                   }

           }else{
               //No data
               qDebug()<<"Time out";
           }

           //I have finish all operation
           serial->close();
       }else{
           qDebug()<<"Serial not opened. Error: "<<serial->errorString();
       }

Ожидаемый: XYZABC Фактический: X

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...