Newer
Older
ZXSSCJ / CounterAcq / common / utils / QSerialPortUtil.cpp
tan yue on 21 Dec 2021 1 KB 20211221 counterXHTS test
#include "QSerialPortUtil.h"

#include <iostream>
#include <QTimer>
#include <QDateTime>

QSerialPortUtil::QSerialPortUtil(QObject *parent) : QObject(parent)
{
    // 其他默认配置
    serial.setDataBits(QSerialPort::Data8);
    serial.setParity(QSerialPort::NoParity);
    serial.setStopBits(QSerialPort::OneStop);
    serial.setFlowControl(QSerialPort::NoFlowControl);
}

void QSerialPortUtil::openSerialPort(QString portName, int baudRate)
{
    serial.setPortName(portName); // 串口名
    serial.setBaudRate(baudRate); // 波特率

    open = serial.open(QIODevice::ReadWrite);

    if (open == true)
    {
        // 绑定信号与槽
        connect(&serial, &QSerialPort::readyRead,
                this, &QSerialPortUtil::readData);

        // mock data received per second
//        QTimer * timer = new QTimer(this);
//        connect(timer, &QTimer::timeout,
//                this, &QSerialPortUtil::mockReceivData);
//        timer->start(1000);
    }
}

void QSerialPortUtil::sendData(QByteArray data)
{
    if (this->open == true)
    {
        std::cout << data.toStdString() << std::endl;
        serial.write(data);
    }
}

void QSerialPortUtil::readData()
{
    QByteArray buffer = serial.readAll();

    emit dataRecieved(buffer);
}

bool QSerialPortUtil::isOpen()
{
    return this->open;
}

void QSerialPortUtil::mockReceivData()
{
    QDateTime now = QDateTime::currentDateTime();

    QByteArray buffer;

    buffer.append("$XHTSXHPT0001160101002451276|1000000000000001101|+0.000000000000|+0.033835598632|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000|+0.000000000000Q").append("\r\n")
            .append("$XHTDB114|1|+00000|-00296|-00362|+00115|-01472|-01109|-00908|-01427|+00125|+00202|-00228|-00861|-00958|-00957|-00657|-00959").append("\r\n");

    emit dataRecieved(buffer);
}