From: penglei <1624952103@qq.com> Date: Fri, 22 Nov 2024 08:21:46 +0000 (+0800) Subject: 增加进入产测模式保持高频率蓝牙广播,优化睡眠文件存储,调整活体检测阈值 X-Git-Tag: fd230_release_V1.3.102~44^2~3 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=refs%2Fchanges%2F1448%2F1;p=mirrors%2FFD230.git 增加进入产测模式保持高频率蓝牙广播,优化睡眠文件存储,调整活体检测阈值 --- diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c index bfb3f2c4d..f486840be 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c @@ -411,6 +411,79 @@ void svr_ble_adv_factory_test_start_param(void) } +static uint8_t ble_adv_init_falg=100; + +static osTimerId_t ble_adv_timer=NULL; + +static uint32_t last_package_id=0; + +static void ble_adv_Timer_CallBack(int data) +{ + ble_adv_init_falg--; + + if(ble_adv_init_falg<=0) + { + int adv_id = BLE_ADV_ID; + + errcode_t ret = 0; + if(get_ble_adv_status()) + { + ret=gap_ble_stop_adv(adv_id); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_stop_adv ret %x\n",ret); + osDelay(50); + + if(!uapi_dev_runtime_get_factory_test_status_flag()) + { + gap_ble_adv_params_t adv_para; + memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t)); + adv_para.min_interval = 0x640; + adv_para.max_interval = 0x640; + adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR; + adv_para.channel_map = 0x7; + adv_para.duration = 0; + + ret=gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数 + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_set_adv_param ret %x\n",ret); + + } + + + + ret=gap_ble_start_adv(adv_id); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_start_adv ret %x\n",ret); + + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "no sdv\n"); + if(!uapi_dev_runtime_get_factory_test_status_flag()) + { + + gap_ble_adv_params_t adv_para; + memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t)); + adv_para.min_interval = 0x640; + adv_para.max_interval = 0x640; + adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR; + adv_para.channel_map = 0x7; + adv_para.duration = 0; + ret=gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数 + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_set_adv_param ret %x\n",ret); + + } + + + + } + + + osTimerStop(ble_adv_timer); + osTimerDelete(ble_adv_timer); + ble_adv_timer = NULL; + + } +} + + void svr_ble_adv_start_param(void) { @@ -422,16 +495,63 @@ void svr_ble_adv_start_param(void) osDelay(50); } - gap_ble_adv_params_t adv_para; - memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t)); + if(ble_adv_init_falg) + { + gap_ble_adv_params_t adv_para; + memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t)); + adv_para.min_interval = 0x64; + adv_para.max_interval = 0x64; + adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR; + adv_para.channel_map = 0x7; + adv_para.duration = 0; + gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数 + + uint32_t tick; + osStatus_t retTimer; + if(ble_adv_timer!=NULL) + { + osTimerDelete(ble_adv_timer); + ble_adv_timer = NULL; + } - adv_para.min_interval = 0x640; - adv_para.max_interval = 0x640; - adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR; - adv_para.channel_map = 0x7; - adv_para.duration = 0; + ble_adv_timer = osTimerNew((osTimerFunc_t)ble_adv_Timer_CallBack, osTimerPeriodic, NULL, NULL); + tick =osMs2Tick(1000); + retTimer = osTimerStart(ble_adv_timer, tick); + if (retTimer != osOK && ble_adv_timer != NULL) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer); + osTimerDelete(ble_adv_timer); + ble_adv_timer = NULL; + return; + } - gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数 + } + else + { + if(!uapi_dev_runtime_get_factory_test_status_flag()) + { + gap_ble_adv_params_t adv_para; + memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t)); + adv_para.min_interval = 0x640; + adv_para.max_interval = 0x640; + adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR; + adv_para.channel_map = 0x7; + adv_para.duration = 0; + gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数 + } + else + { + gap_ble_adv_params_t adv_para; + memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t)); + adv_para.min_interval = 0x64; + adv_para.max_interval = 0x64; + adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR; + adv_para.channel_map = 0x7; + adv_para.duration = 0; + gap_ble_set_adv_param(adv_id, &adv_para);//设置广播参数 + } + + } + gap_ble_set_local_appearance(GAP_BLE_APPEARANCE_TYPE_GENERIC_WATCH);//仅是手表 svr_ble_adv_data_set(adv_id);//开始广播和扫描数据 ble_adv_falg = 1; diff --git a/code/sdk/drivers/peripheral/cywee/src/main_dml.c b/code/sdk/drivers/peripheral/cywee/src/main_dml.c index fb9644fb8..abafaf521 100644 --- a/code/sdk/drivers/peripheral/cywee/src/main_dml.c +++ b/code/sdk/drivers/peripheral/cywee/src/main_dml.c @@ -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) { //无作用 diff --git a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c index 5c37eec0d..efb52c575 100644 --- a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c +++ b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c @@ -2254,7 +2254,7 @@ bool hx3695_init(WORK_MODE_T mode) case HRS_MODE: //TYHX_LOG(" hx3695_init mode : HRS_MODE \n"); #ifdef HRS_ALG_LIB - tyhx_hrs_set_living(1, 15, 30); + tyhx_hrs_set_living(1, 18, 30); if(hx3695_hrs_enable()== SENSOR_OP_FAILED) { return false;