use the USB mode to determine connection state

This commit is contained in:
Kevin Matz 2023-04-06 09:39:29 -04:00
parent c2f1dcce07
commit a355edd722
4 changed files with 9 additions and 14 deletions

View File

@ -26,9 +26,7 @@
DmxWidget::DmxWidget(QObject *parent)
: QObject{parent}
, port_(new QSerialPort(this))
, connected_(false)
{
}
@ -42,10 +40,8 @@ void DmxWidget::open()
{
if (!port_->open(QIODeviceBase::ReadWrite))
return;
ENTTEC::Widget::open();
connected_ = true;
emit connectedChanged(true);
emit connectedChanged(isConnected());
}
@ -53,9 +49,7 @@ void DmxWidget::close()
{
port_->close();
ENTTEC::Widget::close();
connected_ = false;
emit connectedChanged(false);
emit connectedChanged(isConnected());
}

View File

@ -58,8 +58,6 @@ public:
virtual void open() override;
virtual void close() override;
bool isConnected() const { return connected_; }
void setPort(const QSerialPortInfo &port) { port_->setPort(port); emit portNameChanged(); }
void setPortName(const QString &name) { port_->setPortName(name); emit portNameChanged(); }
const QString portName() const { return port_->portName(); }
@ -79,7 +77,6 @@ signals:
private:
QSerialPort *port_;
bool connected_;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(DmxWidget::RxErrors)

View File

@ -31,8 +31,8 @@ Widget::Widget()
, tx_break_intervals(17) // 181.4 us by default
, tx_mab_intervals(10) // 106.7 us by default
, tx_rate(40) // 40 packets/s, by default
, rx_update_mode_(Pro::RxNotifyAlways)
, usb_mode_(USBunknown)
, rx_update_mode_(Pro::RxNotifyAlways)
, token_data_changed_(nullptr)
{
}

View File

@ -48,6 +48,11 @@ public:
virtual void halt(); //!< USB Device stop
virtual void open(); //!< USB Host start
virtual void close(); //!< USB Host stop
/**
* @brief isConnected
* @return
*/
bool isConnected() const { return usb_mode_ != USBunknown; }
virtual void setModeController();
virtual void setModeBridge(Pro::DMX_RX_MODE = Pro::RxNotifyAlways);
@ -109,13 +114,12 @@ private:
void rxMsgGetWidgetSerialReply(std::shared_ptr<Pro::MsgGetWidgetSerialReply>);
void rxMsgSendRDMDiscovery(std::shared_ptr<Pro::MsgSendRDMDiscovery>);
Pro::DMX_RX_MODE rx_update_mode_;
enum OperatingModes {
USBunknown,
USBhost,
USBdevice
} usb_mode_;
Pro::DMX_RX_MODE rx_update_mode_;
mutable std::mutex mtx_metadata_;
std::shared_ptr<void> token_data_changed_;