master minor fixes examples and documentation v2

This commit is contained in:
Alex Lisitsyn
2025-08-26 14:01:20 +01:00
parent 4daca2f250
commit 5cca75e606
3 changed files with 16 additions and 15 deletions

View File

@@ -80,11 +80,12 @@ There are three ways to configure how the master example will obtain slave IP ad
* Configure slave addresses manually as below:
```
char* slave_ip_address_table[MB_DEVICE_COUNT] = {
"192.168.1.21", // Address corresponds to MB_DEVICE_ADDR1 and set to predefined value by user
"192.168.1.22", // Address corresponds to MB_DEVICE_ADDR2 of slave device in the Modbus data dictionary
NULL // Marker of end of list
"01;192.168.1.21", // Address corresponds to UID (slave address) = MB_DEVICE_ADDR1 and set to predefined value by user
"02;192.168.1.22", // Address corresponds to MB_DEVICE_ADDR2 of slave device in the Modbus data dictionary
NULL // End of list marker (Must be provided!)
};
```
In the above notation the port option will be treated by default = `CONFIG_FMB_TCP_PORT_DEFAULT` kconfig value. The port can be specified explicitly for each slave as "01;192.168.1.21;1502".
### Setup external Modbus slave devices or emulator
Option 1:

View File

@@ -482,8 +482,8 @@ int port_scan_addr_string(char *buffer, mb_uid_info_t *info_ptr)
#if CONFIG_LWIP_IPV6
// Configuration format:
// "12:2001:0db8:85a3:0000:0000:8a2e:0370:7334:502"
// "12:2001:0db8:85a3:0000:0000:8a2e:0370:7334"
// "12;2001:0db8:85a3:0000:0000:8a2e:0370:7334;502"
// "12;2001:0db8:85a3:0000:0000:8a2e:0370:7334"
ret = sscanf(buffer, "%" PRIu16 ";" IPV6STR ";%" PRIu16, &index, &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7], &port);
if ((ret == MB_STR_LEN_IDX_IP6) || (ret == MB_STR_LEN_IDX_IP6_PORT)) {
if (-1 == asprintf(&host_str, IPV6STR, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7])) {
@@ -508,7 +508,7 @@ int port_scan_addr_string(char *buffer, mb_uid_info_t *info_ptr)
}
info_ptr->node_name_str = host_str;
info_ptr->ip_addr_str = host_str;
info_ptr->uid = 0;
info_ptr->uid = 1;
info_ptr->fd = UNDEF_FD;
info_ptr->port = CONFIG_FMB_TCP_PORT_DEFAULT;
info_ptr->addr_type = MB_IPV6;
@@ -525,7 +525,7 @@ int port_scan_addr_string(char *buffer, mb_uid_info_t *info_ptr)
}
info_ptr->node_name_str = host_str;
info_ptr->ip_addr_str = host_str;
info_ptr->uid = 0;
info_ptr->uid = 1;
info_ptr->fd = UNDEF_FD;
info_ptr->port = CONFIG_FMB_TCP_PORT_DEFAULT;
info_ptr->addr_type = MB_IPV4;
@@ -534,7 +534,7 @@ int port_scan_addr_string(char *buffer, mb_uid_info_t *info_ptr)
}
// Configuration format:
// "1:192.168.1.1:502"
// "1;192.168.1.1;502"
ret = sscanf(buffer, "%" PRIu16 ";"IPSTR";%" PRIu16, &index, &a[0], &a[1], &a[2], &a[3], &port);
if ((ret == MB_STR_LEN_IDX_IP4_PORT) || (ret == MB_STR_LEN_IDX_IP4)) {
if (-1 == asprintf(&host_str, IPSTR, a[0], a[1], a[2], a[3])) {
@@ -551,7 +551,7 @@ int port_scan_addr_string(char *buffer, mb_uid_info_t *info_ptr)
}
// Configuration format:
// "01:mb_node_tcp_01:502"
// "01;mb_node_tcp_01;502"
ret = sscanf(buffer, "%" PRIu16 ";%m[a-z0-9_];%" PRIu16, &index, &host_str, &port);
if ((ret == MB_STR_LEN_HOST) || (ret == MB_STR_LEN_IDX_HOST_PORT)) {
info_ptr->node_name_str = (host_str && strlen(host_str)) ? host_str : info_ptr->node_name_str;

View File

@@ -62,14 +62,14 @@ extern "C" {
#define MB_MDNS_QUERY_TIME_MS (2000)
#define MB_STR_LEN_HOST 1 // "mb_node_tcp_01"
#define MB_STR_LEN_IDX_HOST 2 // "12:mb_node_tcp_01"
#define MB_STR_LEN_IDX_HOST_PORT 3 // "01:mb_node_tcp_01:1502"
#define MB_STR_LEN_IDX_HOST 2 // "12;mb_node_tcp_01"
#define MB_STR_LEN_IDX_HOST_PORT 3 // "01;mb_node_tcp_01;1502"
#define MB_STR_LEN_IP4_ONLY 4 // "192.168.1.1"
#define MB_STR_LEN_IDX_IP4 5 // "1:192.168.1.1"
#define MB_STR_LEN_IDX_IP4_PORT 6 // "1:192.168.1.1:502"
#define MB_STR_LEN_IDX_IP4 5 // "1;192.168.1.1"
#define MB_STR_LEN_IDX_IP4_PORT 6 // "1;192.168.1.1;502"
#define MB_STR_LEN_IP6_ONLY 8 // "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
#define MB_STR_LEN_IDX_IP6 9 // "12:2001:0db8:85a3:0000:0000:8a2e:0370:7334"
#define MB_STR_LEN_IDX_IP6_PORT 10 // "12:2001:0db8:85a3:0000:0000:8a2e:0370:7334:502"
#define MB_STR_LEN_IDX_IP6 9 // "12;2001:0db8:85a3:0000:0000:8a2e:0370:7334"
#define MB_STR_LEN_IDX_IP6_PORT 10 // "12;2001:0db8:85a3:0000:0000:8a2e:0370:7334;502"
#define MB_MDNS_STR_MIN_LENGTH 10 // "mb_node_01"
#define MB_MDNS_SEGMENT_NAME "mb_tcp_segment" // "mb_node_01"