60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#ifndef DX_LAB_SUITE_COMMANDER_TRANSCEIVER_HPP__
							 | 
						||
| 
								 | 
							
								#define DX_LAB_SUITE_COMMANDER_TRANSCEIVER_HPP__
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <memory>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "TransceiverFactory.hpp"
							 | 
						||
| 
								 | 
							
								#include "PollingTransceiver.hpp"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class QTcpSocket;
							 | 
						||
| 
								 | 
							
								class QByteArray;
							 | 
						||
| 
								 | 
							
								class QString;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// 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
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  Q_OBJECT;                     // for translation context
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								  static void register_transceivers (TransceiverFactory::Transceivers *, int id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // takes ownership of wrapped Transceiver
							 | 
						||
| 
								 | 
							
								  explicit DXLabSuiteCommanderTransceiver (std::unique_ptr<TransceiverBase> wrapped,
							 | 
						||
| 
								 | 
							
								                                           QString const& address, bool use_for_ptt,
							 | 
						||
| 
								 | 
							
								                                           int poll_interval, QObject * parent = nullptr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								protected:
							 | 
						||
| 
								 | 
							
								  int do_start () override;
							 | 
						||
| 
								 | 
							
								  void do_stop () override;
							 | 
						||
| 
								 | 
							
								  void do_frequency (Frequency, MODE, bool no_ignore) override;
							 | 
						||
| 
								 | 
							
								  void do_tx_frequency (Frequency, MODE, bool no_ignore) override;
							 | 
						||
| 
								 | 
							
								  void do_mode (MODE) override;
							 | 
						||
| 
								 | 
							
								  void do_ptt (bool on) override;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void poll () override;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								  MODE get_mode (bool no_debug = false);
							 | 
						||
| 
								 | 
							
								  void simple_command (QString const&, bool no_debug = false);
							 | 
						||
| 
								 | 
							
								  QString command_with_reply (QString const&, bool no_debug = false);
							 | 
						||
| 
								 | 
							
								  bool write_to_port (QString const&);
							 | 
						||
| 
								 | 
							
								  QString frequency_to_string (Frequency) const;
							 | 
						||
| 
								 | 
							
								  Frequency string_to_frequency (QString) const;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  std::unique_ptr<TransceiverBase> wrapped_; // may be null
							 | 
						||
| 
								 | 
							
								  bool use_for_ptt_;
							 | 
						||
| 
								 | 
							
								  QString server_;
							 | 
						||
| 
								 | 
							
								  QTcpSocket * commander_;
							 | 
						||
| 
								 | 
							
								  QLocale locale_;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |