27class HRDTransceiver final :
public PollingTransceiver {
29 static void register_transceivers(TransceiverFactory::Transceivers *,
33 explicit HRDTransceiver(std::unique_ptr<TransceiverBase> wrapped,
34 QString
const &server,
bool use_for_ptt,
35 TransceiverFactory::TXAudioSource,
36 int poll_interval, QObject *parent =
nullptr);
40 int do_start()
override;
41 void do_stop()
override;
42 void do_frequency(Frequency, MODE,
bool no_ignore)
override;
43 void do_tx_frequency(Frequency, MODE,
bool no_ignore)
override;
44 void do_mode(MODE)
override;
45 void do_ptt(
bool on)
override;
51 QString send_command(QString
const &,
bool no_debug =
false,
52 bool prepend_context =
true,
bool recurse =
false);
53 QByteArray read_reply(QString
const &command);
54 void send_simple_command(QString
const &,
bool no_debug =
false);
55 bool write_to_port(
char const *, qint64 length);
56 int find_button(QRegularExpression
const &)
const;
57 int find_dropdown(QRegularExpression
const &)
const;
58 std::vector<int> find_dropdown_selection(
int dropdown,
59 QRegularExpression
const &)
const;
60 int get_dropdown(
int,
bool no_debug =
false);
61 void set_dropdown(
int,
int);
62 void set_button(
int button_index,
bool checked =
true);
63 bool is_button_checked(
int button_index,
bool no_debug =
false);
69 using ModeMap = std::vector<std::tuple<MODE, std::vector<int>>>;
71 void map_modes(
int dropdown, ModeMap *);
72 int lookup_mode(MODE, ModeMap
const &)
const;
73 MODE lookup_mode(
int, ModeMap
const &)
const;
74 void set_data_mode(MODE);
75 MODE get_data_mode(MODE,
bool no_debug =
false);
79 std::unique_ptr<TransceiverBase> wrapped_;
82 TransceiverFactory::TXAudioSource audio_source_;
98 using RadioMap = std::vector<std::tuple<unsigned, QString>>;
102 unsigned current_radio_;
106 QStringList buttons_;
108 QStringList dropdown_names_;
111 QMap<QString, QStringList> dropdowns_;
114 QStringList slider_names_;
116 QMap<QString, QStringList> sliders_;
125 int vfo_toggle_button_;
129 int mode_A_dropdown_;
135 int mode_B_dropdown_;
141 int data_mode_toggle_button_;
142 int data_mode_on_button_;
143 int data_mode_off_button_;
144 int data_mode_dropdown_;
147 data_mode_dropdown_selection_on_;
150 std::vector<int> data_mode_dropdown_selection_off_;
154 int split_mode_button_;
158 int split_mode_dropdown_;
163 bool split_mode_dropdown_write_only_;
166 std::vector<int> split_mode_dropdown_selection_on_;
171 std::vector<int> split_mode_dropdown_selection_off_;
177 int split_off_button_;
189 int receiver_dropdown_;
191 std::vector<int> rx_A_selection_;
193 std::vector<int> rx_B_selection_;