libdrmconf  0.10.4
A library to program DMR radios.
usbserial.hh
1 #ifndef USBSERIAL_HH
2 #define USBSERIAL_HH
3 
4 #include <QObject>
5 #include <QSerialPort>
6 #include "radiointerface.hh"
7 #include "errorstack.hh"
8 
15 class USBSerial : public QSerialPort, public RadioInterface
16 {
17  Q_OBJECT
18 
19 public:
22  public:
24  Descriptor(uint16_t vid, uint16_t pid, const QString &device);
25  };
26 
27 protected:
33  explicit USBSerial(const USBDeviceDescriptor &descriptor, const ErrorStack &err=ErrorStack(), QObject *parent=nullptr);
34 
35 public:
37  virtual ~USBSerial();
38 
40  bool isOpen() const;
42  void close();
43 
44 public:
46  static QList<USBDeviceDescriptor> detect(uint16_t vid, uint16_t pid);
47 
48 protected slots:
50  void onError(QSerialPort::SerialPortError error_t);
52  void onClose();
53 };
54 
55 #endif // USBSERIAL_HH
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition: errorstack.hh:41
Abstract radio interface.
Definition: radiointerface.hh:21
Base class for all radio interface descriptors representing a unique interface to a connected radio.
Definition: usbdevice.hh:197
const QVariant & device() const
Returns the device information identifying the interface uniquely.
Definition: usbdevice.cc:276
Specialization of radio interface info for serial ports.
Definition: usbserial.hh:21
Descriptor(uint16_t vid, uint16_t pid, const QString &device)
Constructor from VID, PID and device path.
Definition: usbserial.cc:9
Implements a serial connection to a radio via USB.
Definition: usbserial.hh:16
virtual ~USBSerial()
Destructor.
Definition: usbserial.cc:132
bool isOpen() const
If true, the device has been found and is open.
Definition: usbserial.cc:138
USBSerial(const USBDeviceDescriptor &descriptor, const ErrorStack &err=ErrorStack(), QObject *parent=nullptr)
Constructs an opens new serial interface to the devices identified by the given vendor and product ID...
Definition: usbserial.cc:82
void close()
Closes the interface to the device.
Definition: usbserial.cc:143
void onError(QSerialPort::SerialPortError error_t)
Callback for serial interface errors.
Definition: usbserial.cc:149
void onClose()
Callback when closing interface.
Definition: usbserial.cc:154
static QList< USBDeviceDescriptor > detect(uint16_t vid, uint16_t pid)
Searches for all USB serial ports with the specified VID/PID.
Definition: usbserial.cc:159