37 lines
752 B
C
37 lines
752 B
C
|
#ifndef _MODBUS_REG_H
|
||
|
#define _MODBUS_REG_H
|
||
|
|
||
|
|
||
|
#include <stdint.h>
|
||
|
|
||
|
#define MODBUS_REG_DEFAULT_VAL 0xFFFFFFFF
|
||
|
#define RW_REGISTERS_MAXNUM 125
|
||
|
#define MODBUS_REG_BLOCK_NUM 1
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
uint8_t block_id;
|
||
|
uint32_t address;
|
||
|
uint16_t size;
|
||
|
} ModbusRegDataBlock_t;
|
||
|
|
||
|
typedef enum {
|
||
|
RW_OPERATION_READ,
|
||
|
RW_OPERATION_WRITE
|
||
|
} ModbusRegOp_t;
|
||
|
|
||
|
typedef struct {
|
||
|
uint8_t slaveId; /* 从机地址 */
|
||
|
ModbusRegOp_t operation; /* 操作类型 */
|
||
|
uint16_t startAddr; /* 起始地址 */
|
||
|
uint8_t num; /* 寄存器个数 */
|
||
|
uint16_t registers[RW_REGISTERS_MAXNUM]; /* 寄存器数据 */
|
||
|
}ModbusRegRwData_t;
|
||
|
|
||
|
/* public funtion prototype. */
|
||
|
uint8_t modbus_reg_proxy(ModbusRegRwData_t * rw_data);
|
||
|
|
||
|
#endif
|