Commit e02f0a43244c46bc6695b16dc66e1fe596eb0f84
1 parent
c1a01312
Add check to enable RS485 functions only when available
Showing
2 changed files
with
6 additions
and
2 deletions
configure.ac
| @@ -127,6 +127,9 @@ if test "x$HAVE_WINSOCK2_H" = "xyes"; then | @@ -127,6 +127,9 @@ if test "x$HAVE_WINSOCK2_H" = "xyes"; then | ||
| 127 | AC_SUBST(LIBS) | 127 | AC_SUBST(LIBS) |
| 128 | fi | 128 | fi |
| 129 | 129 | ||
| 130 | +# Check for RS485 support (recent Linux kernels) | ||
| 131 | +AC_CHECK_DECLS([TIOCSRS485], [], [], [[#include <sys/ioctl.h>]]) | ||
| 132 | + | ||
| 130 | AC_CONFIG_FILES([ | 133 | AC_CONFIG_FILES([ |
| 131 | Makefile | 134 | Makefile |
| 132 | src/Makefile | 135 | src/Makefile |
src/modbus-rtu.c
| @@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
| 30 | #include "modbus-rtu.h" | 30 | #include "modbus-rtu.h" |
| 31 | #include "modbus-rtu-private.h" | 31 | #include "modbus-rtu-private.h" |
| 32 | 32 | ||
| 33 | -#if defined(linux) | 33 | +#if defined(HAVE_TIOCSRS485) |
| 34 | #include <sys/ioctl.h> | 34 | #include <sys/ioctl.h> |
| 35 | #include <linux/serial.h> | 35 | #include <linux/serial.h> |
| 36 | #endif | 36 | #endif |
| @@ -704,7 +704,8 @@ static int _modbus_rtu_connect(modbus_t *ctx) | @@ -704,7 +704,8 @@ static int _modbus_rtu_connect(modbus_t *ctx) | ||
| 704 | return 0; | 704 | return 0; |
| 705 | } | 705 | } |
| 706 | 706 | ||
| 707 | -#if defined(linux) | 707 | +#if defined(HAVE_TIOCSRS485) |
| 708 | +d | ||
| 708 | int modbus_rtu_set_serial_mode(modbus_t *ctx, int mode) | 709 | int modbus_rtu_set_serial_mode(modbus_t *ctx, int mode) |
| 709 | { | 710 | { |
| 710 | if (ctx->backend->backend_type == _MODBUS_BACKEND_TYPE_RTU) { | 711 | if (ctx->backend->backend_type == _MODBUS_BACKEND_TYPE_RTU) { |