Browse Source

Change arg value from int to const uint16_t in modbus_write_register

Closes #461
Stéphane Raimbault 5 years ago
parent
commit
862af10b98
3 changed files with 5 additions and 5 deletions
  1. 1 1
      doc/modbus_write_register.txt
  2. 3 3
      src/modbus.c
  3. 1 1
      src/modbus.h

+ 1 - 1
doc/modbus_write_register.txt

@@ -9,7 +9,7 @@ modbus_write_register - write a single register
 
 SYNOPSIS
 --------
-*int modbus_write_register(modbus_t *'ctx', int 'addr', int 'value');*
+*int modbus_write_register(modbus_t *'ctx', int 'addr', const uint16_t 'value');*
 
 
 DESCRIPTION

+ 3 - 3
src/modbus.c

@@ -1238,7 +1238,7 @@ int modbus_read_input_registers(modbus_t *ctx, int addr, int nb,
 
 /* Write a value to the specified register of the remote device.
    Used by write_bit and write_register */
-static int write_single(modbus_t *ctx, int function, int addr, int value)
+static int write_single(modbus_t *ctx, int function, int addr, const uint16_t value)
 {
     int rc;
     int req_length;
@@ -1249,7 +1249,7 @@ static int write_single(modbus_t *ctx, int function, int addr, int value)
         return -1;
     }
 
-    req_length = ctx->backend->build_request_basis(ctx, function, addr, value, req);
+    req_length = ctx->backend->build_request_basis(ctx, function, addr, (int) value, req);
 
     rc = send_msg(ctx, req, req_length);
     if (rc > 0) {
@@ -1279,7 +1279,7 @@ int modbus_write_bit(modbus_t *ctx, int addr, int status)
 }
 
 /* Writes a value in one register of the remote device */
-int modbus_write_register(modbus_t *ctx, int addr, int value)
+int modbus_write_register(modbus_t *ctx, int addr, const uint16_t value)
 {
     if (ctx == NULL) {
         errno = EINVAL;

+ 1 - 1
src/modbus.h

@@ -208,7 +208,7 @@ MODBUS_API int modbus_read_input_bits(modbus_t *ctx, int addr, int nb, uint8_t *
 MODBUS_API int modbus_read_registers(modbus_t *ctx, int addr, int nb, uint16_t *dest);
 MODBUS_API int modbus_read_input_registers(modbus_t *ctx, int addr, int nb, uint16_t *dest);
 MODBUS_API int modbus_write_bit(modbus_t *ctx, int coil_addr, int status);
-MODBUS_API int modbus_write_register(modbus_t *ctx, int reg_addr, int value);
+MODBUS_API int modbus_write_register(modbus_t *ctx, int reg_addr, const uint16_t value);
 MODBUS_API int modbus_write_bits(modbus_t *ctx, int addr, int nb, const uint8_t *data);
 MODBUS_API int modbus_write_registers(modbus_t *ctx, int addr, int nb, const uint16_t *data);
 MODBUS_API int modbus_mask_write_register(modbus_t *ctx, int addr, uint16_t and_mask, uint16_t or_mask);