mb.h 785 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef __MB_Hx__
  2. #define __MB_Hx__
  3. #include <stdint.h>
  4. #include "modbus.h"
  5. #include "datadef.h"
  6. enum {
  7. MB_MODE_MASTER=0,
  8. MB_MODE_SLAVE,
  9. };
  10. enum {
  11. MB_TYPE_RTU=0,
  12. MB_TYPE_TCP,
  13. };
  14. typedef struct {
  15. uint8_t type;
  16. uint8_t mode;
  17. mb_backend_param_t para;
  18. }mb_para_t;
  19. typedef int (*mb_fn_t)(void *data, int len);
  20. typedef struct {
  21. uint8_t rw; //0:read, 1:write
  22. uint16_t reg;
  23. uint16_t *data;
  24. uint32_t len;
  25. uint32_t time_e;
  26. }mb_data_t;
  27. void* mb_init(mb_para_t *para);
  28. int mb_deinit(void *h);
  29. int mb_setup(void *h, mb_para_t *para);
  30. int mb_read(void *h, uint8_t addr, uint16_t reg, uint16_t *data, int cnt, int timeout);
  31. int mb_write(void *h, uint8_t addr, uint16_t reg, uint16_t *data, int cnt);
  32. #endif