| 
						
						
							
								
							
						
						
					 | 
					@ -8,41 +8,46 @@ ModbusWrapper::ModbusWrapper(QObject* parent) : QObject(parent) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					ModbusWrapper::~ModbusWrapper() | 
					 | 
					 | 
					ModbusWrapper::~ModbusWrapper() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
						workerThread.quit(); | 
					 | 
					 | 
						_workerThread.quit(); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
						workerThread.wait(); | 
					 | 
					 | 
						_workerThread.wait(); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					void ModbusWrapper::init() | 
					 | 
					 | 
					void ModbusWrapper::init() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
						modbusMaster.moveToThread(&workerThread); | 
					 | 
					 | 
						_modbusMaster.moveToThread(&_workerThread); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
						workerThread.setObjectName("workerThread"); | 
					 | 
					 | 
						_workerThread.setObjectName("workerThread"); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
						workerThread.start(); | 
					 | 
					 | 
						_workerThread.start(); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						QEventLoop loop; | 
					 | 
					 | 
						QEventLoop loop; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
						connect(&workerThread, &QThread::started, &loop, &QEventLoop::quit); | 
					 | 
					 | 
						connect(&_workerThread, &QThread::started, &loop, &QEventLoop::quit); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
						loop.exec(); | 
					 | 
					 | 
						loop.exec(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						connect(this, | 
					 | 
					 | 
						connect(this, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								&ModbusWrapper::initOrder, | 
					 | 
					 | 
								&ModbusWrapper::initOrder, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								&modbusMaster, | 
					 | 
					 | 
								&_modbusMaster, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								&ModbusMaster::init, | 
					 | 
					 | 
								&ModbusMaster::init, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								Qt::BlockingQueuedConnection); | 
					 | 
					 | 
								Qt::BlockingQueuedConnection); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						connect(this, | 
					 | 
					 | 
						connect(this, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								&ModbusWrapper::connectOrder, | 
					 | 
					 | 
								&ModbusWrapper::connectOrder, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								&modbusMaster, | 
					 | 
					 | 
								&_modbusMaster, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								&ModbusMaster::connectToDevice, | 
					 | 
					 | 
								&ModbusMaster::connectToDevice, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								Qt::BlockingQueuedConnection); | 
					 | 
					 | 
								Qt::BlockingQueuedConnection); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						connect(this, | 
					 | 
					 | 
						connect(this, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								&ModbusWrapper::getCoilOrder, | 
					 | 
					 | 
								&ModbusWrapper::getCoilOrder, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								&modbusMaster, | 
					 | 
					 | 
								&_modbusMaster, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								&ModbusMaster::getCoil, | 
					 | 
					 | 
								&ModbusMaster::getCoil, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								Qt::BlockingQueuedConnection); | 
					 | 
					 | 
								Qt::BlockingQueuedConnection); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						connect(this, | 
					 | 
					 | 
						connect(this, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								&ModbusWrapper::getInputCoilOrder, | 
					 | 
					 | 
								&ModbusWrapper::getInputCoilOrder, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								&modbusMaster, | 
					 | 
					 | 
								&_modbusMaster, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								&ModbusMaster::getInputCoil, | 
					 | 
					 | 
								&ModbusMaster::getInputCoil, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								Qt::BlockingQueuedConnection); | 
					 | 
					 | 
								Qt::BlockingQueuedConnection); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						connect(this, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								&ModbusWrapper::getHoldingRegisterOrder, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								&_modbusMaster, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								&ModbusMaster::getHoldingRegister, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								Qt::BlockingQueuedConnection); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						emit initOrder(); | 
					 | 
					 | 
						emit initOrder(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -67,6 +72,15 @@ QBitArray ModbusWrapper::getInputCoil(int startAddress, quint16 readSize) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						return result; | 
					 | 
					 | 
						return result; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					QVector<quint16> ModbusWrapper::getHoldingRegister(int startAddress, quint16 readSize) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						auto result = emit getHoldingRegisterOrder(startAddress, readSize); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						qDebug() << "getHoldingRegister done"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						return result; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					void ModbusWrapper::connectToDevice(ModbusConfig modbusConfig) | 
					 | 
					 | 
					void ModbusWrapper::connectToDevice(ModbusConfig modbusConfig) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |