优化心率计算,活体检测佩戴 3069/2 3069/head 3072/target/1 3073/target/1
authorpenglei <1624952103@qq.com>
Tue, 13 Jan 2026 03:48:31 +0000 (11:48 +0800)
committerpenglei <1624952103@qq.com>
Tue, 13 Jan 2026 03:48:31 +0000 (11:48 +0800)
code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c
code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c
code/sdk/zhihui/drivers/ppg/ppgBleService/ppgBleService.c

index ef36bd7..7bc7cc4 100644 (file)
@@ -1149,6 +1149,19 @@ void cywee_wearstatus_update(int wearstatus)
                 cywee_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY_AND_NAP);
             }
         }
+        else if(uapi_dev_runtime_get_sleep_monitoring_status())
+        {
+            if(uapi_dev_runtime_get_sleep_status())
+            {
+                uapi_dev_runtime_set_absolute_static_status(1);
+                cywee_get_sleep_data(1);
+            }
+            else
+            {
+                cywee_inactivity_mode_change(INACTIVITY_MODE_NOTHING);
+                cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING);
+            }
+        }
 
         wearstatus = 0;
     }
index b9c4390..f9ecbbd 100644 (file)
@@ -376,7 +376,7 @@ uint16_t hx3695_read_fifo_data(ppg_sensor_data_t *ppg_sensor_dat)
     data_len_h = hx3695_read_reg(0x21);\r
     data_len_l = hx3695_read_reg(0x20);\r
     fifo_data_length = (((data_len_h&0x01)<<8)|data_len_l);\r
-       now_system_time = get_system_time();\r
+       uapi_get_timestampe_ms(&now_system_time);\r
        exp_group = (now_system_time - last_system_time) / (1000 / ppg_sensor_dat->fs);\r
        \r
        for(uint8_t index = 0; index < 3; index++)\r
@@ -1448,7 +1448,7 @@ void hx3695_alg_send_data(ppg_sensor_data_t *ppg_sensor_dat, WORK_MODE_T mode, u
                 else if(hrs_result.living_status == MSG_LIVING_FAIL)\r
                 {\r
                     living_wear_cnt++;\r
-                    if(living_wear_cnt >= 5)\r
+                    if(living_wear_cnt >= 3)\r
                     {\r
                         avg_hrs = 0;\r
                         living_status = 2;\r
index 62ae4de..9c5c416 100644 (file)
@@ -108,45 +108,36 @@ static void ble_ppgtest_add_character_and_information(uint8_t server_id, uint16_
     ble_ppgtest_add_descriptor_report_reference(server_id,srvc_handle,false);\r
 }\r
 \r
+// #define TY_DEMO\r
+\r
 /* device向host发送数据:input report */\r
 errcode_t ble_ppgtest_server_send_input_report(const uint8_t *data, uint8_t len)\r
 {\r
     // printf("ble_hid_server_send_input_report:%d %d %d",data[0],data[1],len);\r
-#if 1\r
     gatts_ntf_ind_t param = {0};\r
     param.attr_handle = (uint16_t)g_ppgtest_notify_report_att_hdl;\r
-    param.value_len = len + 1;\r
+    param.value_len = len;\r
+\r
+#ifndef TY_DEMO\r
+    param.value_len = len + 1;   \r
+#endif\r
+\r
     param.value = bt_os_new(param.value_len);\r
-    if (param.value == NULL) {\r
-        printf(  "[ppgtest][ERROR]send input report new fail\r\n");\r
-        return ERRCODE_BT_MALLOC_FAIL;\r
-    }\r
 \r
-    if (memcpy_s(param.value + 1, param.value_len, data, len) != EOK)\r
-    {\r
-        printf( "[ppgtest][ERROR]send input report memcpy fail\r\n");\r
-        bt_os_free(param.value);\r
-        return ERRCODE_BT_FAIL;\r
-    }\r
-#else\r
-    gatts_ntf_ind_t param = {0};\r
-    param.attr_handle = (uint16_t)g_ppgtest_notify_report_att_hdl;\r
-    param.value_len = len;\r
-    param.value = bt_os_new(len);\r
     if (param.value == NULL) {\r
         printf(  "[ppgtest][ERROR]send input report new fail\r\n");\r
         return ERRCODE_BT_MALLOC_FAIL;\r
     }\r
-    if (memcpy_s(param.value, param.value_len, data, len) != EOK) \r
-    {\r
+\r
+#ifndef TY_DEMO\r
+    param.value = param.value + 1;\r
+#endif\r
+\r
+    if (memcpy_s(param.value, param.value_len, data, len) != EOK) {\r
         printf( "[ppgtest][ERROR]send input report memcpy fail\r\n");\r
         bt_os_free(param.value);\r
         return ERRCODE_BT_FAIL;\r
     }\r
-\r
-\r
-#endif\r
-\r
     errcode_t ret = 0;\r
 \r
     // if(g_ble_conn_id==0)\r