update
This commit is contained in:
99
leakage_system/usr/app/app_alarm.h
Normal file
99
leakage_system/usr/app/app_alarm.h
Normal file
@@ -0,0 +1,99 @@
|
||||
#ifndef _APP_ALARM_H_
|
||||
#define _APP_ALARM_H_
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#define ENABLE (1)
|
||||
#define DISABLE (0)
|
||||
|
||||
#define APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE (0x0001) /*©Һ״̬*/
|
||||
#define APP_LEAKAGE_SUB_DEVICE_STATE_OPEN (0x0002) /*<2A>ϴ<EFBFBD>״̬*/
|
||||
#define APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT (0xf000) /*ͨѶ<CDA8><D1B6>ʱ*/
|
||||
|
||||
#define APP_LEAKAGE_STRING_NANE_LEN (10)
|
||||
#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
|
||||
{
|
||||
u8 state; /*״̬ ʹ<><CAB9> <20><>ʹ<EFBFBD><CAB9>*/
|
||||
u8 com_port; /*<2A>˿<EFBFBD>*/
|
||||
u8 modbus_id; /*modbus id*/
|
||||
u8 device_name[APP_LEAKAGE_STRING_NANE_LEN]; /*<2A>豸<EFBFBD><E8B1B8>*/
|
||||
u8 region_name[APP_LEAKAGE_STRING_NANE_LEN]; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
}app_leakage_sub_device_flash_data_t;
|
||||
|
||||
/*<2A><><EFBFBD>豸<EFBFBD><E8B1B8>Ϣ*/
|
||||
typedef struct
|
||||
{
|
||||
app_leakage_sub_device_flash_data_t flash_data; /*flash<73>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>*/
|
||||
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;
|
||||
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ*/
|
||||
typedef struct
|
||||
{
|
||||
u8 leakage_num; /*©Һ<C2A9><D2BA><EFBFBD><EFBFBD>*/
|
||||
u8 open_num; /*<2A>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
u8 time_out_num; /*ͨѶ<CDA8><D1B6>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>*/
|
||||
u8 sub_device_num; /*<2A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
u8 name[APP_LEAKAGE_STRING_NANE_LEN]; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
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;
|
||||
u8 sub_device_num;
|
||||
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_hitory_t history;
|
||||
#endif
|
||||
Reference in New Issue
Block a user