2014-03-26 13:21:00 +00:00
|
|
|
#ifndef DX_LAB_SUITE_COMMANDER_TRANSCEIVER_HPP__
|
|
|
|
|
#define DX_LAB_SUITE_COMMANDER_TRANSCEIVER_HPP__
|
|
|
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
|
|
#include "TransceiverFactory.hpp"
|
|
|
|
|
#include "PollingTransceiver.hpp"
|
|
|
|
|
|
|
|
|
|
class QTcpSocket;
|
2014-09-10 09:18:41 +00:00
|
|
|
class QByteArray;
|
2014-12-06 20:23:29 +00:00
|
|
|
class QString;
|
2014-03-26 13:21:00 +00:00
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// DX Lab Suite Commander Interface
|
|
|
|
|
//
|
|
|
|
|
// Implemented as a Transceiver decorator because we may want the PTT
|
|
|
|
|
// services of another Transceiver type such as the HamlibTransceiver
|
|
|
|
|
// which can be enabled by wrapping a HamlibTransceiver instantiated
|
|
|
|
|
// as a "Hamlib Dummy" transceiver in the Transceiver factory method.
|
|
|
|
|
//
|
|
|
|
|
class DXLabSuiteCommanderTransceiver final
|
|
|
|
|
: public PollingTransceiver
|
|
|
|
|
{
|
2014-04-16 14:59:00 +00:00
|
|
|
Q_OBJECT; // for translation context
|
|
|
|
|
|
2014-03-26 13:21:00 +00:00
|
|
|
public:
|
2020-09-25 02:37:41 +01:00
|
|
|
static void register_transceivers (logger_type *, TransceiverFactory::Transceivers *, int id);
|
2014-03-26 13:21:00 +00:00
|
|
|
|
|
|
|
|
// takes ownership of wrapped Transceiver
|
2020-09-25 02:37:41 +01:00
|
|
|
explicit DXLabSuiteCommanderTransceiver (logger_type *, std::unique_ptr<TransceiverBase> wrapped,
|
2016-04-06 17:11:58 +00:00
|
|
|
QString const& address, bool use_for_ptt,
|
|
|
|
|
int poll_interval, QObject * parent = nullptr);
|
2014-03-26 13:21:00 +00:00
|
|
|
|
2014-04-04 17:02:18 +00:00
|
|
|
protected:
|
2016-04-06 17:11:58 +00:00
|
|
|
int do_start () override;
|
2014-03-26 13:21:00 +00:00
|
|
|
void do_stop () override;
|
2016-04-06 17:11:58 +00:00
|
|
|
void do_frequency (Frequency, MODE, bool no_ignore) override;
|
2016-08-13 23:33:54 +00:00
|
|
|
void do_tx_frequency (Frequency, MODE, bool no_ignore) override;
|
2016-04-06 17:11:58 +00:00
|
|
|
void do_mode (MODE) override;
|
2014-03-26 13:21:00 +00:00
|
|
|
void do_ptt (bool on) override;
|
|
|
|
|
|
2019-05-28 18:58:12 +01:00
|
|
|
void do_poll () override;
|
2014-03-26 13:21:00 +00:00
|
|
|
|
2014-04-04 17:02:18 +00:00
|
|
|
private:
|
2020-09-25 02:37:41 +01:00
|
|
|
MODE get_mode ();
|
|
|
|
|
void simple_command (QString const&);
|
|
|
|
|
QString command_with_reply (QString const&);
|
2014-12-06 20:23:29 +00:00
|
|
|
bool write_to_port (QString const&);
|
|
|
|
|
QString frequency_to_string (Frequency) const;
|
|
|
|
|
Frequency string_to_frequency (QString) const;
|
2014-03-26 13:21:00 +00:00
|
|
|
|
2016-04-06 17:11:58 +00:00
|
|
|
std::unique_ptr<TransceiverBase> wrapped_; // may be null
|
2014-03-26 13:21:00 +00:00
|
|
|
bool use_for_ptt_;
|
|
|
|
|
QString server_;
|
|
|
|
|
QTcpSocket * commander_;
|
2014-12-06 20:23:29 +00:00
|
|
|
QLocale locale_;
|
2014-03-26 13:21:00 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|