mb.h 962 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef __MB_Hx__
  2. #define __MB_Hx__
  3. #include <stdint.h>
  4. #include "modbus.h"
  5. #include "datadef.h"
  6. typedef int (*mb_fn_t)(void *data, int len);
  7. enum {
  8. MB_MODE_MASTER=0,
  9. MB_MODE_SLAVE,
  10. };
  11. enum {
  12. MB_TYPE_RTU=0,
  13. MB_TYPE_TCP,
  14. };
  15. enum {
  16. MB_ID_POWER=0,
  17. MB_ID_SENSOR,
  18. #if SUPPORT_CASCADE_QMODBUS
  19. MB_ID_CASCADE,
  20. #endif
  21. MB_ID_MAX,
  22. };
  23. typedef struct {
  24. uint8_t type;
  25. uint8_t mode;
  26. mb_backend_param_t para;
  27. }mb_para_t;
  28. int mb_init(void);
  29. int mb_deinit(void);
  30. int mb_deinit_n(uint8_t id);
  31. int mb_init_n(uint8_t id,mb_para_t *para);
  32. int mb_setup(int id, mb_para_t *para);
  33. int mb_read(int id, uint8_t addr, uint16_t reg, uint16_t *data, int cnt, int timeout);
  34. int mb_write(int id, uint8_t addr, uint16_t reg, uint16_t *data, int cnt);
  35. int mb_set_addr(int id, uint8_t addr);
  36. int mb_set_cb(int id, const mb_cb_table_t *tab);
  37. int mb_set_cascade_cb(int id, mb_cascade_fun_t *fn);
  38. int mb_slave_poll(int id);
  39. #endif