diff --git a/src/modbus.c b/src/modbus.c index aeabae3..376f4fb 100644 --- a/src/modbus.c +++ b/src/modbus.c @@ -1046,26 +1046,16 @@ static int write_single(modbus_t *ctx, int function, int addr, int value) } /* Turns ON or OFF a single bit of the remote device */ -int modbus_write_bit(modbus_t *ctx, int addr, int state) +int modbus_write_bit(modbus_t *ctx, int addr, int status) { - int status; - - if (state) - state = 0xFF00; - - status = write_single(ctx, _FC_WRITE_SINGLE_COIL, addr, state); - - return status; + return write_single(ctx, _FC_WRITE_SINGLE_COIL, addr, + status ? 0xFF00 : 0); } /* Writes a value in one register of the remote device */ int modbus_write_register(modbus_t *ctx, int addr, int value) { - int status; - - status = write_single(ctx, _FC_WRITE_SINGLE_REGISTER, addr, value); - - return status; + return write_single(ctx, _FC_WRITE_SINGLE_REGISTER, addr, value); } /* Write the bits of the array in the remote device */ diff --git a/src/modbus.h b/src/modbus.h index c5509e9..794998f 100644 --- a/src/modbus.h +++ b/src/modbus.h @@ -160,7 +160,7 @@ int modbus_read_bits(modbus_t *ctx, int addr, int nb, uint8_t *dest); int modbus_read_input_bits(modbus_t *ctx, int addr, int nb, uint8_t *dest); int modbus_read_registers(modbus_t *ctx, int addr, int nb, uint16_t *dest); int modbus_read_input_registers(modbus_t *ctx, int addr, int nb, uint16_t *dest); -int modbus_write_bit(modbus_t *ctx, int coil_addr, int state); +int modbus_write_bit(modbus_t *ctx, int coil_addr, int status); int modbus_write_register(modbus_t *ctx, int reg_addr, int value); int modbus_write_bits(modbus_t *ctx, int addr, int nb, const uint8_t *data); int modbus_write_registers(modbus_t *ctx, int addr, int nb, const uint16_t *data);