#ifndef __MB_Hx__ #define __MB_Hx__ #include #include "modbus.h" #include "datadef.h" typedef int (*mb_fn_t)(void *data, int len); enum { MB_MODE_MASTER=0, MB_MODE_SLAVE, }; enum { MB_TYPE_RTU=0, MB_TYPE_TCP, }; enum { MB_ID_POWER=0, MB_ID_SENSOR, MB_ID_CASCADE, MB_ID_MAX, }; typedef struct { uint8_t type; uint8_t mode; mb_backend_param_t para; }mb_para_t; int mb_init(void); int mb_deinit(void); int mb_setup(int id, mb_para_t *para); int mb_read(int id, uint8_t addr, uint16_t reg, uint16_t *data, int cnt, int timeout); int mb_write(int id, uint8_t addr, uint16_t reg, uint16_t *data, int cnt); int mb_set_addr(int id, uint8_t addr); int mb_set_cb(int id, const mb_cb_table_t *tab); int mb_set_cascade_cb(int id, mb_cascade_fun_t *fn); int mb_slave_poll(int id); #endif