/////////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2020 Jon Beniston, M7RCE // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation as version 3 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License V3 for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// #ifndef INCLUDE_RIGCTRL_H #define INCLUDE_RIGCTRL_H #include #include #include "rigctrlsettings.h" class RigCtrl : public QObject { Q_OBJECT public: RigCtrl(); ~RigCtrl(); void getSettings(RigCtrlSettings *settings); void setSettings(RigCtrlSettings *settings); void setAPIBaseURI(const QString& apiBaseURI) { m_APIBaseURI = apiBaseURI; } QByteArray serialize() const; bool deserialize(const QByteArray& data); private slots: void acceptConnection(); void getCommand(); void processAPIResponse(QNetworkReply *reply); private: QTcpServer *m_tcpServer; QTcpSocket *m_clientConnection; QNetworkAccessManager *m_netman; enum RigCtrlState { idle, set_freq, set_freq_no_offset, set_freq_center, set_freq_center_no_offset, set_freq_set_offset, set_freq_offset, get_freq_center, get_freq_offset, set_mode_mod, set_mode_settings, set_mode_reply, get_power, set_power_on, set_power_off }; RigCtrlState m_state; double m_targetFrequency; double m_targetOffset; const char *m_targetModem; int m_targetBW; QString m_APIBaseURI; //!< Base URI of own API RigCtrlSettings m_settings; static const unsigned int m_CmdLength; static const unsigned int m_UrlLength; static const unsigned int m_ResponseLength; static const unsigned int m_DataLength; }; #endif // INCLUDE_RIGCTRL_H