无法使用QSerialport readAll()方法读取字节数组

时间:2019-06-10 11:56:00

标签: c++ qt

我正在将响应发送到串行com端口,发送数据工作正常,但是对于发送的数据,存在字节数组格式的响应。我需要7个字节的数据,但只获取第一个字节。

QSerialPort *序列=新的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

0 个答案:

没有答案