irrigation_system/software/include/lib/modbus_registers.h

35 lines
1.4 KiB
C

#ifndef MODBUS_REGISTERS_H
#define MODBUS_REGISTERS_H
// Input Registers (Read-Only)
#define REG_INPUT_VALVE_STATE_MOVEMENT 0x0000
#define REG_INPUT_MOTOR_OPEN_CURRENT_MA 0x0001
#define REG_INPUT_MOTOR_CLOSE_CURRENT_MA 0x0002
#define REG_INPUT_DIGITAL_INPUTS_STATE 0x0020
#define REG_INPUT_BUTTON_EVENTS 0x0021
#define REG_INPUT_FIRMWARE_VERSION_MAJOR_MINOR 0x00F0
#define REG_INPUT_FIRMWARE_VERSION_PATCH 0x00F1
#define REG_INPUT_DEVICE_STATUS 0x00F2
#define REG_INPUT_UPTIME_SECONDS_LOW 0x00F3
#define REG_INPUT_UPTIME_SECONDS_HIGH 0x00F4
#define REG_INPUT_SUPPLY_VOLTAGE_MV 0x00F5
#define REG_INPUT_FWU_LAST_CHUNK_CRC 0x0100
// Holding Registers (Read-Write)
#define REG_HOLDING_VALVE_COMMAND 0x0000
#define REG_HOLDING_MAX_OPENING_TIME_S 0x0001
#define REG_HOLDING_MAX_CLOSING_TIME_S 0x0002
#define REG_HOLDING_END_CURRENT_THRESHOLD_OPEN_MA 0x0003
#define REG_HOLDING_END_CURRENT_THRESHOLD_CLOSE_MA 0x0004
#define REG_HOLDING_OBSTACLE_THRESHOLD_OPEN_MA 0x0005
#define REG_HOLDING_OBSTACLE_THRESHOLD_CLOSE_MA 0x0006
#define REG_HOLDING_DIGITAL_OUTPUTS_STATE 0x0010
#define REG_HOLDING_WATCHDOG_TIMEOUT_S 0x00F0
#define REG_HOLDING_DEVICE_RESET 0x00F1
#define REG_HOLDING_FWU_COMMAND 0x0100
#define REG_HOLDING_FWU_CHUNK_OFFSET_LOW 0x0101
#define REG_HOLDING_FWU_CHUNK_OFFSET_HIGH 0x0102
#define REG_HOLDING_FWU_CHUNK_SIZE 0x0103
#define REG_HOLDING_FWU_DATA_BUFFER 0x0180
#endif // MODBUS_REGISTERS_H