============================================= Migration notes from the 2.0 series (for 2.2) ============================================= 1 - modbus_init_rtu/tcp takes a new argument, the slave number of the device which established the connection. 2 - modbus_init_listen_tcp() has been renamed to modbus_slave_listen_tcp() and requires a new argument, the maximal number of connections: int modbus_slave_init_tcp(modbus_param_t *mb_param, int nb_connection); 3 - New function modbus_slave_accept_tcp() to etablish a new connection (previously in modbus_init_listen_tcp()): int modbus_slave_accept_tcp(modbus_param_t *mb_param, int *socket); 4 - modbus_listen() has been renamed to modbus_slave_receive() and requires a new argument, the socket file descriptor to listen on. If the sockfd is -1, the internal fd of modbus_param_t is used: int modbus_slave_receive(modbus_param_t *mb_param, int sockfd, uint8_t *query, int *query_length); 5 - If you use the HEADER_LENGTH_ defines, their values have been incremented by 1 to reflect the PDU and ADU of the Modbus protocol and to reduce the CPU consumption: - HEADER_LENGTH_RTU 0 -> 1 - HEADER_LENGTH_TCP 6 -> 7 6 - modbus_mapping_new returns 0 on success and -1 on failure. ============================================= Migration notes from the 1.2 series (for 2.0) ============================================= Init ==== modbus_init_tcp requires a third new argument, the port number. modbus_init_tcp(modbus_param_t *mb_param, char *ip_address, int port) Set the port to MODBUS_TCP_DEFAULT_PORT to use the default one (502). It's convenient to use a port number greater than or equal to 1024 because it's not necessary to be root to use this port number. Pointers of data ================ The coil and input status are now stored in an array of type uint8_t (in 1.2.X series, array of type int was used). So now, you need to pass a pointer of type uint8_t to use read_coil_status(), for example. The holding and input registers are now stored in an array of type uint16_t. These changes reduce the memory consumption.