| 
						
						
							
								
							
						
						
					 | 
					@ -12,12 +12,9 @@ MainWindow::MainWindow(QWidget *parent) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    ui->writeTable->addItem(tr("Discrete Inputs"), 1); | 
					 | 
					 | 
					    ui->writeTable->addItem(tr("Discrete Inputs"), 1); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    ui->writeTable->addItem(tr("Input Registers"), 2); | 
					 | 
					 | 
					    ui->writeTable->addItem(tr("Input Registers"), 2); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    ui->writeTable->addItem(tr("Holding Registers"), 3); | 
					 | 
					 | 
					    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
 | 
					 | 
					 | 
					    // 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() | 
					 | 
					 | 
					MainWindow::~MainWindow() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    delete ui; | 
					 | 
					 | 
					    delete ui; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    workerThread.quit(); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    workerThread.wait(); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					void MainWindow::on_connectButton_clicked() | 
					 | 
					 | 
					void MainWindow::on_connectButton_clicked() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    if( ui->connectButton->text()==tr("Disconnect")) | 
					 | 
					 | 
					    if( ui->connectButton->text()==tr("Disconnect")) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    { | 
					 | 
					 | 
					    { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        modBusObj->stop(); | 
					 | 
					 | 
					        modBusWrapperObj->stopWrapper(); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    else | 
					 | 
					 | 
					    else | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    { | 
					 | 
					 | 
					    { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        modBusObj->init(); | 
					 | 
					 | 
					        modBusWrapperObj->initWrapper(ui->portEdit->text(),ui->serverEdit->value()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					        modBusObj->open(ui->portEdit->text(),ui->serverEdit->value()); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					void MainWindow::on_readButton_clicked() | 
					 | 
					 | 
					void MainWindow::on_readButton_clicked() | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -51,14 +43,14 @@ void MainWindow::on_readButton_clicked() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    // do not go beyond 10 entries
 | 
					 | 
					 | 
					    // do not go beyond 10 entries
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    int numberOfEntries = qMin(ui->readSize->currentText().toInt(), 10 - startAddress); | 
					 | 
					 | 
					    int numberOfEntries = qMin(ui->readSize->currentText().toInt(), 10 - startAddress); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    switch (ui->writeTable->currentData().toInt()) { | 
					 | 
					 | 
					    switch (ui->writeTable->currentData().toInt()) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    case 0:  printCoilsDataFromSlave(modBusObj->getCoil(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; | 
					 | 
					 | 
					        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(0,ui->coilData1->isChecked()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            uiCoils.setBit(1,ui->coilData2->isChecked()); | 
					 | 
					 | 
					            uiCoils.setBit(1,ui->coilData2->isChecked()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            modBusObj->setMultipleCoil(startAddress, numberOfEntries, uiCoils); | 
					 | 
					 | 
					          //  modBusObj->setMultipleCoil(startAddress, numberOfEntries, uiCoils);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        else if (numberOfEntries==1) | 
					 | 
					 | 
					        else if (numberOfEntries==1) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        { | 
					 | 
					 | 
					        { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            modBusObj->setSingleCoil(startAddress, ui->coilData1->isChecked()); | 
					 | 
					 | 
					           // modBusObj->setSingleCoil(startAddress, ui->coilData1->isChecked());
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        break; | 
					 | 
					 | 
					        break; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -119,11 +111,11 @@ void MainWindow::on_writeButton_clicked() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        { | 
					 | 
					 | 
					        { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            uiholdingRegisters[0]=ui->textEdit1->toPlainText().toUInt(); | 
					 | 
					 | 
					            uiholdingRegisters[0]=ui->textEdit1->toPlainText().toUInt(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            uiholdingRegisters[1]=ui->textEdit2->toPlainText().toUInt(); | 
					 | 
					 | 
					            uiholdingRegisters[1]=ui->textEdit2->toPlainText().toUInt(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            modBusObj->setMultipleRegister(startAddress, numberOfEntries, uiholdingRegisters); | 
					 | 
					 | 
					          //  modBusObj->setMultipleRegister(startAddress, numberOfEntries, uiholdingRegisters);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        else if (numberOfEntries==1) | 
					 | 
					 | 
					        else if (numberOfEntries==1) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        { | 
					 | 
					 | 
					        { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            modBusObj->setSingleRegister(startAddress, ui->textEdit1->toPlainText().toUInt()); | 
					 | 
					 | 
					          //  modBusObj->setSingleRegister(startAddress, ui->textEdit1->toPlainText().toUInt());
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        break; | 
					 | 
					 | 
					        break; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |