summaryrefslogtreecommitdiffstats
path: root/examples/serialbus
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@qt.io>2018-10-16 13:26:01 +0200
committerAlex Blasche <alexander.blasche@qt.io>2018-11-07 08:33:12 +0000
commit4c77252b559c24d1c129233a89e3c6f17b1376c2 (patch)
tree837b1c85a9cf0bd3daf9bc7f9cd6e851dac2d7f8 /examples/serialbus
parentd34ae8f61fa92ef31225cede984f07a8083e50fb (diff)
Remove hard QtSerialPort dependency from QtSerialBus
Task-number: QTBUG-70360 Change-Id: I511e368e227a46f9eba178612c8b106f5930ee49 Reviewed-by: André Hartmann <aha_1980@gmx.de>
Diffstat (limited to 'examples/serialbus')
-rw-r--r--examples/serialbus/modbus/adueditor/adueditor.pro1
-rw-r--r--examples/serialbus/modbus/master/mainwindow.cpp11
-rw-r--r--examples/serialbus/modbus/master/master.pro4
-rw-r--r--examples/serialbus/modbus/master/settingsdialog.cpp4
-rw-r--r--examples/serialbus/modbus/master/settingsdialog.h5
-rw-r--r--examples/serialbus/modbus/slave/mainwindow.cpp11
-rw-r--r--examples/serialbus/modbus/slave/settingsdialog.cpp5
-rw-r--r--examples/serialbus/modbus/slave/settingsdialog.h5
-rw-r--r--examples/serialbus/modbus/slave/slave.pro4
9 files changed, 47 insertions, 3 deletions
diff --git a/examples/serialbus/modbus/adueditor/adueditor.pro b/examples/serialbus/modbus/adueditor/adueditor.pro
index bba3c0d..facba76 100644
--- a/examples/serialbus/modbus/adueditor/adueditor.pro
+++ b/examples/serialbus/modbus/adueditor/adueditor.pro
@@ -5,6 +5,7 @@ TARGET = adueditor
QT += serialbus serialport widgets
QT += serialbus-private core-private
requires(qtConfig(combobox))
+requires(qtConfig(modbus-serialport))
FORMS += interface.ui
SOURCES += main.cpp mainwindow.cpp modbustcpclient.cpp
diff --git a/examples/serialbus/modbus/master/mainwindow.cpp b/examples/serialbus/modbus/master/mainwindow.cpp
index 18bba06..6600af8 100644
--- a/examples/serialbus/modbus/master/mainwindow.cpp
+++ b/examples/serialbus/modbus/master/mainwindow.cpp
@@ -90,8 +90,15 @@ MainWindow::MainWindow(QWidget *parent)
ui->writeTable->addItem(tr("Input Registers"), QModbusDataUnit::InputRegisters);
ui->writeTable->addItem(tr("Holding Registers"), QModbusDataUnit::HoldingRegisters);
+#if QT_CONFIG(modbus_serialport)
ui->connectType->setCurrentIndex(0);
on_connectType_currentIndexChanged(0);
+#else
+ // lock out the serial port option
+ ui->connectType->setCurrentIndex(1);
+ on_connectType_currentIndexChanged(1);
+ ui->connectType->setEnabled(false);
+#endif
auto model = new QStandardItemModel(10, 1, this);
for (int i = 0; i < 10; ++i)
@@ -154,7 +161,9 @@ void MainWindow::on_connectType_currentIndexChanged(int index)
auto type = static_cast<ModbusConnection> (index);
if (type == Serial) {
+#if QT_CONFIG(modbus_serialport)
modbusDevice = new QModbusRtuSerialMaster(this);
+#endif
} else if (type == Tcp) {
modbusDevice = new QModbusTcpClient(this);
if (ui->portEdit->text().isEmpty())
@@ -187,6 +196,7 @@ void MainWindow::on_connectButton_clicked()
if (static_cast<ModbusConnection> (ui->connectType->currentIndex()) == Serial) {
modbusDevice->setConnectionParameter(QModbusDevice::SerialPortNameParameter,
ui->portEdit->text());
+#if QT_CONFIG(modbus_serialport)
modbusDevice->setConnectionParameter(QModbusDevice::SerialParityParameter,
m_settingsDialog->settings().parity);
modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter,
@@ -195,6 +205,7 @@ void MainWindow::on_connectButton_clicked()
m_settingsDialog->settings().dataBits);
modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter,
m_settingsDialog->settings().stopBits);
+#endif
} else {
const QUrl url = QUrl::fromUserInput(ui->portEdit->text());
modbusDevice->setConnectionParameter(QModbusDevice::NetworkPortParameter, url.port());
diff --git a/examples/serialbus/modbus/master/master.pro b/examples/serialbus/modbus/master/master.pro
index 682ce82..188fbc1 100644
--- a/examples/serialbus/modbus/master/master.pro
+++ b/examples/serialbus/modbus/master/master.pro
@@ -1,6 +1,8 @@
-QT += serialbus serialport widgets
+QT += serialbus widgets
requires(qtConfig(combobox))
+qtConfig(modbus-serialport): QT += serialport
+
TARGET = modbusmaster
TEMPLATE = app
CONFIG += c++11
diff --git a/examples/serialbus/modbus/master/settingsdialog.cpp b/examples/serialbus/modbus/master/settingsdialog.cpp
index 8b2fce8..0a5eb43 100644
--- a/examples/serialbus/modbus/master/settingsdialog.cpp
+++ b/examples/serialbus/modbus/master/settingsdialog.cpp
@@ -58,19 +58,23 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
ui->setupUi(this);
ui->parityCombo->setCurrentIndex(1);
+#if QT_CONFIG(modbus_serialport)
ui->baudCombo->setCurrentText(QString::number(m_settings.baud));
ui->dataBitsCombo->setCurrentText(QString::number(m_settings.dataBits));
ui->stopBitsCombo->setCurrentText(QString::number(m_settings.stopBits));
+#endif
ui->timeoutSpinner->setValue(m_settings.responseTime);
ui->retriesSpinner->setValue(m_settings.numberOfRetries);
connect(ui->applyButton, &QPushButton::clicked, [this]() {
+#if QT_CONFIG(modbus_serialport)
m_settings.parity = ui->parityCombo->currentIndex();
if (m_settings.parity > 0)
m_settings.parity++;
m_settings.baud = ui->baudCombo->currentText().toInt();
m_settings.dataBits = ui->dataBitsCombo->currentText().toInt();
m_settings.stopBits = ui->stopBitsCombo->currentText().toInt();
+#endif
m_settings.responseTime = ui->timeoutSpinner->value();
m_settings.numberOfRetries = ui->retriesSpinner->value();
diff --git a/examples/serialbus/modbus/master/settingsdialog.h b/examples/serialbus/modbus/master/settingsdialog.h
index fa8550b..98ba946 100644
--- a/examples/serialbus/modbus/master/settingsdialog.h
+++ b/examples/serialbus/modbus/master/settingsdialog.h
@@ -51,8 +51,11 @@
#ifndef SETTINGSDIALOG_H
#define SETTINGSDIALOG_H
+#include <QtSerialBus/qtserialbusglobal.h>
#include <QDialog>
+#if QT_CONFIG(modbus_serialport)
#include <QSerialPort>
+#endif
QT_BEGIN_NAMESPACE
@@ -68,10 +71,12 @@ class SettingsDialog : public QDialog
public:
struct Settings {
+#if QT_CONFIG(modbus_serialport)
int parity = QSerialPort::EvenParity;
int baud = QSerialPort::Baud19200;
int dataBits = QSerialPort::Data8;
int stopBits = QSerialPort::OneStop;
+#endif
int responseTime = 1000;
int numberOfRetries = 3;
};
diff --git a/examples/serialbus/modbus/slave/mainwindow.cpp b/examples/serialbus/modbus/slave/mainwindow.cpp
index 1b7ad72..4a4c194 100644
--- a/examples/serialbus/modbus/slave/mainwindow.cpp
+++ b/examples/serialbus/modbus/slave/mainwindow.cpp
@@ -72,8 +72,15 @@ MainWindow::MainWindow(QWidget *parent)
ui->setupUi(this);
setupWidgetContainers();
+#if QT_CONFIG(modbus_serialport)
ui->connectType->setCurrentIndex(0);
on_connectType_currentIndexChanged(0);
+#else
+ // lock out the serial port option
+ ui->connectType->setCurrentIndex(1);
+ on_connectType_currentIndexChanged(1);
+ ui->connectType->setEnabled(false);
+#endif
m_settingsDialog = new SettingsDialog(this);
initActions();
@@ -114,7 +121,9 @@ void MainWindow::on_connectType_currentIndexChanged(int index)
ModbusConnection type = static_cast<ModbusConnection> (index);
if (type == Serial) {
+#if QT_CONFIG(modbus_serialport)
modbusDevice = new QModbusRtuSerialSlave(this);
+#endif
} else if (type == Tcp) {
modbusDevice = new QModbusTcpServer(this);
if (ui->portEdit->text().isEmpty())
@@ -177,6 +186,7 @@ void MainWindow::on_connectButton_clicked()
if (static_cast<ModbusConnection> (ui->connectType->currentIndex()) == Serial) {
modbusDevice->setConnectionParameter(QModbusDevice::SerialPortNameParameter,
ui->portEdit->text());
+#if QT_CONFIG(modbus_serialport)
modbusDevice->setConnectionParameter(QModbusDevice::SerialParityParameter,
m_settingsDialog->settings().parity);
modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter,
@@ -185,6 +195,7 @@ void MainWindow::on_connectButton_clicked()
m_settingsDialog->settings().dataBits);
modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter,
m_settingsDialog->settings().stopBits);
+#endif
} else {
const QUrl url = QUrl::fromUserInput(ui->portEdit->text());
modbusDevice->setConnectionParameter(QModbusDevice::NetworkPortParameter, url.port());
diff --git a/examples/serialbus/modbus/slave/settingsdialog.cpp b/examples/serialbus/modbus/slave/settingsdialog.cpp
index c7f1e0c..77ec8af 100644
--- a/examples/serialbus/modbus/slave/settingsdialog.cpp
+++ b/examples/serialbus/modbus/slave/settingsdialog.cpp
@@ -58,18 +58,21 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
ui->setupUi(this);
ui->parityCombo->setCurrentIndex(1);
+#if QT_CONFIG(modbus_serialport)
ui->baudCombo->setCurrentText(QString::number(m_settings.baud));
ui->dataBitsCombo->setCurrentText(QString::number(m_settings.dataBits));
ui->stopBitsCombo->setCurrentText(QString::number(m_settings.stopBits));
+#endif
connect(ui->applyButton, &QPushButton::clicked, [this]() {
+#if QT_CONFIG(modbus_serialport)
m_settings.parity = ui->parityCombo->currentIndex();
if (m_settings.parity > 0)
m_settings.parity++;
m_settings.baud = ui->baudCombo->currentText().toInt();
m_settings.dataBits = ui->dataBitsCombo->currentText().toInt();
m_settings.stopBits = ui->stopBitsCombo->currentText().toInt();
-
+#endif
hide();
});
}
diff --git a/examples/serialbus/modbus/slave/settingsdialog.h b/examples/serialbus/modbus/slave/settingsdialog.h
index bc352c3..dfe7b98 100644
--- a/examples/serialbus/modbus/slave/settingsdialog.h
+++ b/examples/serialbus/modbus/slave/settingsdialog.h
@@ -51,8 +51,11 @@
#ifndef SETTINGSDIALOG_H
#define SETTINGSDIALOG_H
+#include <QtSerialBus/qtserialbusglobal.h>
#include <QDialog>
+#if QT_CONFIG(modbus_serialport)
#include <QSerialPort>
+#endif
QT_BEGIN_NAMESPACE
@@ -68,10 +71,12 @@ class SettingsDialog : public QDialog
public:
struct Settings {
+#if QT_CONFIG(modbus_serialport)
int parity = QSerialPort::EvenParity;
int baud = QSerialPort::Baud19200;
int dataBits = QSerialPort::Data8;
int stopBits = QSerialPort::OneStop;
+#endif
};
explicit SettingsDialog(QWidget *parent = nullptr);
diff --git a/examples/serialbus/modbus/slave/slave.pro b/examples/serialbus/modbus/slave/slave.pro
index b803c5d..aadef07 100644
--- a/examples/serialbus/modbus/slave/slave.pro
+++ b/examples/serialbus/modbus/slave/slave.pro
@@ -1,6 +1,8 @@
-QT += serialbus serialport widgets
+QT += serialbus widgets
requires(qtConfig(combobox))
+qtConfig(modbus-serialport): QT += serialport
+
TARGET = modbusslave
TEMPLATE = app
CONFIG += c++11