增加进入产测模式保持高频率蓝牙广播,优化睡眠文件存储,调整活体检测阈值 1448/1 1448/head
authorpenglei <1624952103@qq.com>
Fri, 22 Nov 2024 08:21:46 +0000 (16:21 +0800)
committerpenglei <1624952103@qq.com>
Fri, 22 Nov 2024 08:21:46 +0000 (16:21 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c
code/sdk/drivers/peripheral/cywee/src/main_dml.c
code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c

index bfb3f2c..f486840 100644 (file)
@@ -411,6 +411,79 @@ void svr_ble_adv_factory_test_start_param(void)
 }\r
 \r
 \r
+static uint8_t ble_adv_init_falg=100;\r
+\r
+static osTimerId_t ble_adv_timer=NULL;\r
+\r
+static uint32_t last_package_id=0;\r
+\r
+static void  ble_adv_Timer_CallBack(int data)\r
+{\r
+    ble_adv_init_falg--;\r
+\r
+    if(ble_adv_init_falg<=0)\r
+    {\r
+        int adv_id = BLE_ADV_ID;\r
+\r
+        errcode_t ret = 0;\r
+        if(get_ble_adv_status())\r
+        {\r
+            ret=gap_ble_stop_adv(adv_id);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_stop_adv ret %x\n",ret);\r
+            osDelay(50);\r
+\r
+            if(!uapi_dev_runtime_get_factory_test_status_flag())\r
+            {\r
+                gap_ble_adv_params_t adv_para;\r
+                memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t));\r
+                adv_para.min_interval = 0x640;\r
+                adv_para.max_interval = 0x640;\r
+                adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR;\r
+                adv_para.channel_map = 0x7;\r
+                adv_para.duration = 0;\r
+\r
+                ret=gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_set_adv_param ret %x\n",ret);\r
+\r
+            }\r
+           \r
+          \r
+\r
+            ret=gap_ble_start_adv(adv_id);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_start_adv ret %x\n",ret);\r
+\r
+        }\r
+        else\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "no sdv\n");\r
+            if(!uapi_dev_runtime_get_factory_test_status_flag())\r
+            {\r
+\r
+                gap_ble_adv_params_t adv_para;\r
+                memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t));\r
+                adv_para.min_interval = 0x640;\r
+                adv_para.max_interval = 0x640;\r
+                adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR;\r
+                adv_para.channel_map = 0x7;\r
+                adv_para.duration = 0;\r
+                ret=gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_set_adv_param ret %x\n",ret);\r
+\r
+            }\r
+           \r
+\r
+           \r
+        }\r
+\r
+\r
+        osTimerStop(ble_adv_timer);\r
+        osTimerDelete(ble_adv_timer);\r
+        ble_adv_timer = NULL;\r
+        \r
+    }\r
+}\r
+\r
+\r
 \r
 void svr_ble_adv_start_param(void)\r
 {\r
@@ -422,16 +495,63 @@ void svr_ble_adv_start_param(void)
         osDelay(50);\r
     }\r
 \r
-    gap_ble_adv_params_t adv_para;\r
-    memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t));\r
+    if(ble_adv_init_falg)\r
+    {\r
+        gap_ble_adv_params_t adv_para;\r
+        memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t));\r
+        adv_para.min_interval = 0x64;\r
+        adv_para.max_interval = 0x64;\r
+        adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR;\r
+        adv_para.channel_map = 0x7;\r
+        adv_para.duration = 0;\r
+        gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数\r
+\r
+        uint32_t tick;\r
+        osStatus_t retTimer;\r
+        if(ble_adv_timer!=NULL)\r
+        {\r
+            osTimerDelete(ble_adv_timer);\r
+            ble_adv_timer = NULL;\r
+        }\r
 \r
-    adv_para.min_interval = 0x640;\r
-    adv_para.max_interval = 0x640;\r
-    adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR;\r
-    adv_para.channel_map = 0x7;\r
-    adv_para.duration = 0;\r
+        ble_adv_timer = osTimerNew((osTimerFunc_t)ble_adv_Timer_CallBack, osTimerPeriodic, NULL, NULL);\r
+        tick =osMs2Tick(1000);\r
+        retTimer = osTimerStart(ble_adv_timer, tick);\r
+        if (retTimer != osOK && ble_adv_timer != NULL) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);\r
+            osTimerDelete(ble_adv_timer);\r
+            ble_adv_timer = NULL;\r
+            return;\r
+        }\r
 \r
-    gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数\r
+    }\r
+    else\r
+    {\r
+         if(!uapi_dev_runtime_get_factory_test_status_flag())\r
+         {\r
+            gap_ble_adv_params_t adv_para;\r
+            memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t));\r
+            adv_para.min_interval = 0x640;\r
+            adv_para.max_interval = 0x640;\r
+            adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR;\r
+            adv_para.channel_map = 0x7;\r
+            adv_para.duration = 0;\r
+            gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数\r
+         }\r
+         else\r
+         {\r
+             gap_ble_adv_params_t adv_para;\r
+            memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t));\r
+            adv_para.min_interval = 0x64;\r
+            adv_para.max_interval = 0x64;\r
+            adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR;\r
+            adv_para.channel_map = 0x7;\r
+            adv_para.duration = 0;\r
+            gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数\r
+        }\r
+\r
+    }\r
+    \r
     gap_ble_set_local_appearance(GAP_BLE_APPEARANCE_TYPE_GENERIC_WATCH);//仅是手表\r
     svr_ble_adv_data_set(adv_id);//开始广播和扫描数据\r
     ble_adv_falg = 1;\r
index fb9644f..abafaf5 100644 (file)
@@ -799,9 +799,6 @@ void cywee_time_sync(void)
     time_t rawtime;
     struct tm* timeinfo;
 
-    clean_sleep_data();
-
-
     time(&rawtime);
     timeinfo = localtime(&rawtime);
     CWM_OS_dbgPrintf("cywee_time_sync : year[%d], mon[%d], day[%d], hour[%d], min[%d], sec[%d] \r\n",
@@ -823,6 +820,7 @@ void cywee_time_sync(void)
     //时间同步以后创建文件夹
     char day[12] = {0};
     get_sleep_file_day(day);
+    memset(dir_path, 0, sizeof(dir_path));
     sprintf_s(dir_path, 64, SLEEP_DIR_PATH, day);
     uapi_create_folder(dir_path);
 }
@@ -885,6 +883,8 @@ void activity_mode_setstatus(int cmd)
 void cywee_inactivity_mode_change(int mode)
 {
     // cywee_time_sync();
+    clean_sleep_data();
+
     switch (mode)
     {
         //无作用
index 5c37eec..efb52c5 100644 (file)
@@ -2254,7 +2254,7 @@ bool hx3695_init(WORK_MODE_T mode)
     case HRS_MODE:\r
                //TYHX_LOG(" hx3695_init mode : HRS_MODE \n");\r
 #ifdef HRS_ALG_LIB\r
-                               tyhx_hrs_set_living(1, 15, 30);\r
+                               tyhx_hrs_set_living(1, 18, 30);\r
         if(hx3695_hrs_enable()== SENSOR_OP_FAILED)\r
         {\r
             return false;\r