|
|
@ -12,12 +12,9 @@ MainWindow::MainWindow(QWidget *parent) |
|
|
|
ui->writeTable->addItem(tr("Discrete Inputs"), 1); |
|
|
|
ui->writeTable->addItem(tr("Input Registers"), 2); |
|
|
|
ui->writeTable->addItem(tr("Holding Registers"), 3); |
|
|
|
modBusObj = new modBusMaster(); |
|
|
|
modBusObj->moveToThread(&workerThread); |
|
|
|
workerThread.setObjectName("workerThread"); |
|
|
|
workerThread.start(); |
|
|
|
|
|
|
|
// the thread starts the event loop and blocks waiting for events
|
|
|
|
connect(modBusObj, &modBusMaster::modbusConnectionState, this, &MainWindow::connectionState); |
|
|
|
// connect(modBusObj, &modBusMaster::modbusConnectionState, this, &MainWindow::connectionState);
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
@ -25,24 +22,19 @@ MainWindow::MainWindow(QWidget *parent) |
|
|
|
MainWindow::~MainWindow() |
|
|
|
{ |
|
|
|
delete ui; |
|
|
|
workerThread.quit(); |
|
|
|
workerThread.wait(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
void MainWindow::on_connectButton_clicked() |
|
|
|
{ |
|
|
|
if( ui->connectButton->text()==tr("Disconnect")) |
|
|
|
{ |
|
|
|
modBusObj->stop(); |
|
|
|
modBusWrapperObj->stopWrapper(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
modBusObj->init(); |
|
|
|
modBusObj->open(ui->portEdit->text(),ui->serverEdit->value()); |
|
|
|
} |
|
|
|
|
|
|
|
modBusWrapperObj->initWrapper(ui->portEdit->text(),ui->serverEdit->value()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
void MainWindow::on_readButton_clicked() |
|
|
@ -51,14 +43,14 @@ void MainWindow::on_readButton_clicked() |
|
|
|
// do not go beyond 10 entries
|
|
|
|
int numberOfEntries = qMin(ui->readSize->currentText().toInt(), 10 - startAddress); |
|
|
|
switch (ui->writeTable->currentData().toInt()) { |
|
|
|
case 0: printCoilsDataFromSlave(modBusObj->getCoil(startAddress,static_cast<quint16>(numberOfEntries))); |
|
|
|
break; |
|
|
|
case 1: printCoilsDataFromSlave(modBusObj->getInputCoil(startAddress,static_cast<quint16>(numberOfEntries))); |
|
|
|
break; |
|
|
|
case 2: printRegisterDataFromSlave(modBusObj->getInputRegister(startAddress,static_cast<quint16>(numberOfEntries))); |
|
|
|
break; |
|
|
|
case 3: printRegisterDataFromSlave(modBusObj->getHoldingRegister(startAddress,static_cast<quint16>(numberOfEntries))); |
|
|
|
case 0: printCoilsDataFromSlave(modBusWrapperObj->getCoilWrapper(startAddress,static_cast<quint16>(numberOfEntries))); |
|
|
|
break; |
|
|
|
// case 1: printCoilsDataFromSlave(modBusObj->getInputCoil(startAddress,static_cast<quint16>(numberOfEntries)));
|
|
|
|
// break;
|
|
|
|
// case 2: printRegisterDataFromSlave(modBusObj->getInputRegister(startAddress,static_cast<quint16>(numberOfEntries)));
|
|
|
|
// break;
|
|
|
|
// case 3: printRegisterDataFromSlave(modBusObj->getHoldingRegister(startAddress,static_cast<quint16>(numberOfEntries)));
|
|
|
|
// break;
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
@ -106,11 +98,11 @@ void MainWindow::on_writeButton_clicked() |
|
|
|
{ |
|
|
|
uiCoils.setBit(0,ui->coilData1->isChecked()); |
|
|
|
uiCoils.setBit(1,ui->coilData2->isChecked()); |
|
|
|
modBusObj->setMultipleCoil(startAddress, numberOfEntries, uiCoils); |
|
|
|
// modBusObj->setMultipleCoil(startAddress, numberOfEntries, uiCoils);
|
|
|
|
} |
|
|
|
else if (numberOfEntries==1) |
|
|
|
{ |
|
|
|
modBusObj->setSingleCoil(startAddress, ui->coilData1->isChecked()); |
|
|
|
// modBusObj->setSingleCoil(startAddress, ui->coilData1->isChecked());
|
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
@ -119,11 +111,11 @@ void MainWindow::on_writeButton_clicked() |
|
|
|
{ |
|
|
|
uiholdingRegisters[0]=ui->textEdit1->toPlainText().toUInt(); |
|
|
|
uiholdingRegisters[1]=ui->textEdit2->toPlainText().toUInt(); |
|
|
|
modBusObj->setMultipleRegister(startAddress, numberOfEntries, uiholdingRegisters); |
|
|
|
// modBusObj->setMultipleRegister(startAddress, numberOfEntries, uiholdingRegisters);
|
|
|
|
} |
|
|
|
else if (numberOfEntries==1) |
|
|
|
{ |
|
|
|
modBusObj->setSingleRegister(startAddress, ui->textEdit1->toPlainText().toUInt()); |
|
|
|
// modBusObj->setSingleRegister(startAddress, ui->textEdit1->toPlainText().toUInt());
|
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|