123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #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);
- }
|