#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