summaryrefslogtreecommitdiffstats
path: root/examples/serialbus/modbus/master
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/modbus/master
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/modbus/master')
-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
4 files changed, 23 insertions, 1 deletions
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;
};