update modbus

This commit is contained in:
2026-02-09 17:55:33 +08:00
parent 270141591e
commit fb4e311fbe
22 changed files with 4279 additions and 2075 deletions

View File

@@ -14,6 +14,11 @@
#define APP_LEAKAGE_SUB_DEVICE_NUM (32)
#define APP_LEAKAGE_SUB_DEVICE_CH_NUM (4)
void app_leakage_task(void);
void app_leakage_region_classify(void);
void history_add_alarm_record(u8 region_idx, u8 device_idx, u8 channel, u16 alarm_type, u16 leak_distance);
/*<2A><><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>*/
typedef struct
{
@@ -33,6 +38,8 @@ typedef struct
u16 state; /*״̬*/
u16 distance; /*©Һ<C2A9><D2BA><EFBFBD><EFBFBD>*/
}ch_data[APP_LEAKAGE_SUB_DEVICE_CH_NUM]; /*ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
u8 heartbeat; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-59ѭ<39><D1AD>*/
u8 test_mode; /*<2A><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-4=<3D><><EFBFBD>Զ<EFBFBD>Ӧͨ<D3A6><CDA8>*/
}app_leakage_sub_device_class_t;
@@ -47,6 +54,27 @@ typedef struct
u8 sub_device_index[APP_LEAKAGE_SUB_DEVICE_NUM]; /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
}app_leakage_region_data_class_t;
/* <20><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>ṹ */
typedef struct
{
u8 region_name[APP_LEAKAGE_STRING_NANE_LEN]; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
u8 device_id; /* <20>豸ID */
u8 device_name[APP_LEAKAGE_STRING_NANE_LEN]; /* <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
u16 alarm_type; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
u8 start_time[6]; /* <20><>ʼʱ<CABC><CAB1>: <20><>(2<>ֽ<EFBFBD>)<29><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> */
u16 leak_distance; /* ©Һ<C2A9><D2BA><EFBFBD><EFBFBD> (0<><30>ʾ<EFBFBD><CABE>©Һ<C2A9><D2BA><EFBFBD><EFBFBD>) */
u8 channel; /* ͨ<><CDA8><EFBFBD><EFBFBD> (0-3) */
} app_leakage_history_alarm_t;
/* <20><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ */
typedef struct
{
u32 total_records; /* <20>ܼ<EFBFBD>¼<EFBFBD><C2BC> */
u32 write_index; /* дָ<D0B4><D6B8> */
u32 read_index; /* <20><>ָ<EFBFBD><D6B8> */
u32 max_records; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC> */
} app_leakage_history_metadata_t;
typedef struct
{
u8 region_num;
@@ -54,9 +82,20 @@ typedef struct
app_leakage_region_data_class_t region_data[APP_LEAKAGE_SUB_DEVICE_NUM];
app_leakage_sub_device_class_t sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM];
app_leakage_history_metadata_t history_metadata;
void (*init)(void); /*<2A><>ʼ<EFBFBD><CABC>*/
void (*task)(void); /*ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
}app_leakage_t;
typedef struct
{
u8 (*read_history)(u32, app_leakage_history_alarm_t *);
void (*clean_history)(void);
void (*init_history)(void);
}app_hitory_t;
extern app_leakage_t leakage;
#endif
extern app_leakage_t *p_leakage;
extern app_hitory_t history;
#endif