/** * NmeaHandler * $Id$ * $HeadURL$ * $Author$ * Created by Gerlinde Rudolphus, SLTE, 2022-06-09 */ #pragma once #include #include #include #include #include #include #include #include #include #include "dds_handler.h" #include "nmea_handler.h" #include "logger.h" namespace NmeaManagement { class SocketHandler final : public QObject , protected NmeaManagement::Interface::Fts::TurnRadioMasterOffRequestHandler { Q_OBJECT public: explicit SocketHandler(const std::shared_ptr &ddsHandler, const std::shared_ptr &nmeaHandler, QObject *parent = 0); void init(QString nmeaHost, int nmeaPort); void onTurnRadioMasterOffRequest(const rti::core::SampleIdentity &cookie, const TurnRadioMasterOffRequest &request); signals: public slots: void connected(); void disconnected(); void bytesWritten(qint64 bytes); void readyRead(); void reconnectTimerSlot(); private: std::shared_ptr m_ddsHandler; std::shared_ptr m_nmeaHandler; void reconnect(); int m_nmeaPort; QString m_nmeaHost; QUdpSocket *socket; QTimer *m_reconnectTimer; LOGGER_T m_logger; }; } // namespace NmeaManagement