From d68c37fa822a25b50b39c52558065db2b64a9d32 Mon Sep 17 00:00:00 2001 From: Kevin Matz Date: Mon, 3 Apr 2023 16:45:32 -0400 Subject: [PATCH] use QSerialPort for IO --- platform/qt/dmxwidget/dmxwidget.cpp | 26 ++++++++++++++++++++++++++ platform/qt/dmxwidget/dmxwidget.h | 19 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/platform/qt/dmxwidget/dmxwidget.cpp b/platform/qt/dmxwidget/dmxwidget.cpp index 8123f71..a165c67 100644 --- a/platform/qt/dmxwidget/dmxwidget.cpp +++ b/platform/qt/dmxwidget/dmxwidget.cpp @@ -25,6 +25,32 @@ DmxWidget::DmxWidget(QObject *parent) : QObject{parent} + , port_(new QSerialPort(this)) + , connected_(false) { } + + +DmxWidget::~DmxWidget() +{ + DmxWidget::disconnect(); +} + + +void DmxWidget::connect() +{ + ENTTEC::Widget::connect(); + + connected_ = true; + emit connectedChanged(true); +} + + +void DmxWidget::disconnect() +{ + ENTTEC::Widget::disconnect(); + + connected_ = false; + emit connectedChanged(false); +} diff --git a/platform/qt/dmxwidget/dmxwidget.h b/platform/qt/dmxwidget/dmxwidget.h index aacf37a..839db17 100644 --- a/platform/qt/dmxwidget/dmxwidget.h +++ b/platform/qt/dmxwidget/dmxwidget.h @@ -24,6 +24,8 @@ #pragma once #include +#include +#include #include class DmxWidget @@ -33,7 +35,24 @@ class DmxWidget Q_OBJECT public: explicit DmxWidget(QObject *parent = nullptr); + virtual ~DmxWidget(); + virtual void connect() override; + virtual void disconnect() 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(); } + + Q_PROPERTY(bool isConnected READ isConnected NOTIFY connectedChanged) + Q_PROPERTY(QString portName READ portName NOTIFY portNameChanged) signals: + void connectedChanged(bool); + void portNameChanged(); +private: + QSerialPort *port_; + bool connected_; };