Fork自 aptblaze / QT多线程接收串口数据
体验新版 GitCode,发现更多精彩内容 >>
#include "serialworker.h" SerialWorker::SerialWorker(QSerialPort *ser, QObject *parent) : QObject(parent),serial(ser) { } QString SerialWorker::ByteArrayToHexString(QByteArray data) { QString ret(data.toHex().toUpper()); int len = ret.length()/2; qDebug()<<"收到字节长度为:"<<len; for(int i=1;i<len;i++) { ret.insert(2*i+i-1," "); } return ret; } void SerialWorker::doDataReciveWork() { QByteArray buffer = serial->readAll(); // 2.进行数据处理 QString result = ByteArrayToHexString(buffer); qDebug() << "子线程收到数据:" << result << "线程ID:" << QThread::currentThreadId(); // 3.将结果发送到主线程 emit sendResultToGui(result); }