Harness::Harness(QObject *parent) : QObject(parent) { settingsManager.loadSavedSettings(); gui = new MainWindow; serialManager = new SerialManager; packetReceiver = new PacketReceiver; windDataAnalyzer = new WindDataAnalyzer; dataLogger = new DataLogger; systemTimer = new QTimer; batteryChargeCalculator = new BatteryChargeCalculator; loggingData = false; connect(serialManager, SIGNAL(onNewDataReady(QByteArray)), packetReceiver, SLOT(onNewDataReceived(QByteArray))); connect(serialManager, SIGNAL(serialPortError(QString)), this, SLOT(onSerialPortError(QString))); connect(packetReceiver, SIGNAL(validPacketReceived()), this, SLOT(onValidPacketReceived())); connect(packetReceiver, SIGNAL(invalidPacketReceived()), this, SLOT(onInvalidPacketReceived())); connect(gui, SIGNAL(connectSerialButtonClicked(QString)), this, SLOT(onConnectSerialButtonClicked(QString))); connect(gui, SIGNAL(saveDataLogButtonClicked()), this, SLOT(onSaveDataLogButtonClicked())); connect(gui, SIGNAL(startLoggingButtonClicked()), this, SLOT(onStartLoggingButtonClicked())); connect(gui, SIGNAL(clearLogButtonClicked()), this, SLOT(onClearLogButtonClicked())); connect(gui, SIGNAL(settingsChanged()), this, SLOT(onSettingsChanged())); connect(systemTimer, SIGNAL(timeout()), this, SLOT(onSystemTimerTimeout())); compassOffset = settingsManager.getSettings().compassOffset; loadGUIDefaultValues(); gui->show(); systemTimer->start(SYSTEM_TIMER_INTERVAL_MS); }
QT_USE_NAMESPACE SerialPortManager::SerialPortManager(QObject *parent) : QObject(parent) { m_serialPort = new QSerialPort(this); m_settings.portName = ""; m_settings.baud = DEFAULT_BAUD; m_settings.dataBits = DEFAULT_DATABITS; m_settings.flowControl = DEFAULT_FLOWCONTROL; m_settings.parity = DEFAULT_PARITY; m_settings.stopBits = DEFAULT_STOPBITS; // forward emit serial port errors // qRegisterMetaType<QSerialPort::SerialPortError>("QSerialPort::SerialPortError"); connect(m_serialPort, SIGNAL(error(QSerialPort::SerialPortError)), this, SIGNAL(serialPortError(QSerialPort::SerialPortError))); // deal with readyRead() connect(m_serialPort, &QSerialPort::readyRead, this, &SerialPortManager::handleReadyRead); m_serialPort->clear(); emit portSettingsChanged(m_settings); }
RtcmClient::RtcmClient(QObject *parent) : QObject(parent) { mTcpSocket = new QTcpSocket(this); mSerialPort = new QSerialPort(this); qRegisterMetaType<rtcm_obs_header_t>("rtcm_obs_header_t"); qRegisterMetaType<rtcm_obs_t>("rtcm_obs_gps_t"); currentMsgHandler = this; rtcm3_init_state(&rtcmState); rtcm3_set_rx_callback(rtcm_rx, &rtcmState); rtcm3_set_rx_callback_1005_1006(rtcm_rx_1006, &rtcmState); rtcm3_set_rx_callback_obs(rtcm_rx_obs, &rtcmState); connect(mTcpSocket, SIGNAL(readyRead()), this, SLOT(tcpInputDataAvailable())); connect(mTcpSocket, SIGNAL(connected()), this, SLOT(tcpInputConnected())); connect(mTcpSocket, SIGNAL(disconnected()), this, SLOT(tcpInputDisconnected())); connect(mTcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(tcpInputError(QAbstractSocket::SocketError))); connect(mSerialPort, SIGNAL(readyRead()), this, SLOT(serialDataAvailable())); connect(mSerialPort, SIGNAL(error(QSerialPort::SerialPortError)), this, SLOT(serialPortError(QSerialPort::SerialPortError))); }