This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
sdk:scripts:modbus-tcp-rtu-gateway [2022/09/05 12:07] schmitt |
sdk:scripts:modbus-tcp-rtu-gateway [2022/11/08 07:48] (current) klueppel |
||
---|---|---|---|
Line 7: | Line 7: | ||
DEV = sprintf("SERIAL%d", (DEVIDX + 1)); | DEV = sprintf("SERIAL%d", (DEVIDX + 1)); | ||
TCP_PORT = 1502; | TCP_PORT = 1502; | ||
+ | DEBUG = 0; | ||
+ | |||
+ | |||
/* check serial port config */ | /* check serial port config */ | ||
Line 16: | Line 19: | ||
/* set attributes */ | /* set attributes */ | ||
- | ret = nb_serial_setattr(DEV, 19200, 8, 1, 0, 0); | + | ret = nb_serial_setattr(DEV, 115200, 8, 1, 0, 0); |
if (ret != 0) { | if (ret != 0) { | ||
nb_syslog("Could not set serial attributes: %d", ret); | nb_syslog("Could not set serial attributes: %d", ret); | ||
Line 58: | Line 61: | ||
exit(1); | exit(1); | ||
} | } | ||
+ | if (DEBUG == 1) { | ||
+ | nb_modbus_set_debug(serial_fd, true); | ||
+ | } | ||
printf("Listening for connections on port %d\n", TCP_PORT); | printf("Listening for connections on port %d\n", TCP_PORT); | ||
+ | |||
tcp_client = -1; | tcp_client = -1; | ||
registered = 0; | registered = 0; | ||
+ | |||
while (1) { | while (1) { | ||
Line 71: | Line 78: | ||
sleep(1); | sleep(1); | ||
continue; | continue; | ||
- | } | + | } else { |
+ | if (DEBUG == 1) { | ||
+ | nb_modbus_set_debug(tcp_client, true); | ||
+ | } | ||
+ | } | ||
} | } | ||
Line 100: | Line 111: | ||
nb_syslog("Unable to extract payload (%s)", nb_modbus_last_error()); | nb_syslog("Unable to extract payload (%s)", nb_modbus_last_error()); | ||
} else { | } else { | ||
+ | /* Modbus TCP - RTU must set the slave id */ | ||
+ | ret = nb_modbus_set_slave (serial_fd, payload[0]); | ||
+ | if (ret > 0) { | ||
+ | nb_syslog("Unable to set modbus slave id"); | ||
+ | break; | ||
+ | } | ||
+ | |||
response = nb_modbus_send_raw(serial_fd, payload); | response = nb_modbus_send_raw(serial_fd, payload); | ||
if (is_void(response)) { | if (is_void(response)) { |