From 30490bf41b0627509882dd5ed05dcb826927a7a4 Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Sat, 29 Jun 2024 14:35:32 +0800 Subject: [PATCH] =?utf8?q?=E8=A1=A5=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../battery/service/battery_driver.cpp | 29 +++++++++++++++---- .../include/AlarmClockTimerConfig.h | 12 +++++++- .../src/AlarmClockTimerConfig.cpp | 26 ++++++++++++----- 3 files changed, 52 insertions(+), 15 deletions(-) diff --git a/code/sdk/application/battery/service/battery_driver.cpp b/code/sdk/application/battery/service/battery_driver.cpp index cd83fd74b..25b050acf 100644 --- a/code/sdk/application/battery/service/battery_driver.cpp +++ b/code/sdk/application/battery/service/battery_driver.cpp @@ -450,6 +450,8 @@ static int battery_get_power_percentage(float voltage) static void get_avg_voltage(float *vol) { uint32_t current_time = 0; + float max_vol = 0; + float min_vol = 0; uapi_get_timestampe_ss(¤t_time); if(history_time == 0) history_time = current_time; @@ -459,24 +461,39 @@ static void get_avg_voltage(float *vol) if(sample_time >= 10) { sample_time = 0; - if(vol_num == 5) + if(vol_num == 7) { sum_vol -= history_data[left]; history_data[left] = 0; left++; - left = left % 5; + left = left % 7; vol_num--; } vol_num++; right++; - right = right % 5; + right = right % 7; history_data[right] = *vol; sum_vol += history_data[right]; } - if(vol_num != 0) - *vol = sum_vol / vol_num; - + if(vol_num > 0) + { + if(vol_num > 2) + { + min_vol = history_data[0]; + max_vol = history_data[0]; + for (int i = 0;i < vol_num; i++) + { + if (history_data[i] < min_vol) + min_vol = history_data[i]; + if (history_data[i] > max_vol) + max_vol = history_data[i]; + } + *vol = (sum_vol - max_vol - min_vol) / (vol_num - 2); + } + else + *vol = sum_vol / vol_num; + } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/include/AlarmClockTimerConfig.h b/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/include/AlarmClockTimerConfig.h index 5c6376744..b799dcb46 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/include/AlarmClockTimerConfig.h +++ b/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/include/AlarmClockTimerConfig.h @@ -1,3 +1,13 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2024-06-07 11:18:25 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2024-06-29 14:34:23 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/include/AlarmClockTimerConfig.h + * @Description: + * + * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. + */ /* * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. * Description: AlarmClockTimer @@ -56,7 +66,7 @@ int32_t AlarmTimerInit(void); int32_t SetZeroAlarm(void); int32_t SetAlarm(AlarmType type, uint8_t week, uint8_t hour, uint8_t minute); int32_t AlarmGetCurrentTimeInfo(struct tm *timeInfo); - +void set_sleep_and_wake_time(void); #ifdef __cplusplus } #endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp b/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp index 2e67d8c95..935aa7abe 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp @@ -28,6 +28,15 @@ static AlarmCtrl g_alarmCtrA; static AlarmCtrl g_alarmCtrB; static osTimerId_t g_AlarmHandle = nullptr; +static int sleep_time = 0; +static int wake_up_time = 0; + +void set_sleep_and_wake_time(void) +{ + sleep_time = get_sleep_time_from_config_model(); + wake_up_time = get_wake_up_time_from_config_model(); +} + void AlarmTimerEventPublish(uint16 topic, AlarmClockEventData data) { int32 ret; @@ -130,14 +139,14 @@ void AlarmScan(void *arg) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time: %d : %d",curTime.tm_hour,curTime.tm_min); on_time_CallBackProc(); - if(curTime.tm_hour == get_sleep_time_from_config_model()) - { - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE,NULL); - } - else if(curTime.tm_hour == get_wake_up_time_from_config_model()) - { - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE,NULL); - } + } + else if(curTime.tm_hour == ( ( sleep_time & 0XFF00) >> 16 ) && curTime.tm_min == ( sleep_time & 0X00FF )) + { + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE,NULL); + } + else if(curTime.tm_hour == ( ( wake_up_time & 0XFF00) >> 16 ) && curTime.tm_min == ( wake_up_time & 0X00FF )) + { + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE,NULL); } } @@ -176,6 +185,7 @@ int32_t AlarmTimerInit(void) if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } + set_sleep_and_wake_time(); return ERRCODE_SUCC; } -- 2.17.1