Skip to content

Commit 787e6ba

Browse files
committed
DRY on modbus_serial_set_slave
1 parent 5cf917d commit 787e6ba

File tree

4 files changed

+18
-33
lines changed

4 files changed

+18
-33
lines changed

src/modbus-ascii.c

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,6 @@
2121

2222
#include "modbus-serial-private.h"
2323

24-
/* Define the slave ID of the remote device to talk in master mode or set the
25-
* internal slave ID in slave mode */
26-
static int _modbus_set_slave(modbus_t *ctx, int slave)
27-
{
28-
/* Broadcast address is 0 (MODBUS_BROADCAST_ADDRESS) */
29-
if (slave >= 0 && slave <= 247) {
30-
ctx->slave = slave;
31-
} else {
32-
errno = EINVAL;
33-
return -1;
34-
}
35-
36-
return 0;
37-
}
38-
3924
static char nibble_to_hex_ascii(uint8_t nibble)
4025
{
4126
char c;
@@ -254,7 +239,7 @@ const modbus_backend_t _modbus_ascii_backend = {
254239
_MODBUS_ASCII_HEADER_LENGTH,
255240
_MODBUS_ASCII_CHECKSUM_LENGTH,
256241
MODBUS_ASCII_MAX_ADU_LENGTH,
257-
_modbus_set_slave,
242+
_modbus_serial_set_slave,
258243
_modbus_ascii_build_request_basis,
259244
_modbus_ascii_build_response_basis,
260245
_modbus_ascii_prepare_response_tid,

src/modbus-rtu.c

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -81,21 +81,6 @@ static const uint8_t table_crc_lo[] = {
8181
0x43, 0x83, 0x41, 0x81, 0x80, 0x40
8282
};
8383

84-
/* Define the slave ID of the remote device to talk in master mode or set the
85-
* internal slave ID in slave mode */
86-
static int _modbus_set_slave(modbus_t *ctx, int slave)
87-
{
88-
/* Broadcast address is 0 (MODBUS_BROADCAST_ADDRESS) */
89-
if (slave >= 0 && slave <= 247) {
90-
ctx->slave = slave;
91-
} else {
92-
errno = EINVAL;
93-
return -1;
94-
}
95-
96-
return 0;
97-
}
98-
9984
/* Builds a RTU request header */
10085
static int _modbus_rtu_build_request_basis(modbus_t *ctx, int function,
10186
int addr, int nb,
@@ -206,7 +191,7 @@ const modbus_backend_t _modbus_rtu_backend = {
206191
_MODBUS_RTU_HEADER_LENGTH,
207192
_MODBUS_RTU_CHECKSUM_LENGTH,
208193
MODBUS_RTU_MAX_ADU_LENGTH,
209-
_modbus_set_slave,
194+
_modbus_serial_set_slave,
210195
_modbus_rtu_build_request_basis,
211196
_modbus_rtu_build_response_basis,
212197
_modbus_rtu_prepare_response_tid,

src/modbus-serial-private.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ void _modbus_serial_close(modbus_t *ctx);
7979
int _modbus_serial_flush(modbus_t *ctx);
8080
int _modbus_serial_select(modbus_t *ctx, fd_set *rset, struct timeval *tv, int length_to_read);
8181

82+
int _modbus_serial_set_slave(modbus_t *ctx, int slave);
8283
void _modbus_serial_free(modbus_serial_t *serial_ctx);
8384
modbus_t* _modbus_serial_new(const modbus_backend_t *modbus_backend,
8485
const char *device, int baud, char parity, int data_bit, int stop_bit);

src/modbus-serial.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -985,6 +985,21 @@ int _modbus_serial_select(modbus_t *ctx, fd_set *rset,
985985
return s_rc;
986986
}
987987

988+
/* Define the slave ID of the remote device to talk in master mode or set the
989+
* internal slave ID in slave mode */
990+
int _modbus_serial_set_slave(modbus_t *ctx, int slave)
991+
{
992+
/* Broadcast address is 0 (MODBUS_BROADCAST_ADDRESS) */
993+
if (slave >= 0 && slave <= 247) {
994+
ctx->slave = slave;
995+
} else {
996+
errno = EINVAL;
997+
return -1;
998+
}
999+
1000+
return 0;
1001+
}
1002+
9881003
void _modbus_serial_free(modbus_serial_t *ctx_serial)
9891004
{
9901005
if (ctx_serial) {
@@ -1076,4 +1091,3 @@ modbus_t* _modbus_serial_new(const modbus_backend_t *modbus_backend, const char
10761091

10771092
return ctx;
10781093
}
1079-

0 commit comments

Comments
 (0)