Search in sources :

Example 1 with SimpleRegister

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);
    }
}
Also used : ModbusTCPTransaction(com.ghgande.j2mod.modbus.io.ModbusTCPTransaction) SimpleRegister(com.ghgande.j2mod.modbus.procimg.SimpleRegister)

Aggregations

ModbusTCPTransaction (com.ghgande.j2mod.modbus.io.ModbusTCPTransaction)1 SimpleRegister (com.ghgande.j2mod.modbus.procimg.SimpleRegister)1