use QSerialPort for IO

This commit is contained in:
Kevin Matz 2023-04-03 16:45:32 -04:00
parent 9f6968c915
commit d68c37fa82
2 changed files with 45 additions and 0 deletions

View File

@ -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);
}

View File

@ -24,6 +24,8 @@
#pragma once
#include <QObject>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <widget.h>
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_;
};