|
|
@ -21,52 +21,14 @@ void ModBusMaster::init() |
|
|
|
connect(&objsimModbus, &Simulatermodbus::coilIsReady , this, &ModBusMaster::modbusReplyRecievedSimulate); |
|
|
|
qDebug() << " modBusMaster::init " <<QThread::currentThreadId() ; |
|
|
|
objsimModbus.init(); |
|
|
|
|
|
|
|
|
|
|
|
/* close();
|
|
|
|
modbusDevice = nullptr; |
|
|
|
|
|
|
|
modbusDevice = new QModbusRtuSerialMaster(this); |
|
|
|
connect(modbusDevice, &QModbusClient::errorOccurred, [this](QModbusDevice::Error) |
|
|
|
{ |
|
|
|
throw serialPortException(modbusDevice->errorString()); |
|
|
|
}); |
|
|
|
|
|
|
|
if (!modbusDevice) |
|
|
|
throw serialPortException("Could not create Modbus master."); */ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
void ModBusMaster::open(QString serialPort , int slaveAddress) |
|
|
|
{ |
|
|
|
qDebug() << "imodBusMaster::open " << QThread::currentThreadId() ; |
|
|
|
objsimModbus.open(serialPort, slaveAddress); |
|
|
|
|
|
|
|
/* _serialPort = serialPort;
|
|
|
|
_slaveAddress = slaveAddress; |
|
|
|
if (!modbusDevice) |
|
|
|
return; |
|
|
|
if (modbusDevice->state() != QModbusDevice::ConnectedState) |
|
|
|
{ |
|
|
|
modbusDevice->setConnectionParameter(QModbusDevice::SerialPortNameParameter, |
|
|
|
serialPort); |
|
|
|
modbusDevice->setConnectionParameter(QModbusDevice::SerialParityParameter, |
|
|
|
_modbusSettings.modbusSetting.parity); |
|
|
|
modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, |
|
|
|
_modbusSettings.modbusSetting.baud); |
|
|
|
modbusDevice->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, |
|
|
|
_modbusSettings.modbusSetting.dataBits); |
|
|
|
modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter, |
|
|
|
_modbusSettings.modbusSetting.stopBits); |
|
|
|
modbusDevice->setTimeout(_modbusSettings.modbusSetting.responseTime); |
|
|
|
modbusDevice->setNumberOfRetries(_modbusSettings.modbusSetting.numberOfRetries); |
|
|
|
emit modbusConnectionState(true); |
|
|
|
} |
|
|
|
if (!modbusDevice->connectDevice()) |
|
|
|
{ |
|
|
|
throw serialPortException(modbusDevice->errorString()); |
|
|
|
} */ |
|
|
|
} |
|
|
|
|
|
|
|
void ModBusMaster::close() |
|
|
|
{ |
|
|
|
if (modbusDevice) |
|
|
@ -118,30 +80,8 @@ void ModBusMaster::setMultipleRegister(int startAddress, quint16 writeSize , QVe |
|
|
|
|
|
|
|
QBitArray ModBusMaster::getCoil(int startAddress, quint16 readSize) |
|
|
|
{ |
|
|
|
|
|
|
|
objsimModbus.readCoil(startAddress,readSize); |
|
|
|
return clientCoil; |
|
|
|
/*
|
|
|
|
qDebug() << " QThread::currentThreadId() getCoil befor" <<QThread::currentThreadId() ; |
|
|
|
QModbusDataUnit unit = readRequest(QModbusDataUnit::RegisterType::Coils, startAddress, readSize); |
|
|
|
qDebug() << " QThread::currentThreadId() getCoil after" <<QThread::currentThreadId() ; |
|
|
|
mutex.lock(); |
|
|
|
if(!freeThread) |
|
|
|
modBusAnswerNotReady.wait(&mutex); |
|
|
|
mutex.unlock(); |
|
|
|
QBitArray coils; |
|
|
|
coils.resize(2); |
|
|
|
auto num = unit.valueCount(); |
|
|
|
coils.resize(static_cast<int>(num)); |
|
|
|
for (uint i = 0; i < unit.valueCount(); i++) |
|
|
|
{ |
|
|
|
coils.setBit((unit.value(i))); |
|
|
|
} |
|
|
|
return coils ; |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
void ModBusMaster::modbusReplyRecieved() |
|
|
|