diff --git a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/mainwindow.o b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/mainwindow.o index f05f313..e9526cb 100644 Binary files a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/mainwindow.o and b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/mainwindow.o differ diff --git a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_mainwindow.cpp b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_mainwindow.cpp index 9575661..9d256ac 100644 --- a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_mainwindow.cpp +++ b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_mainwindow.cpp @@ -22,8 +22,8 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED struct qt_meta_stringdata_MainWindow_t { - QByteArrayData data[7]; - char stringdata0[113]; + QByteArrayData data[9]; + char stringdata0[135]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ @@ -38,12 +38,15 @@ QT_MOC_LITERAL(2, 36, 0), // "" QT_MOC_LITERAL(3, 37, 21), // "on_readButton_clicked" QT_MOC_LITERAL(4, 59, 19), // "printDataFromClient" QT_MOC_LITERAL(5, 79, 10), // "readedData" -QT_MOC_LITERAL(6, 90, 22) // "on_writeButton_clicked" +QT_MOC_LITERAL(6, 90, 15), // "connectionState" +QT_MOC_LITERAL(7, 106, 5), // "state" +QT_MOC_LITERAL(8, 112, 22) // "on_writeButton_clicked" }, "MainWindow\0on_connectButton_clicked\0" "\0on_readButton_clicked\0printDataFromClient\0" - "readedData\0on_writeButton_clicked" + "readedData\0connectionState\0state\0" + "on_writeButton_clicked" }; #undef QT_MOC_LITERAL @@ -53,7 +56,7 @@ static const uint qt_meta_data_MainWindow[] = { 8, // revision 0, // classname 0, 0, // classinfo - 4, 14, // methods + 5, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors @@ -61,15 +64,17 @@ static const uint qt_meta_data_MainWindow[] = { 0, // signalCount // slots: name, argc, parameters, tag, flags - 1, 0, 34, 2, 0x08 /* Private */, - 3, 0, 35, 2, 0x08 /* Private */, - 4, 1, 36, 2, 0x08 /* Private */, - 6, 0, 39, 2, 0x08 /* Private */, + 1, 0, 39, 2, 0x08 /* Private */, + 3, 0, 40, 2, 0x08 /* Private */, + 4, 1, 41, 2, 0x08 /* Private */, + 6, 1, 44, 2, 0x08 /* Private */, + 8, 0, 47, 2, 0x08 /* Private */, // slots: parameters QMetaType::Void, QMetaType::Void, QMetaType::Void, QMetaType::QString, 5, + QMetaType::Void, QMetaType::Bool, 7, QMetaType::Void, 0 // eod @@ -84,7 +89,8 @@ void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, case 0: _t->on_connectButton_clicked(); break; case 1: _t->on_readButton_clicked(); break; case 2: _t->printDataFromClient((*reinterpret_cast< QString(*)>(_a[1]))); break; - case 3: _t->on_writeButton_clicked(); break; + case 3: _t->connectionState((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->on_writeButton_clicked(); break; default: ; } } @@ -119,13 +125,13 @@ int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 4) + if (_id < 5) qt_static_metacall(this, _c, _id, _a); - _id -= 4; + _id -= 5; } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 4) + if (_id < 5) *reinterpret_cast<int*>(_a[0]) = -1; - _id -= 4; + _id -= 5; } return _id; } diff --git a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_mainwindow.o b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_mainwindow.o index 5036152..bd93f63 100644 Binary files a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_mainwindow.o and b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_mainwindow.o differ diff --git a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_modbusmaster.cpp b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_modbusmaster.cpp index ed3377c..63e73ac 100644 --- a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_modbusmaster.cpp +++ b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_modbusmaster.cpp @@ -22,8 +22,8 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED struct qt_meta_stringdata_modBusMaster_t { - QByteArrayData data[5]; - char stringdata0[55]; + QByteArrayData data[7]; + char stringdata0[83]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ @@ -36,11 +36,14 @@ QT_MOC_LITERAL(0, 0, 12), // "modBusMaster" QT_MOC_LITERAL(1, 13, 14), // "dataFromClient" QT_MOC_LITERAL(2, 28, 0), // "" QT_MOC_LITERAL(3, 29, 15), // "readedParameter" -QT_MOC_LITERAL(4, 45, 9) // "readReady" +QT_MOC_LITERAL(4, 45, 21), // "modbusConnectionState" +QT_MOC_LITERAL(5, 67, 5), // "state" +QT_MOC_LITERAL(6, 73, 9) // "readReady" }, "modBusMaster\0dataFromClient\0\0" - "readedParameter\0readReady" + "readedParameter\0modbusConnectionState\0" + "state\0readReady" }; #undef QT_MOC_LITERAL @@ -50,21 +53,23 @@ static const uint qt_meta_data_modBusMaster[] = { 8, // revision 0, // classname 0, 0, // classinfo - 2, 14, // methods + 3, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags - 1, // signalCount + 2, // signalCount // signals: name, argc, parameters, tag, flags - 1, 1, 24, 2, 0x06 /* Public */, + 1, 1, 29, 2, 0x06 /* Public */, + 4, 1, 32, 2, 0x06 /* Public */, // slots: name, argc, parameters, tag, flags - 4, 0, 27, 2, 0x0a /* Public */, + 6, 0, 35, 2, 0x0a /* Public */, // signals: parameters QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::Bool, 5, // slots: parameters QMetaType::Void, @@ -79,7 +84,8 @@ void modBusMaster::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id Q_UNUSED(_t) switch (_id) { case 0: _t->dataFromClient((*reinterpret_cast< QString(*)>(_a[1]))); break; - case 1: _t->readReady(); break; + case 1: _t->modbusConnectionState((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 2: _t->readReady(); break; default: ; } } else if (_c == QMetaObject::IndexOfMethod) { @@ -91,6 +97,13 @@ void modBusMaster::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id return; } } + { + using _t = void (modBusMaster::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&modBusMaster::modbusConnectionState)) { + *result = 1; + return; + } + } } } @@ -123,13 +136,13 @@ int modBusMaster::qt_metacall(QMetaObject::Call _c, int _id, void **_a) if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 2) + if (_id < 3) qt_static_metacall(this, _c, _id, _a); - _id -= 2; + _id -= 3; } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 2) + if (_id < 3) *reinterpret_cast<int*>(_a[0]) = -1; - _id -= 2; + _id -= 3; } return _id; } @@ -140,5 +153,12 @@ void modBusMaster::dataFromClient(QString _t1) void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) }; QMetaObject::activate(this, &staticMetaObject, 0, _a); } + +// SIGNAL 1 +void modBusMaster::modbusConnectionState(bool _t1) +{ + void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} QT_WARNING_POP QT_END_MOC_NAMESPACE diff --git a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_modbusmaster.o b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_modbusmaster.o index 00ea4e4..d3af932 100644 Binary files a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_modbusmaster.o and b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/moc_modbusmaster.o differ diff --git a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/modbusmaster.o b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/modbusmaster.o index 856a53e..69b2e8e 100644 Binary files a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/modbusmaster.o and b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/modbusmaster.o differ diff --git a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/serialConnectionManager b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/serialConnectionManager index fefc75e..6ac8caa 100755 Binary files a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/serialConnectionManager and b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/serialConnectionManager differ diff --git a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/ui_mainwindow.h b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/ui_mainwindow.h index ab71725..8c92eea 100644 --- a/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/ui_mainwindow.h +++ b/build-serialConnectionManager-Desktop_Qt_5_13_1_GCC_64bit-Debug/ui_mainwindow.h @@ -46,19 +46,19 @@ public: QHBoxLayout *horizontalLayout_2; QGroupBox *groupBox_2; QGridLayout *gridLayout_3; - QLabel *label_4; QSpinBox *readAddress; - QComboBox *readSize; + QLabel *label_5; QLabel *label_9; + QComboBox *readSize; + QLabel *label_4; QTextEdit *textEditRead; - QLabel *label_5; QGroupBox *writeGroupBox; QGridLayout *gridLayout_2; - QSpinBox *writeAddress; QVBoxLayout *verticalLayout_2; QCheckBox *coilData1; QCheckBox *coilData2; QComboBox *writeSize; + QSpinBox *writeAddress; QLabel *label_7; QLabel *label_8; QVBoxLayout *verticalLayout; @@ -83,7 +83,7 @@ public: { if (MainWindow->objectName().isEmpty()) MainWindow->setObjectName(QString::fromUtf8("MainWindow")); - MainWindow->resize(588, 520); + MainWindow->resize(578, 569); centralwidget = new QWidget(MainWindow); centralwidget->setObjectName(QString::fromUtf8("centralwidget")); layoutWidget = new QWidget(centralwidget); @@ -156,17 +156,22 @@ public: groupBox_2->setMinimumSize(QSize(250, 0)); gridLayout_3 = new QGridLayout(groupBox_2); gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3")); - label_4 = new QLabel(groupBox_2); - label_4->setObjectName(QString::fromUtf8("label_4")); - - gridLayout_3->addWidget(label_4, 0, 1, 1, 1); - readAddress = new QSpinBox(groupBox_2); readAddress->setObjectName(QString::fromUtf8("readAddress")); readAddress->setMaximum(15); gridLayout_3->addWidget(readAddress, 0, 2, 1, 1); + label_5 = new QLabel(groupBox_2); + label_5->setObjectName(QString::fromUtf8("label_5")); + + gridLayout_3->addWidget(label_5, 1, 1, 1, 1); + + label_9 = new QLabel(groupBox_2); + label_9->setObjectName(QString::fromUtf8("label_9")); + + gridLayout_3->addWidget(label_9, 2, 1, 1, 1); + readSize = new QComboBox(groupBox_2); readSize->addItem(QString()); readSize->addItem(QString()); @@ -182,21 +187,16 @@ public: gridLayout_3->addWidget(readSize, 1, 2, 1, 1); - label_9 = new QLabel(groupBox_2); - label_9->setObjectName(QString::fromUtf8("label_9")); + label_4 = new QLabel(groupBox_2); + label_4->setObjectName(QString::fromUtf8("label_4")); - gridLayout_3->addWidget(label_9, 2, 1, 1, 1); + gridLayout_3->addWidget(label_4, 0, 1, 1, 1); textEditRead = new QTextEdit(groupBox_2); textEditRead->setObjectName(QString::fromUtf8("textEditRead")); gridLayout_3->addWidget(textEditRead, 3, 1, 1, 2); - label_5 = new QLabel(groupBox_2); - label_5->setObjectName(QString::fromUtf8("label_5")); - - gridLayout_3->addWidget(label_5, 1, 1, 1, 1); - horizontalLayout_2->addWidget(groupBox_2); @@ -205,12 +205,6 @@ public: writeGroupBox->setMinimumSize(QSize(225, 0)); gridLayout_2 = new QGridLayout(writeGroupBox); gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2")); - writeAddress = new QSpinBox(writeGroupBox); - writeAddress->setObjectName(QString::fromUtf8("writeAddress")); - writeAddress->setMaximum(9); - - gridLayout_2->addWidget(writeAddress, 0, 1, 1, 1); - verticalLayout_2 = new QVBoxLayout(); verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); coilData1 = new QCheckBox(writeGroupBox); @@ -229,18 +223,17 @@ public: writeSize = new QComboBox(writeGroupBox); writeSize->addItem(QString()); writeSize->addItem(QString()); - writeSize->addItem(QString()); - writeSize->addItem(QString()); - writeSize->addItem(QString()); - writeSize->addItem(QString()); - writeSize->addItem(QString()); - writeSize->addItem(QString()); - writeSize->addItem(QString()); - writeSize->addItem(QString()); writeSize->setObjectName(QString::fromUtf8("writeSize")); + writeSize->setMaxVisibleItems(2); gridLayout_2->addWidget(writeSize, 1, 1, 1, 1); + writeAddress = new QSpinBox(writeGroupBox); + writeAddress->setObjectName(QString::fromUtf8("writeAddress")); + writeAddress->setMaximum(9); + + gridLayout_2->addWidget(writeAddress, 0, 1, 1, 1); + label_7 = new QLabel(writeGroupBox); label_7->setObjectName(QString::fromUtf8("label_7")); @@ -291,7 +284,7 @@ public: layoutWidget_3 = new QWidget(centralwidget); layoutWidget_3->setObjectName(QString::fromUtf8("layoutWidget_3")); - layoutWidget_3->setGeometry(QRect(10, 350, 561, 27)); + layoutWidget_3->setGeometry(QRect(10, 500, 561, 27)); horizontalLayout = new QHBoxLayout(layoutWidget_3); horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); horizontalLayout->setContentsMargins(0, 0, 0, 0); @@ -330,7 +323,7 @@ public: MainWindow->setCentralWidget(centralwidget); menubar = new QMenuBar(MainWindow); menubar->setObjectName(QString::fromUtf8("menubar")); - menubar->setGeometry(QRect(0, 0, 588, 22)); + menubar->setGeometry(QRect(0, 0, 578, 22)); MainWindow->setMenuBar(menubar); statusbar = new QStatusBar(MainWindow); statusbar->setObjectName(QString::fromUtf8("statusbar")); @@ -340,7 +333,7 @@ public: connectButton->setDefault(true); readSize->setCurrentIndex(9); - writeSize->setCurrentIndex(9); + writeSize->setCurrentIndex(0); QMetaObject::connectSlotsByName(MainWindow); @@ -354,7 +347,8 @@ public: label->setText(QCoreApplication::translate("MainWindow", "Connection type Is Serial:", nullptr)); label_2->setText(QCoreApplication::translate("MainWindow", "Port:", nullptr)); groupBox_2->setTitle(QCoreApplication::translate("MainWindow", "Read", nullptr)); - label_4->setText(QCoreApplication::translate("MainWindow", "Start address:", nullptr)); + label_5->setText(QCoreApplication::translate("MainWindow", "Number of values:", nullptr)); + label_9->setText(QCoreApplication::translate("MainWindow", "Result:", nullptr)); readSize->setItemText(0, QCoreApplication::translate("MainWindow", "1", nullptr)); readSize->setItemText(1, QCoreApplication::translate("MainWindow", "2", nullptr)); readSize->setItemText(2, QCoreApplication::translate("MainWindow", "3", nullptr)); @@ -366,22 +360,14 @@ public: readSize->setItemText(8, QCoreApplication::translate("MainWindow", "9", nullptr)); readSize->setItemText(9, QCoreApplication::translate("MainWindow", "10", nullptr)); - label_9->setText(QCoreApplication::translate("MainWindow", "Result:", nullptr)); - label_5->setText(QCoreApplication::translate("MainWindow", "Number of values:", nullptr)); + label_4->setText(QCoreApplication::translate("MainWindow", "Start address:", nullptr)); writeGroupBox->setTitle(QCoreApplication::translate("MainWindow", "Write", nullptr)); coilData1->setText(QCoreApplication::translate("MainWindow", "Coil1", nullptr)); coilData2->setText(QCoreApplication::translate("MainWindow", "Coil2", nullptr)); writeSize->setItemText(0, QCoreApplication::translate("MainWindow", "1", nullptr)); writeSize->setItemText(1, QCoreApplication::translate("MainWindow", "2", nullptr)); - writeSize->setItemText(2, QCoreApplication::translate("MainWindow", "3", nullptr)); - writeSize->setItemText(3, QCoreApplication::translate("MainWindow", "4", nullptr)); - writeSize->setItemText(4, QCoreApplication::translate("MainWindow", "5", nullptr)); - writeSize->setItemText(5, QCoreApplication::translate("MainWindow", "6", nullptr)); - writeSize->setItemText(6, QCoreApplication::translate("MainWindow", "7", nullptr)); - writeSize->setItemText(7, QCoreApplication::translate("MainWindow", "8", nullptr)); - writeSize->setItemText(8, QCoreApplication::translate("MainWindow", "9", nullptr)); - writeSize->setItemText(9, QCoreApplication::translate("MainWindow", "10", nullptr)); + writeSize->setCurrentText(QCoreApplication::translate("MainWindow", "1", nullptr)); label_7->setText(QCoreApplication::translate("MainWindow", "Start address:", nullptr)); label_8->setText(QCoreApplication::translate("MainWindow", "Number of values:", nullptr)); label_3->setText(QCoreApplication::translate("MainWindow", "register1", nullptr)); diff --git a/serialConnectionManager/mainwindow.cpp b/serialConnectionManager/mainwindow.cpp index d0b6e3a..6066910 100644 --- a/serialConnectionManager/mainwindow.cpp +++ b/serialConnectionManager/mainwindow.cpp @@ -11,6 +11,8 @@ MainWindow::MainWindow(QWidget *parent) ui->writeTable->addItem(tr("Input Registers"), 2); ui->writeTable->addItem(tr("Holding Registers"), 3); connect(&modBusObj, &modBusMaster::dataFromClient, this, &MainWindow::printDataFromClient); + connect(&modBusObj, &modBusMaster::modbusConnectionState, this, &MainWindow::connectionState); + } MainWindow::~MainWindow() @@ -21,8 +23,17 @@ MainWindow::~MainWindow() void MainWindow::on_connectButton_clicked() { - modBusObj.init(); - modBusObj.open(ui->portEdit->text(),ui->serverEdit->value()); + if( ui->connectButton->text()==tr("Disconnect")) + { + modBusObj.stop(); + } + else + { + modBusObj.init(); + modBusObj.open(ui->portEdit->text(),ui->serverEdit->value()); + } + + } void MainWindow::on_readButton_clicked() @@ -48,6 +59,14 @@ void MainWindow::printDataFromClient(QString readedData) ui->textEditRead->setText(readedData); } +void MainWindow::connectionState(bool state) +{ + if (state) + ui->connectButton->setText(tr("Disconnect")); + else + ui->connectButton->setText(tr("Connect")); +} + void MainWindow::on_writeButton_clicked() { uiCoils.resize(2); @@ -66,7 +85,7 @@ void MainWindow::on_writeButton_clicked() } else if (numberOfEntries==1) { - qDebug() << "coil umberOfEntries==1 " << numberOfEntries ; + qDebug() << "coil numberOfEntries==1 " << numberOfEntries ; modBusObj.setSingleCoil(startAddress, ui->coilData1->isChecked()); } break; diff --git a/serialConnectionManager/mainwindow.h b/serialConnectionManager/mainwindow.h index 806f995..6563484 100644 --- a/serialConnectionManager/mainwindow.h +++ b/serialConnectionManager/mainwindow.h @@ -20,6 +20,7 @@ private slots: void on_connectButton_clicked(); void on_readButton_clicked(); void printDataFromClient(QString readedData); + void connectionState(bool state); void on_writeButton_clicked(); diff --git a/serialConnectionManager/mainwindow.ui b/serialConnectionManager/mainwindow.ui index e7a16ab..fffd02b 100644 --- a/serialConnectionManager/mainwindow.ui +++ b/serialConnectionManager/mainwindow.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>588</width> - <height>520</height> + <width>578</width> + <height>569</height> </rect> </property> <property name="windowTitle"> @@ -129,13 +129,6 @@ <string>Read</string> </property> <layout class="QGridLayout" name="gridLayout_3"> - <item row="0" column="1"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Start address:</string> - </property> - </widget> - </item> <item row="0" column="2"> <widget class="QSpinBox" name="readAddress"> <property name="maximum"> @@ -143,6 +136,20 @@ </property> </widget> </item> + <item row="1" column="1"> + <widget class="QLabel" name="label_5"> + <property name="text"> + <string>Number of values:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLabel" name="label_9"> + <property name="text"> + <string>Result:</string> + </property> + </widget> + </item> <item row="1" column="2"> <widget class="QComboBox" name="readSize"> <property name="currentIndex"> @@ -200,23 +207,16 @@ </item> </widget> </item> - <item row="2" column="1"> - <widget class="QLabel" name="label_9"> + <item row="0" column="1"> + <widget class="QLabel" name="label_4"> <property name="text"> - <string>Result:</string> + <string>Start address:</string> </property> </widget> </item> <item row="3" column="1" colspan="2"> <widget class="QTextEdit" name="textEditRead"/> </item> - <item row="1" column="1"> - <widget class="QLabel" name="label_5"> - <property name="text"> - <string>Number of values:</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -232,13 +232,6 @@ <string>Write</string> </property> <layout class="QGridLayout" name="gridLayout_2"> - <item row="0" column="1"> - <widget class="QSpinBox" name="writeAddress"> - <property name="maximum"> - <number>9</number> - </property> - </widget> - </item> <item row="2" column="0" colspan="2"> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> @@ -259,8 +252,14 @@ </item> <item row="1" column="1"> <widget class="QComboBox" name="writeSize"> + <property name="currentText"> + <string>1</string> + </property> <property name="currentIndex"> - <number>9</number> + <number>0</number> + </property> + <property name="maxVisibleItems"> + <number>2</number> </property> <item> <property name="text"> @@ -272,46 +271,13 @@ <string>2</string> </property> </item> - <item> - <property name="text"> - <string>3</string> - </property> - </item> - <item> - <property name="text"> - <string>4</string> - </property> - </item> - <item> - <property name="text"> - <string>5</string> - </property> - </item> - <item> - <property name="text"> - <string>6</string> - </property> - </item> - <item> - <property name="text"> - <string>7</string> - </property> - </item> - <item> - <property name="text"> - <string>8</string> - </property> - </item> - <item> - <property name="text"> - <string>9</string> - </property> - </item> - <item> - <property name="text"> - <string>10</string> - </property> - </item> + </widget> + </item> + <item row="0" column="1"> + <widget class="QSpinBox" name="writeAddress"> + <property name="maximum"> + <number>9</number> + </property> </widget> </item> <item row="0" column="0"> @@ -367,7 +333,7 @@ <property name="geometry"> <rect> <x>10</x> - <y>350</y> + <y>500</y> <width>561</width> <height>27</height> </rect> @@ -434,7 +400,7 @@ <rect> <x>0</x> <y>0</y> - <width>588</width> + <width>578</width> <height>22</height> </rect> </property> diff --git a/serialConnectionManager/modbusmaster.cpp b/serialConnectionManager/modbusmaster.cpp index 0913c64..af703b1 100644 --- a/serialConnectionManager/modbusmaster.cpp +++ b/serialConnectionManager/modbusmaster.cpp @@ -51,6 +51,7 @@ void modBusMaster::open(QString _serialPort , int _serverId) #endif modbusDevice->setTimeout(modbusSettings.responseTime); modbusDevice->setNumberOfRetries(modbusSettings.numberOfRetries); + emit modbusConnectionState(true); } if (!modbusDevice->connectDevice()) { @@ -66,17 +67,16 @@ void modBusMaster::close() void modBusMaster::stop() { - + if (modbusDevice) + modbusDevice->disconnectDevice(); + emit modbusConnectionState(false); } void modBusMaster::setSingleCoil(int startAddress,bool coilFlag) { if (!modbusDevice) return; - qDebug() << " ---- setSingleCoil " ; - m_coils.clearBit(2); m_coils.setBit(0,coilFlag); - qDebug() << " ---- setSingleCoil coilFlag " <<coilFlag; writeRequest(QModbusDataUnit::RegisterType::Coils, startAddress, 1); } @@ -85,7 +85,6 @@ void modBusMaster::setMultipleCoil(int startAddress, quint16 writeSize, QBitArra { if (!modbusDevice) return; - m_holdingRegisters.clear(); m_coils = someCoilFlags; writeRequest(QModbusDataUnit::RegisterType::Coils, startAddress, writeSize); } @@ -94,7 +93,6 @@ void modBusMaster::setSingleRgister(int startAddress, quint16 RegisterValue) { if (!modbusDevice) return; - m_holdingRegisters.clear(); m_holdingRegisters[0]=RegisterValue; writeRequest(QModbusDataUnit::RegisterType::HoldingRegisters, startAddress, 1); } diff --git a/serialConnectionManager/modbusmaster.h b/serialConnectionManager/modbusmaster.h index 33e2a34..2a6a97e 100644 --- a/serialConnectionManager/modbusmaster.h +++ b/serialConnectionManager/modbusmaster.h @@ -39,6 +39,8 @@ public: signals: void dataFromClient(QString readedParameter); + void modbusConnectionState(bool state); + public slots: void readReady(); private: