use of com.ghgande.j2mod.modbus.procimg.SimpleRegister in project SmartApplianceEnabler by camueller.
the class WriteHoldingRegisterExecutorImpl method execute.
@Override
public void execute(TCPMasterConnection con, int slaveAddress) throws ModbusException {
logger.debug("{}: Write holding register={} value={}", getApplianceId(), getAddress(), this.value);
Integer factoredValue = factorToValue != null ? Double.valueOf(this.value * this.factorToValue).intValue() : this.value;
logger.debug("{}: Write holding register={} factoredValue={}", getApplianceId(), getAddress(), factoredValue);
SimpleRegister register = new SimpleRegister(factoredValue);
WriteSingleRegisterRequest req = new WriteSingleRegisterRequest(getAddress(), register);
req.setUnitID(slaveAddress);
ModbusTCPTransaction trans = new ModbusTCPTransaction(con);
trans.setRequest(req);
trans.execute();
WriteSingleRegisterResponse res = (WriteSingleRegisterResponse) trans.getResponse();
if (res != null) {
this.result = res.getRegisterValue();
logger.debug("{}: Write holding register={} confirmedValue={}", getApplianceId(), getAddress(), this.result);
} else {
logger.error("{}: No response received: register={} value={} ", getApplianceId(), getAddress(), factoredValue);
}
}
Aggregations