22 #define MODBUS_BROADCAST_ADDRESS 0
29 #define MODBUS_MAX_READ_BITS 2000
30 #define MODBUS_MAX_WRITE_BITS 1968
39 #define MODBUS_MAX_READ_REGISTERS 125
40 #define MODBUS_MAX_WRITE_REGISTERS 123
41 #define MODBUS_MAX_WR_WRITE_REGISTERS 121
42 #define MODBUS_MAX_WR_READ_REGISTERS 125
49 #define MODBUS_MAX_PDU_LENGTH 253
55 #define MODBUS_RTU_MAX_ADU_LENGTH 256
92 void (*output)(uint8_t *data,
size_t data_length);
100 bool (*read_IX)(
size_t addr);
109 void (*write_OX)(
size_t addr,uint16_t data);
116 bool (*read_OX)(
size_t addr);
124 uint16_t (*read_hold_register)(
size_t addr);
132 void (*write_hold_register)(
size_t addr,uint16_t data);
140 uint16_t (*read_input_register)(
size_t addr);
172 void (*output)(uint8_t *data,
size_t data_length);
182 size_t (*request_reply)(uint8_t *data,
size_t data_length);
bool Modbus_Master_Read_OX(modbus_master_context_t *ctx, uint16_t start_addr, bool *data, size_t number, uint8_t *buff, size_t buff_length)
Modbus主机读取输出线圈
bool Modbus_Master_Write_Hold_Register(modbus_master_context_t *ctx, uint16_t start_addr, uint16_t *data, size_t number, uint8_t *buff, size_t buff_length)
Modbus主机写保持寄存器
bool Modbus_Master_Write_OX(modbus_master_context_t *ctx, uint16_t start_addr, bool *data, size_t number, uint8_t *buff, size_t buff_length)
Modbus主机写输出线圈
bool Modbus_Slave_Parse_Input(modbus_slave_context_t *ctx, uint8_t *input_data, size_t input_data_length, uint8_t *buff, size_t buff_length)
Modbus从机解析输入。 当从机接收到一帧数据后,调用此函数。 此函数会自动调用相关回调函数完成Modbus输出。
bool Modbus_Master_Read_IX(modbus_master_context_t *ctx, uint16_t start_addr, bool *data, size_t number, uint8_t *buff, size_t buff_length)
Modbus主机读取输入点
bool Modbus_Payload_Check_CRC(uint8_t *payload, size_t payload_length)
检查一帧数据的crc
bool Modbus_Master_Read_Input_Register(modbus_master_context_t *ctx, uint16_t start_addr, uint16_t *data, size_t number, uint8_t *buff, size_t buff_length)
Modbus主机读取输入寄存器
bool Modbus_Master_Read_Hold_Register(modbus_master_context_t *ctx, uint16_t start_addr, uint16_t *data, size_t number, uint8_t *buff, size_t buff_length)
Modbus主机读取保持寄存器
bool Modbus_Payload_Append_CRC(uint8_t *payload, size_t payload_length)
在数据帧末尾的添加crc校验