добавил gui

This commit is contained in:
2026-06-25 17:25:41 +03:00
parent cdd8fc3f71
commit 41a50a1d1e
19 changed files with 5696 additions and 32 deletions

View File

@@ -1,4 +1,4 @@
/**
/**
**************************************************************************
* @file modbus_data.h
* @brief Заголовочный файл с описанием даты MODBUS.
@@ -105,6 +105,21 @@
*
*/
#define mb_fill_rsv(_align_, _struct_) ((_align_ > mb_sizeof(_struct_)) ? (_align_ - mb_sizeof(_struct_)) : 0)
#define mb_fill_gap(_from_, _to_, _struct_) (((_to_) > ((_from_) + mb_sizeof(_struct_))) ? ((_to_) - (_from_) - mb_sizeof(_struct_)) : 0)
#define R_INPUT_ROOM_ADDR 400
#define R_INPUT_ID_ADDR 1000
#define R_INPUT_NUM_TSENS_ADDR 1200
#define R_HOLDING_HYST_ADDR 100
#define R_HOLDING_ROOM_ADDR 300
#define MB_ROOM_TEMP_SCALE 10U
#define MB_ROOM_VALVE_ANGLE_MAX_DEFAULT 90U
#define ROOM_MODE_AUTO 0U
#define ROOM_MODE_MANUAL 1U
#define ROOM_COMMAND_STOP 0U
#define ROOM_COMMAND_OPEN 1U
#define ROOM_COMMAND_CLOSE 2U
@@ -124,6 +139,38 @@ typedef __PACKED_STRUCT
uint16_t status;
} MB_RtcCalendarRegsTypeDef;
typedef __PACKED_STRUCT
{
uint16_t channel;
uint16_t location;
uint16_t ds18b20_id[4];
uint16_t temperature_x10;
uint16_t setpoint_x10;
uint16_t hysteresis_x10;
uint16_t valve_position_pct;
uint16_t valve_angle_deg;
uint16_t valve_angle_max_deg;
uint16_t is_connected;
uint16_t valve_open;
uint16_t valve_close;
uint16_t mode;
uint16_t command_state;
uint16_t reserved;
} MB_RoomInputRegsTypeDef;
typedef __PACKED_STRUCT
{
uint16_t setpoint_x10;
uint16_t hysteresis_x10;
uint16_t valve_position_pct;
uint16_t valve_angle_max_deg;
uint16_t mode;
uint16_t command;
uint16_t location;
uint16_t apply;
} MB_RoomHoldingRegsTypeDef;
@@ -132,9 +179,11 @@ typedef __PACKED_STRUCT//MB_DataInRegsTypeDef
{
uint16_t sens_Temp[MAX_SENSE];
uint16_t reserve[mb_fill_rsv(1000, uint16_t[MAX_SENSE])];
uint16_t reserve_to_room[mb_fill_rsv(R_INPUT_ROOM_ADDR, uint16_t[MAX_SENSE])];
MB_RoomInputRegsTypeDef room[MAX_SENSE];
uint16_t reserve_to_id[mb_fill_gap(R_INPUT_ROOM_ADDR, R_INPUT_ID_ADDR, MB_RoomInputRegsTypeDef[MAX_SENSE])];
DS18B20_Drv_t ID;
uint16_t reserve1[mb_fill_rsv(200, DS18B20_Drv_t)];
uint16_t reserve_to_num_tsens[mb_fill_gap(R_INPUT_ID_ADDR, R_INPUT_NUM_TSENS_ADDR, DS18B20_Drv_t)];
uint16_t num_Tsens;
MB_RtcCalendarRegsTypeDef rtc;
@@ -148,10 +197,12 @@ typedef __PACKED_STRUCT//MB_DataInRegsTypeDef
typedef __PACKED_STRUCT //MB_DataInRegsTypeDef
{
uint16_t set_Temp[MAX_SENSE];
uint16_t reserve[mb_fill_rsv(100, uint16_t[MAX_SENSE])];
uint16_t reserve_to_hyst[mb_fill_rsv(R_HOLDING_HYST_ADDR, uint16_t[MAX_SENSE])];
uint16_t set_hyst[MAX_SENSE];
uint16_t reserve1[mb_fill_rsv(100, uint16_t[MAX_SENSE])];
uint16_t reserve_to_rtc[mb_fill_gap(R_HOLDING_HYST_ADDR, R_HOLDING_RTC_ADDR, uint16_t[MAX_SENSE])];
MB_RtcCalendarRegsTypeDef rtc;
uint16_t reserve_to_room_cfg[mb_fill_gap(R_HOLDING_RTC_ADDR, R_HOLDING_ROOM_ADDR, MB_RtcCalendarRegsTypeDef)];
MB_RoomHoldingRegsTypeDef room_cfg[MAX_SENSE];
} MB_DataHoldRegsTypeDef;