优化原像心率佩戴检测
authorpenglei <1624952103@qq.com>
Sat, 5 Jul 2025 10:17:33 +0000 (18:17 +0800)
committerpenglei <1624952103@qq.com>
Sat, 5 Jul 2025 10:17:33 +0000 (18:17 +0800)
code/sdk/drivers/peripheral/ppg/pah8009/sensor/pah800x_main.c
code/sdk/drivers/peripheral/rotary_encoder/mixo/mixo_hal.c
code/sdk/drivers/peripheral/rotary_encoder/mixo/mixo_service.c

index b1225c6..e5d0679 100644 (file)
@@ -87,9 +87,7 @@ static osTimerId_t g_pah8009_timer = NULL;
 \r
 static uint8_t time_cnt = 0;\r
 \r
-static uint8_t history_wear_status = 2;\r
-\r
-static uint8_t cywee_wear_status = 0;\r
+static int history_wear_status = -1;\r
 \r
 //============================================================================\r
 // Private function\r
@@ -109,16 +107,6 @@ static void report_stress_data(const ppg_mems_data_t *ppg_mems_data_alg, uint8_t
 \r
 static void error_handle(void);\r
 \r
-static void pah8009_wearstatus_update(void)\r
-{\r
-    if(history_wear_status != cywee_wear_status)\r
-    {\r
-        history_wear_status = cywee_wear_status;\r
-#ifdef SUPPORT_CYWEE_SERVICE\r
-        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE,&cywee_wear_status);\r
-#endif\r
-    }\r
-}\r
 \r
 static void pah8009_unwearstatus_update(void)\r
 {\r
@@ -133,17 +121,24 @@ static void pah8009_unwearstatus_update(void)
         func(PPG_MSG_TYPE_WEARSTAT_UPDATE,&data,1);\r
         func(PPG_MSG_TYPE_WEARSTAT_UPDATE,&data,1);\r
     }\r
+#endif\r
+}   \r
 \r
-    if(uapi_dev_runtime_get_train_status())\r
+static void pah8009_wearstatus_update(int wear_status)\r
+{\r
+    if(history_wear_status != wear_status)\r
     {\r
-        cywee_wear_status = 0;\r
-        pah8009_wearstatus_update();\r
+        history_wear_status = wear_status;\r
 #ifdef SUPPORT_CYWEE_SERVICE\r
-        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_CHANGE,&data);\r
+        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE,(uint8_t *)&history_wear_status);\r
 #endif\r
     }\r
-#endif\r
-}   \r
+\r
+    if(wear_status != 1)\r
+    {\r
+        pah8009_unwearstatus_update();\r
+    }\r
+}\r
 \r
 static void bubblesort(float *input,int count) \r
 {\r
@@ -1325,16 +1320,7 @@ static void process(uint64_t timestamp)
 \r
     // PRINT("touch_flag : %d\n",touch_flag);\r
 \r
-#ifdef SUPPORT_PPG_SERVICE\r
-    // ppg_msg_callback_t func =  ppg_get_send_msg_callback_func();\r
-\r
-    // if(func != NULL)\r
-    // {\r
-    //     uint8_t data = (uint8_t)touch_flag;\r
-    //     cywee_wear_status = data;\r
-    //     func(PPG_MSG_TYPE_WEARSTAT_UPDATE, &data, 1);\r
-    // }\r
-#endif\r
+    pah8009_wearstatus_update(touch_flag);\r
 \r
     if (_main.ppg_is_enabled)\r
     {\r
@@ -1688,7 +1674,7 @@ void pah8009_control(char *mode,uint8_t enable)
         pah_sensor_stop();\r
         if(uapi_dev_runtime_get_sleep_monitoring_status() && uapi_dev_runtime_get_hrs_passivity_flag())\r
         {\r
-            pah8009_wearstatus_update();   \r
+            pah8009_wearstatus_update(history_wear_status);   \r
             uapi_dev_runtime_set_hrs_passivity(0); \r
         }\r
     }\r
index 551e98e..e4d7dce 100644 (file)
@@ -24,7 +24,7 @@ void mixo_int_callback(pin_t pin, uintptr_t param)
 
 void mixo_check(void)
 {
-    if(mixo_get_check_mode() == TIMER_MODE)
+    // if(mixo_get_check_mode() == TIMER_MODE)
         mixo_ots_timer_callback();
     // else if(mixo_get_check_mode() == INT_MODE)
     // {
index 7fa8cd7..ad62a5b 100644 (file)
@@ -53,7 +53,7 @@ void mixo_service_timer_stop(void)
     if(mixo_service_timer_running == true && g_mixo_service_timer)
     {
         mixo_suspend();
-        mixo_clean_result();
+        // mixo_clean_result();
         osTimerStop(g_mixo_service_timer);
         mixo_service_timer_running = false;
     }
@@ -146,7 +146,7 @@ errcode_t uapi_mixo_service_init(void)
         return ERRCODE_FAIL;
     }
 
-    mixo_init();
+    // mixo_init();
     
     g_mixo_service_timer = osTimerNew((osTimerFunc_t)mixo_service_timer_callback, osTimerPeriodic, NULL, NULL);