From ddbd7266bec465d6293f46de9c8c2f669f238613 Mon Sep 17 00:00:00 2001 From: Stéphane Raimbault Date: Tue, 2 Nov 2010 21:56:00 +0100 Subject: [PATCH] Fix to allow the setting of the broadcast address --- NEWS | 1 + src/modbus-rtu.c | 3 ++- src/modbus-tcp.c | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 21c291b..e800991 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ libmodbus 2.9.2 (2010-10-XX) ============================ +- Fix setting of the broadcast address - Remove slave argument from modbus_new_rtu() - Win32 support by Tobias Doerffel - Split source code around RTU and TCP (backends) diff --git a/src/modbus-rtu.c b/src/modbus-rtu.c index 27be1f1..48747b9 100644 --- a/src/modbus-rtu.c +++ b/src/modbus-rtu.c @@ -92,7 +92,8 @@ static const uint8_t table_crc_lo[] = { * internal slave ID in slave mode */ static int _modbus_set_slave(modbus_t *ctx, int slave) { - if (slave >= 1 && slave <= 247) { + /* Broadcast address is 0 (MODBUS_BROADCAST_ADDRESS) */ + if (slave >= 0 && slave <= 247) { ctx->slave = slave; } else { errno = EINVAL; diff --git a/src/modbus-tcp.c b/src/modbus-tcp.c index af26b9b..69c7024 100644 --- a/src/modbus-tcp.c +++ b/src/modbus-tcp.c @@ -72,7 +72,8 @@ static int _modbus_tcp_init_win32(void) static int _modbus_set_slave(modbus_t *ctx, int slave) { - if (slave >= 1 && slave <= 247) { + /* Broadcast address is 0 (MODBUS_BROADCAST_ADDRESS) */ + if (slave >= 0 && slave <= 247) { ctx->slave = slave; } else if (slave == MODBUS_TCP_SLAVE) { /* The special value MODBUS_TCP_SLAVE (0xFF) can be used in TCP mode to -- libgit2 0.21.4