MIGRATION 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. =============================================
  2. Migration notes from the 2.0 series (for 2.2)
  3. =============================================
  4. 1 - modbus_init_rtu/tcp takes a new argument: the slave and it is only required
  5. in that function (eg. read_coil_status doesn't receive the slave ID in
  6. argument anymore). If you need to use different slaves with the same
  7. connection (eg. RS485), you can copy modbus_param_t or set
  8. modbus_param_t.slave to a different value when required.
  9. 2 - modbus_init_listen_tcp() has been renamed to modbus_slave_listen_tcp() and
  10. requires a new argument, the maximal number of connections:
  11. int modbus_slave_init_tcp(modbus_param_t *mb_param, int nb_connection);
  12. 3 - New function modbus_slave_accept_tcp() to etablish a new connection
  13. (previously in modbus_init_listen_tcp()):
  14. int modbus_slave_accept_tcp(modbus_param_t *mb_param, int *socket);
  15. 4 - modbus_listen() has been renamed to modbus_slave_receive() and requires a
  16. new argument, the socket file descriptor to listen on. If the sockfd is -1,
  17. the internal fd of modbus_param_t is used:
  18. int modbus_slave_receive(modbus_param_t *mb_param, int sockfd,
  19. uint8_t *query, int *query_length);
  20. 5 - If you use the HEADER_LENGTH_ defines, their values have been incremented by
  21. 1 to reflect the PDU and ADU of the Modbus protocol and to reduce the CPU
  22. consumption:
  23. - HEADER_LENGTH_RTU 0 -> 1
  24. - HEADER_LENGTH_TCP 6 -> 7
  25. =============================================
  26. Migration notes from the 1.2 series (for 2.0)
  27. =============================================
  28. Init
  29. ====
  30. modbus_init_tcp requires a third new argument, the port number.
  31. modbus_init_tcp(modbus_param_t *mb_param, char *ip_address, int port)
  32. Set the port to MODBUS_TCP_DEFAULT_PORT to use the default one
  33. (502). It's convenient to use a port number greater than or equal to
  34. 1024 because it's not necessary to be root to use this port number.
  35. Pointers of data
  36. ================
  37. The coil and input status are now stored in an array of type uint8_t
  38. (in 1.2.X series, array of type int was used). So now, you need to
  39. pass a pointer of type uint8_t to use read_coil_status(), for example.
  40. The holding and input registers are now stored in an array of type
  41. uint16_t.
  42. These changes reduce the memory consumption.
  43. New functions
  44. =============
  45. report_slave_id
  46. modbus_set_error_handling
  47. modbus_mapping_new
  48. modbus_mapping_free
  49. modbus_init_listen_tcp
  50. modbus_listen
  51. modbus_manage_query
  52. get_slave_query_tcp
  53. set_bits_from_byte
  54. set_bits_from_bytes
  55. get_byte_from_bits
  56. Read modbus.h for more informations.