优化gsensor恢复机制 2717/1
authorpenglei <1624952103@qq.com>
Mon, 10 Nov 2025 10:36:24 +0000 (18:36 +0800)
committerpenglei <1624952103@qq.com>
Mon, 10 Nov 2025 10:36:24 +0000 (18:36 +0800)
code/sdk/application/wearable/fd230/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/n9/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c
code/sdk/zhihui/drivers/ppg/pah8009/sensor/pah800x_main.c
code/sdk/zhihui/drivers/ppg/pah8009/sensor/pah_800x_config.h

index df272d9..dcfea1d 100644 (file)
@@ -379,7 +379,7 @@ extern "C"
             do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BLE_ADV_CHECK, nullptr, 0); // 3秒钟检查一次广播\r
         }\r
 \r
-        if (curTime.tm_sec % 60 == 0)\r
+        if (curTime.tm_sec % 5 == 0 && !uapi_dev_runtime_get_train_status())\r
         {\r
 #ifdef SUPPORT_CYWEE_SERVICE\r
             do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CHECK_ACC, NULL); // 一分钟检查一次gsensor是否停止\r
index d0dffed..93a1e3a 100644 (file)
@@ -369,7 +369,7 @@ extern "C"
             do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BLE_ADV_CHECK, nullptr, 0); // 3秒钟检查一次广播\r
         }\r
 \r
-        if (curTime.tm_sec % 60 == 0)\r
+        if (curTime.tm_sec % 5 == 0 && !uapi_dev_runtime_get_train_status())\r
         {\r
 #ifdef SUPPORT_CYWEE_SERVICE\r
             do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CHECK_ACC, NULL); // 一分钟检查一次gsensor是否停止\r
index 3e3045d..77dde3b 100644 (file)
@@ -369,7 +369,7 @@ extern "C"
             do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BLE_ADV_CHECK, nullptr, 0); // 3秒钟检查一次广播\r
         }\r
 \r
-        if (curTime.tm_sec % 60 == 0)\r
+        if (curTime.tm_sec % 5 == 0 && !uapi_dev_runtime_get_train_status())\r
         {\r
 #ifdef SUPPORT_CYWEE_SERVICE\r
             do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CHECK_ACC, NULL); // 一分钟检查一次gsensor是否停止\r
index 25a08c4..8c51be7 100644 (file)
@@ -75,6 +75,8 @@ static int last_mhr_zone = -1;                // 上次的心率区间状态
 
 static uint8_t is_free_trainning_mode = 0;
 
+static uint8_t acc_check_cnt = 0;
+
 /**
  * @brief 更新燃脂时间
  * @param current_mhr_zone 当前心率区间 (2表示燃脂区间)
@@ -247,6 +249,7 @@ void cywee_service_data_update(void)
 {
     cywee_hrs_update();
     cywee_gnss_update();
+    cywee_check_acc();
 }
 
 static void cywee_sport_timer_start_check(uint32_t rtc_ms)
@@ -306,12 +309,17 @@ void cywee_check_acc(void)
 {
     if(!timeout)
     {
-        // printf("cywee_restart_acc\n");
-        cywee_restart_acc();
+        acc_check_cnt++;
+        if(acc_check_cnt > 2)
+        {
+            printf("cywee_restart_acc\n");
+            cywee_restart_acc();
+        }
     }
     else
     {
         timeout = 0;
+        acc_check_cnt = 0;
     }
 }
 
index 93b04d8..537405a 100644 (file)
@@ -630,19 +630,18 @@ void hr_alg_task(void)
 //                     }
 // #endif
 
-                    if(hr > 0 && hr < 210.0f && !isnan(hr) && !isinf(hr))
+                    if(hr > 0.0f && hr < 210.0f && !isnan(hr) && !isinf(hr))
                     {
-                        int hr_int = round(hr);
+
+                        avg_hrs = (uint8_t)hr;
                         
-                        if (hr_int >= 30 && hr_int <= 210) 
-                        {
-                            avg_hrs = (uint8_t)hr_int;
-                        }
                         // else
                         // {
                         //     // 舍弃异常值,保持之前的有效值
                         //     printf("PAH: HR异常值过滤: %d (超出30-210范围)\n", hr_int);
                         // }
+
+                        LOG_PRINT("hr : %.3f ,avg_hrs : %d\n",hr,avg_hrs);
                     }
                     // else if(hr > 0)
                     // {
@@ -655,7 +654,7 @@ void hr_alg_task(void)
                     //     get_avg_hrs(data);
 
 
-                    LOG_PRINT("hr : %f avg_hrs : %d\n",hr,avg_hrs);
+
                     // printf("func(PPG_MSG_TYPE_HRS_UPDATE, &avg_hrs, 1); :%d\n",avg_hrs);
                     // func(PPG_MSG_TYPE_HRS_UPDATE, &avg_hrs, 1);
 
@@ -1917,7 +1916,7 @@ void pah8009_control(char *mode,uint8_t enable)
             work_mode = 1;
             // touch_only_sensor_start();
             ppg_only_sensor_start();
-            time_out = 15;
+            time_out = 20;
         } else if (strcmp(mode, "hrv") == 0) {
             // md = HRV_MODE;
         } else if (strcmp(mode, "spo2") == 0) {
@@ -1925,7 +1924,7 @@ void pah8009_control(char *mode,uint8_t enable)
             pah_sensor_init(diw_4mm_ir_r_ir_spo2);
             ppg_only_sensor_start();
             work_mode = 2;
-            time_out = 15;
+            time_out = 20;
         } else if (strcmp(mode, "leaklight") == 0) {
             // md = FT_LEAK_LIGHT_MODE;
             factory_test_mode(factory_test_leak_light_target_sample, 0, 0, 0, 0);
index 8fb130e..67827e8 100644 (file)
@@ -47,7 +47,7 @@
 #ifdef PAH_800x_ENABLE_LOG_PRINT\r
 #define LOG_PRINT(fmt, ...)                    \\r
     do {                                      \\r
-        CWM_OS_dbgPrintf(fmt"PAH:", ##__VA_ARGS__);     \\r
+        printf(fmt"PAH:", ##__VA_ARGS__);     \\r
     } while (0)\r
 #else\r
 #define LOG_PRINT(...) do {} while (0)\r
@@ -56,7 +56,7 @@
 #ifdef PAH_800x_ENABLE_DEBUG_PRINT\r
 #define DEBUG_PRINT(fmt, ...)                    \\r
     do {                                      \\r
-        CWM_OS_dbgPrintf(fmt"PAH:", ##__VA_ARGS__);     \\r
+        printf(fmt"PAH:", ##__VA_ARGS__);     \\r
     } while (0) \r
 #else\r
 #define DEBUG_PRINT(...) do {} while (0)\r