123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include "serialgps.h"
- SerialGPS::SerialGPS()
- {
- }
- // 打开串口的函数
- 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); // 发出信号
- // qDebug() << "storedGNRMCData:" << parser.rmcDataToString(storedGNRMCData);
- }
- RMCData SerialGPS::getStoredGNRMCData() const
- {
- return storedGNRMCData;
- }
- void SerialGPS::setupSerialPort()
- {
- openSerialPort();
- connect(&serialPort, &QSerialPort::readyRead, this, &SerialTool::readData);
- }
|