123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include "serialgps.h"
- SerialGPS::SerialGPS(QObject *parent) : QObject(parent)
- {
- setupSerialPort();
- }
- // 打开串口的函数
- void SerialGPS::openSerialPort()
- {
- const QString portName = "COM9";
- const qint32 baudRate = 9600;
- if (!serialPort.isOpen()) {
- serialPort.setPortName(portName);
- serialPort.setBaudRate(baudRate);
- if (serialPort.open(QIODevice::ReadWrite)) {
- } else {
- emit openError();
- }
- }
- }
- // 关闭串口的函数
- void SerialGPS::closeSerialPort()
- {
- if (serialPort.isOpen()) {
- serialPort.close();
- }
- }
- void SerialGPS::sendData()
- {
- if (serialPort.isOpen()) {
- // serialPort.write(data.toUtf8());
- }
- }
- void SerialGPS::readData()
- {
- QByteArray data = serialPort.readAll();
- emit dataReceived(data);
- PareGNRMC parser;
- RMCData m_data = parser.parseRMC(data);
- storedGNRMCData = m_data;
- emit gnrmcDataReceived(storedGNRMCData);
- emit storedGNRMCDataUpdated(storedGNRMCData); // 发出信号
- }
- RMCData SerialGPS::getStoredGNRMCData() const
- {
- return storedGNRMCData;
- }
- void SerialGPS::setupSerialPort()
- {
- openSerialPort();
- connect(&serialPort, &QSerialPort::readyRead, this, &SerialGPS::readData);
- }
|