update:
设备屏蔽功能 适配新版界面
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include "bsp_w25q.h"
|
||||
#include "bsp_buzzer.h"
|
||||
#include "bsp_relay.h"
|
||||
#include "bsp_DS1302.h"
|
||||
|
||||
static void history_clear_all(void);
|
||||
static u8 history_read_record(u32 record_index, app_leakage_history_alarm_t *record);
|
||||
@@ -32,6 +33,11 @@ app_hitory_t history =
|
||||
|
||||
static void app_leakage_init(void)
|
||||
{
|
||||
// for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
|
||||
// {
|
||||
// memset(leakage.sub_device_data[i].ch_data, 0,
|
||||
// sizeof(leakage.sub_device_data[i].ch_data));
|
||||
// }
|
||||
app_leakage_region_classify();
|
||||
}
|
||||
|
||||
@@ -61,7 +67,7 @@ void app_leakage_region_classify(void)
|
||||
if(0 == memcmp(p_leakage->region_data[j].name,p_leakage->sub_device_data[i].flash_data.region_name, APP_LEAKAGE_STRING_NANE_LEN))/*名称相同*/
|
||||
{
|
||||
/*添加子设备*/
|
||||
p_leakage->region_data[j].sub_device_index[p_leakage->region_data[j].leakage_num] = i;/*绑定子设备索引*/
|
||||
p_leakage->region_data[j].sub_device_index[p_leakage->region_data[j].sub_device_num] = i;/*绑定子设备索引*/
|
||||
p_leakage->region_data[j].sub_device_num++; /*区域中子系统数据++*/
|
||||
add_region_flag = 0;/*不添加新区域*/
|
||||
break;
|
||||
@@ -72,10 +78,13 @@ void app_leakage_region_classify(void)
|
||||
if(add_region_flag)/*添加新区域*/
|
||||
{
|
||||
/*复制名称*/
|
||||
memcpy(p_leakage->region_data[p_leakage->region_num].name,p_leakage->sub_device_data[i].flash_data.region_name, APP_LEAKAGE_STRING_NANE_LEN);
|
||||
p_leakage->region_data[p_leakage->region_num].sub_device_index[p_leakage->region_data[p_leakage->region_num].leakage_num] = i;/*绑定子设备索引*/
|
||||
p_leakage->region_data[p_leakage->region_num].sub_device_num++; /*区域中子系统数据++*/
|
||||
p_leakage->region_num++; /*区域数量++*/
|
||||
memcpy(p_leakage->region_data[p_leakage->region_num].name,
|
||||
p_leakage->sub_device_data[i].flash_data.region_name,
|
||||
APP_LEAKAGE_STRING_NANE_LEN);
|
||||
// 第一个设备索引为0
|
||||
p_leakage->region_data[p_leakage->region_num].sub_device_index[0] = i;
|
||||
p_leakage->region_data[p_leakage->region_num].sub_device_num = 1;
|
||||
p_leakage->region_num++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -153,6 +162,12 @@ void app_leakage_task(void)
|
||||
continue;
|
||||
}
|
||||
|
||||
/* 检查设备是否屏蔽 */
|
||||
if(p_leakage->sub_device_data[sub_device_index].flash_data.shield != UNBLOCKED)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/*历史报警存储*/
|
||||
for(k = 0; k < APP_LEAKAGE_SUB_DEVICE_CH_NUM; k++)
|
||||
{
|
||||
@@ -195,6 +210,7 @@ void app_leakage_task(void)
|
||||
{
|
||||
p_leakage->region_data[i].time_out_num++;
|
||||
p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
|
||||
break;
|
||||
}
|
||||
else if(current_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
|
||||
{
|
||||
@@ -204,7 +220,7 @@ void app_leakage_task(void)
|
||||
else if(current_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
|
||||
{
|
||||
p_leakage->region_data[i].leakage_num++;
|
||||
p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_OPEN;
|
||||
p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,21 +233,15 @@ void app_leakage_task(void)
|
||||
/* 获取当前时间 */
|
||||
static void get_current_time(u8 *time_buffer)
|
||||
{
|
||||
// RTC_TimeTypeDef sTime;
|
||||
// RTC_DateTypeDef sDate;
|
||||
//
|
||||
// /* 获取RTC时间 */
|
||||
// HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN);
|
||||
// HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);
|
||||
//
|
||||
// /* 年: 2字节 (例如: 2024 -> 0x07 0xE8) */
|
||||
// uint16_t year = 2000 + sDate.Year; /* RTC年份通常从2000开始 */
|
||||
// time_buffer[0] = (year >> 8) & 0xFF; /* 高字节 */
|
||||
// time_buffer[1] = year & 0xFF; /* 低字节 */
|
||||
// time_buffer[2] = sDate.Month; /* 月 */
|
||||
// time_buffer[3] = sDate.Date; /* 日 */
|
||||
// time_buffer[4] = sTime.Hours; /* 时 */
|
||||
// time_buffer[5] = sTime.Minutes; /* 分 */
|
||||
/* 年: 2字节 (例如: 2024 -> 0x07 0xE8) */
|
||||
uint16_t year = 2000 + DS1302.Time.Year; /* RTC年份通常从2000开始 */
|
||||
time_buffer[0] = (year >> 8) & 0xFF; /* 高字节 */
|
||||
time_buffer[1] = year & 0xFF; /* 低字节 */
|
||||
time_buffer[2] = DS1302.Time.Month; /* 月 */
|
||||
time_buffer[3] = DS1302.Time.Day; /* 日 */
|
||||
time_buffer[4] = DS1302.Time.Hour; /* 时 */
|
||||
time_buffer[5] = DS1302.Time.Minute; /* 分 */
|
||||
time_buffer[6] = DS1302.Time.Second; /* 秒 */
|
||||
}
|
||||
|
||||
/* 从Flash读取历史报警元数据 */
|
||||
|
||||
Reference in New Issue
Block a user