mb.h 932 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. MB_ID_CASCADE,
  19. MB_ID_MAX,
  20. };
  21. typedef struct {
  22. uint8_t type;
  23. uint8_t mode;
  24. mb_backend_param_t para;
  25. }mb_para_t;
  26. int mb_init(void);
  27. int mb_deinit(void);
  28. int mb_deinit_n(uint8_t id);
  29. int mb_init_n(uint8_t id,mb_para_t *para);
  30. int mb_setup(int id, mb_para_t *para);
  31. int mb_read(int id, uint8_t addr, uint16_t reg, uint16_t *data, int cnt, int timeout);
  32. int mb_write(int id, uint8_t addr, uint16_t reg, uint16_t *data, int cnt);
  33. int mb_set_addr(int id, uint8_t addr);
  34. int mb_set_cb(int id, const mb_cb_table_t *tab);
  35. int mb_set_cascade_cb(int id, mb_cascade_fun_t *fn);
  36. int mb_slave_poll(int id);
  37. #endif