补交 412/2 412/head 416/target/2 417/target/1 418/target/1
authorpenglei <1624952103@qq.com>
Sat, 29 Jun 2024 06:35:32 +0000 (14:35 +0800)
committerpenglei <1624952103@qq.com>
Sat, 29 Jun 2024 06:35:32 +0000 (14:35 +0800)
code/sdk/application/battery/service/battery_driver.cpp
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/include/AlarmClockTimerConfig.h
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp

index cd83fd7..25b050a 100644 (file)
@@ -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(&current_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;
+    }  
 }
 
 
index 5c63767..b799dcb 100644 (file)
@@ -1,3 +1,13 @@
+/*\r
+ * @Author: penglei 1624952103@qq.com\r
+ * @Date: 2024-06-07 11:18:25\r
+ * @LastEditors: penglei 1624952103@qq.com\r
+ * @LastEditTime: 2024-06-29 14:34:23\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/include/AlarmClockTimerConfig.h\r
+ * @Description: \r
+ * \r
+ * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. \r
+ */\r
 /*\r
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
  * Description: AlarmClockTimer\r
@@ -56,7 +66,7 @@ int32_t AlarmTimerInit(void);
 int32_t SetZeroAlarm(void);\r
 int32_t SetAlarm(AlarmType type, uint8_t week, uint8_t hour, uint8_t minute);\r
 int32_t AlarmGetCurrentTimeInfo(struct tm *timeInfo);\r
-\r
+void set_sleep_and_wake_time(void);\r
 #ifdef __cplusplus\r
 }\r
 #endif\r
index 2e67d8c..935aa7a 100644 (file)
@@ -28,6 +28,15 @@ static AlarmCtrl g_alarmCtrA;
 static AlarmCtrl g_alarmCtrB;\r
 static osTimerId_t g_AlarmHandle = nullptr;\r
 \r
+static int sleep_time = 0;\r
+static int wake_up_time = 0;\r
+\r
+void set_sleep_and_wake_time(void)\r
+{\r
+    sleep_time = get_sleep_time_from_config_model();\r
+    wake_up_time = get_wake_up_time_from_config_model();\r
+}\r
+\r
 void AlarmTimerEventPublish(uint16 topic, AlarmClockEventData data)\r
 {\r
     int32 ret;\r
@@ -130,14 +139,14 @@ void AlarmScan(void *arg)
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time: %d : %d",curTime.tm_hour,curTime.tm_min);\r
         on_time_CallBackProc();\r
-        if(curTime.tm_hour == get_sleep_time_from_config_model())\r
-        {\r
-            do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE,NULL);\r
-        }\r
-        else if(curTime.tm_hour == get_wake_up_time_from_config_model())\r
-        {\r
-            do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE,NULL);\r
-        }\r
+    }\r
+    else if(curTime.tm_hour == ( ( sleep_time & 0XFF00) >> 16 ) && curTime.tm_min == ( sleep_time & 0X00FF ))\r
+    {\r
+        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE,NULL);\r
+    }\r
+    else if(curTime.tm_hour == ( ( wake_up_time & 0XFF00) >> 16 ) && curTime.tm_min == ( wake_up_time & 0X00FF ))\r
+    {\r
+        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE,NULL);\r
     }\r
 }\r
 \r
@@ -176,6 +185,7 @@ int32_t AlarmTimerInit(void)
     if (ret != ERRCODE_SUCC) {\r
         return ERRCODE_FAIL;\r
     }\r
+    set_sleep_and_wake_time();\r
     return ERRCODE_SUCC;\r
 }\r
 \r