diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2018-10-16 13:26:01 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2018-11-07 08:33:12 +0000 |
commit | 4c77252b559c24d1c129233a89e3c6f17b1376c2 (patch) | |
tree | 837b1c85a9cf0bd3daf9bc7f9cd6e851dac2d7f8 /examples/serialbus/modbus/master | |
parent | d34ae8f61fa92ef31225cede984f07a8083e50fb (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.cpp | 11 | ||||
-rw-r--r-- | examples/serialbus/modbus/master/master.pro | 4 | ||||
-rw-r--r-- | examples/serialbus/modbus/master/settingsdialog.cpp | 4 | ||||
-rw-r--r-- | examples/serialbus/modbus/master/settingsdialog.h | 5 |
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; }; |