serialworker.cpp 736 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#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);
}