From: p15692025051 <846603105@qq.com> Date: Tue, 27 Feb 2024 03:10:54 +0000 (+0800) Subject: 血压模组添加工厂模式 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=4de9687ed849636862fb1c74f6201ce11bb7a5d2;p=mirrors%2FASR3603_Z5.git 血压模组添加工厂模式 --- diff --git a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c index 90853340..9bafda20 100644 --- a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c +++ b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c @@ -28,6 +28,8 @@ unsigned char HA_key_code[128+1] = {0}; unsigned char HA_req_code[128+1] = {0}; char fr8012haq_agc_timerout_flag = 0; static void * fr8012haq_agc_timer = NULL; +int factory_apre_val[2]; +int factory_aps_val; /************************simware add start***********************************/ /************************simware add start***********************************/ static uint32_t fr8012haq_mfp_cfgs[] = { @@ -130,8 +132,9 @@ static void fr8012haq_en_gpio_enable(bool param) gpio_set_value(GPIO18, GPIO_HIGH); gpio_set_value(GPIO81, GPIO_HIGH); gpio_set_value(GPIO84, GPIO_LOW); - gpio_set_value(GPIO16, GPIO_HIGH); - //gpio_set_value(GPIO7, GPIO_LOW); + gpio_set_value(GPIO16, GPIO_HIGH);//vbat ldo + //gpio_set_value(GPIO16, GPIO_LOW); + // while(1) // { // UOS_SleepMs(1000); @@ -139,6 +142,7 @@ static void fr8012haq_en_gpio_enable(bool param) // FR8012HAQ_LOG("fr8012haq_en_gpio_enable2!!!!\n\n"); // } } else { + gpio_set_value(GPIO16, GPIO_LOW); gpio_set_value(GPIO18, GPIO_LOW); gpio_set_value(GPIO81, GPIO_LOW); //gpio_set_value(GPIO7, GPIO_LOW); @@ -399,8 +403,8 @@ void fr8012haq_timer_cfg(bool en) }else if(FR8012HAQ_run_mode == BP_MODE)//血压150MS { FR8012HAQ_LOG("fr8012haq_timer_cfg:BP_MODE!!!!!\n"); - uos_timer_start(fr8012haq_timer, MS_TO_TICKS(150), MS_TO_TICKS(150), fr8012haq_timerout_cb, NULL); - }else if(FR8012HAQ_run_mode == YYL_MODE)//中医30秒 + uos_timer_start(fr8012haq_timer, MS_TO_TICKS(1000), MS_TO_TICKS(1000), fr8012haq_timerout_cb, NULL); + }else if(FR8012HAQ_run_mode == YYL_MODE)//中医10秒 { uos_timer_start(fr8012haq_timer, MS_TO_TICKS(10000), MS_TO_TICKS(10000), fr8012haq_timerout_cb, NULL); }else//其他1秒 @@ -452,57 +456,60 @@ void FR8012HAQ_test(uint32_t mode) switch (mode) { - case HRS_MODE: - /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"hrs\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"hrs\"}")); - break; - case SPO2_MODE: - /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"spo2\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"spo2\"}")); - break; - case BP_MODE: - /* code */ - if(s_FR8012HAQ_blood_data ==NULL) - { - s_FR8012HAQ_blood_data = malloc(s_FR8012HAQ_blood_data_mxa_len); - memset(s_FR8012HAQ_blood_data,0,s_FR8012HAQ_blood_data_mxa_len); - } - s_FR8012HAQ_blood_data_len =0; + case HRS_MODE: + /* code */ + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"hrs\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"hrs\"}")); + break; + case SPO2_MODE: + /* code */ + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"spo2\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"spo2\"}")); + break; + case BP_MODE: + /* code */ + if(s_FR8012HAQ_blood_data ==NULL) + { + s_FR8012HAQ_blood_data = malloc(s_FR8012HAQ_blood_data_mxa_len); + memset(s_FR8012HAQ_blood_data,0,s_FR8012HAQ_blood_data_mxa_len); + } + s_FR8012HAQ_blood_data_len =0; - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"bp\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"bp\"}")); - break; - case EMO_MODE: - /* code */ - if(s_FR8012HAQ_emo_data ==NULL) - { - s_FR8012HAQ_emo_data = malloc(s_FR8012HAQ_emo_data_mxa_len); - memset(s_FR8012HAQ_emo_data,0,s_FR8012HAQ_emo_data_mxa_len); - } - s_FR8012HAQ_emo_data_len =0; + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"bp\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"bp\"}")); + break; + case EMO_MODE: + /* code */ + if(s_FR8012HAQ_emo_data ==NULL) + { + s_FR8012HAQ_emo_data = malloc(s_FR8012HAQ_emo_data_mxa_len); + memset(s_FR8012HAQ_emo_data,0,s_FR8012HAQ_emo_data_mxa_len); + } + s_FR8012HAQ_emo_data_len =0; - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"emo\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"emo\"}")); - break; - case TEMP_MODE: - /* code */ - + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"emo\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"emo\"}")); + break; + case FACTORY_MODE: + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"factory\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"factory\"}")); + break; + case TEMP_MODE: + /* code */ + - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"temp\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"temp\"}")); - break; - - case WEAR_MODE: - /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"wear\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"wear\"}")); - break; - case HRV_MODE: - /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"hrv\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"hrv\"}")); - break; - case YYL_MODE: - /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}")); - break; - default: - break; + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"temp\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"temp\"}")); + break; + + case WEAR_MODE: + /* code */ + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"wear\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"wear\"}")); + break; + case HRV_MODE: + /* code */ + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"hrv\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"hrv\"}")); + break; + case YYL_MODE: + /* code */ + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}")); + break; + default: + break; } } if(fr8012haq_parse_returned_data(100) == 1)//必须解析到执行成功 @@ -567,20 +574,24 @@ static void fr8012haq_stop(void) //读取并解析返回数据 #define DATA_HANDLE (1<<24) #define UART4_BUF_LEN 4*1024 - +#define my_str_print_on 1 void my_str_print(char *data,int len) { +#if my_str_print_on for(int i = 0;i=sizeof(num_buf)) - num_buf_len = sizeof(num_buf)-1; - memset(num_buf,0,sizeof(num_buf)); - memcpy(num_buf,str_tmp,num_buf_len); - hrs = atoi(num_buf); - FR8012HAQ_result_set_heart_rate(hrs); - } - /*血氧*/ - str_tmp = strstr(UART4_buf,"\"spo2_data\":\""); - if(str_tmp) - { - unsigned char spo2 = 0; - str_tmp += strlen("\"spo2_data\":\""); - num_buf_len = find_c(str_tmp,'\"'); - if(num_buf_len>=sizeof(num_buf)) - num_buf_len = sizeof(num_buf)-1; - memset(num_buf,0,sizeof(num_buf)); - memcpy(num_buf,str_tmp,num_buf_len); - spo2 = atoi(num_buf); - FR8012HAQ_result_set_blood_oxygen(spo2); - } - /*血压*/ - str_tmp = strstr(UART4_buf,"\"bp_data\":\""); - if(str_tmp) + count++; + if(count >30) + break; + cmd_str_tmp = strstr(cmd_str_tmp,"{\""); + if(cmd_str_tmp) { - str_tmp += strlen("\"bp_data\":\""); - num_buf_len = find_c(str_tmp,'\"'); - FR8012HAQ_LOG("bp:hex_str:%s\n",str_tmp); - FR8012HAQ_LOG("bp:int:"); - for(i=0;i=sizeof(num_buf)) + num_buf_len = sizeof(num_buf)-1; + memset(num_buf,0,sizeof(num_buf)); + memcpy(num_buf,str_tmp,num_buf_len); + hrs = atoi(num_buf); + FR8012HAQ_result_set_heart_rate(hrs); + } + /*血氧*/ + str_tmp = strstr(cmd_str_tmp,"\"spo2_data\":\""); + if(str_tmp) + { + unsigned char spo2 = 0; + str_tmp += strlen("\"spo2_data\":\""); + num_buf_len = find_c(str_tmp,'\"'); + if(num_buf_len>=sizeof(num_buf)) + num_buf_len = sizeof(num_buf)-1; + memset(num_buf,0,sizeof(num_buf)); + memcpy(num_buf,str_tmp,num_buf_len); + spo2 = atoi(num_buf); + FR8012HAQ_result_set_blood_oxygen(spo2); + } + /*工厂模式*/ + str_tmp = strstr(cmd_str_tmp,"\"factory_data\":\""); + if(str_tmp) + { + str_tmp += strlen("\"factory_data\":\""); + num_buf_len = find_c(str_tmp,','); + if(num_buf_len>=sizeof(num_buf)) + num_buf_len = sizeof(num_buf)-1; + memset(num_buf,0,sizeof(num_buf)); + memcpy(num_buf,str_tmp,num_buf_len); + factory_apre_val[0] = atoi(num_buf); + + str_tmp += num_buf_len+1; + num_buf_len = find_c(str_tmp,','); + if(num_buf_len>=sizeof(num_buf)) + num_buf_len = sizeof(num_buf)-1; + memset(num_buf,0,sizeof(num_buf)); + memcpy(num_buf,str_tmp,num_buf_len); + factory_apre_val[1] = atoi(num_buf); + + str_tmp += num_buf_len+1; + num_buf_len = find_c(str_tmp,'\"'); + if(num_buf_len>=sizeof(num_buf)) + num_buf_len = sizeof(num_buf)-1; + memset(num_buf,0,sizeof(num_buf)); + memcpy(num_buf,str_tmp,num_buf_len); + factory_aps_val = atoi(num_buf); + } + /*血压*/ + str_tmp = strstr(cmd_str_tmp,"\"bp_data\":\""); + if(str_tmp) + { + //FR8012HAQ_LOG("bp:str_tmp:%s\n",str_tmp); + str_tmp += strlen("\"bp_data\":\""); + num_buf_len = find_c(str_tmp,'\"'); + printf("bp:hex_str:%s\n",str_tmp); + FR8012HAQ_LOG("bp:int:"); + for(i=0;i=DATA_HANDLE/2) + { + s_FR8012HAQ_blood_data[s_FR8012HAQ_blood_data_len]-=DATA_HANDLE; + } + FR8012HAQ_LOG("%d ",s_FR8012HAQ_blood_data[s_FR8012HAQ_blood_data_len]); + //FR8012HAQ_LOG("s_FR8012HAQ_blood_data[%d]:%x\n",s_FR8012HAQ_blood_data_len,s_FR8012HAQ_blood_data[s_FR8012HAQ_blood_data_len]); + s_FR8012HAQ_blood_data_len++; + } + } + FR8012HAQ_LOG("\n"); + printf("fr8012haq_parse_returned_data:bp_data:%d\n",s_FR8012HAQ_blood_data_len); + } + /*情绪*/ + str_tmp = strstr(cmd_str_tmp,"\"emo_data\":["); + if(str_tmp) { - s_FR8012HAQ_blood_data[s_FR8012HAQ_blood_data_len] = strtol(num_buf, NULL, 16); - if(s_FR8012HAQ_blood_data[s_FR8012HAQ_blood_data_len]>=DATA_HANDLE/2) + str_tmp += strlen("\"emo_data\":["); + char *emo_str_tmp = strstr(str_tmp,"]]"); + num_buf_len = emo_str_tmp+1-str_tmp; + FR8012HAQ_LOG("emo_data:num_buf_len:%d\n",num_buf_len); + if(s_FR8012HAQ_emo_data_len+num_buf_len+1 < s_FR8012HAQ_emo_data_mxa_len) { - s_FR8012HAQ_blood_data[s_FR8012HAQ_blood_data_len]-=DATA_HANDLE; + if(s_FR8012HAQ_emo_data_len != 0)//加逗号 + { + s_FR8012HAQ_emo_data[s_FR8012HAQ_emo_data_len] = ','; + s_FR8012HAQ_emo_data_len++; + } + memcpy(&s_FR8012HAQ_emo_data[s_FR8012HAQ_emo_data_len],str_tmp,num_buf_len); + FR8012HAQ_LOG("emo_data one:%s\n",&s_FR8012HAQ_emo_data[s_FR8012HAQ_emo_data_len]); + s_FR8012HAQ_emo_data_len+=num_buf_len; } - FR8012HAQ_LOG("%d ",s_FR8012HAQ_blood_data[s_FR8012HAQ_blood_data_len]); - //FR8012HAQ_LOG("s_FR8012HAQ_blood_data[%d]:%x\n",s_FR8012HAQ_blood_data_len,s_FR8012HAQ_blood_data[s_FR8012HAQ_blood_data_len]); - s_FR8012HAQ_blood_data_len++; + + FR8012HAQ_LOG("emo_data!!!:%s",s_FR8012HAQ_emo_data); + FR8012HAQ_LOG("%s",(char *)s_FR8012HAQ_emo_data+255-12); + FR8012HAQ_LOG("%s",s_FR8012HAQ_emo_data+255+255-12); + FR8012HAQ_LOG("\n"); + FR8012HAQ_LOG("emo_data:len:%d\n",s_FR8012HAQ_emo_data_len); + } - } - FR8012HAQ_LOG("\n"); - } - /*情绪*/ - str_tmp = strstr(UART4_buf,"\"emo_data\":["); - if(str_tmp) - { - str_tmp += strlen("\"emo_data\":["); - char *emo_str_tmp = strstr(str_tmp,"]]"); - num_buf_len = emo_str_tmp+1-str_tmp; - FR8012HAQ_LOG("emo_data:num_buf_len:%d\n",num_buf_len); - if(s_FR8012HAQ_emo_data_len+num_buf_len+1 < s_FR8012HAQ_emo_data_mxa_len) - { - if(s_FR8012HAQ_emo_data_len != 0)//加逗号 + /*体温*/ + str_tmp = strstr(cmd_str_tmp,"\"temp_data\":\""); + if(str_tmp) { - s_FR8012HAQ_emo_data[s_FR8012HAQ_emo_data_len] = ','; - s_FR8012HAQ_emo_data_len++; + + //unsigned char hrs = 0; + str_tmp += strlen("\"temp_data\":\""); + num_buf_len = find_c(str_tmp,'\"'); + if(num_buf_len>=sizeof(num_buf)) + num_buf_len = sizeof(num_buf)-1; + memset(num_buf,0,sizeof(num_buf)); + memcpy(num_buf,str_tmp,num_buf_len); + temp = atof(num_buf); + //FR8012HAQ_LOG("temp:str_tmp:%s\n",str_tmp); + FR8012HAQ_LOG("temp:%f\n",temp); } - memcpy(&s_FR8012HAQ_emo_data[s_FR8012HAQ_emo_data_len],str_tmp,num_buf_len); - FR8012HAQ_LOG("emo_data one:%s\n",&s_FR8012HAQ_emo_data[s_FR8012HAQ_emo_data_len]); - s_FR8012HAQ_emo_data_len+=num_buf_len; - } + /*佩戴*/ + str_tmp = strstr(cmd_str_tmp,"\"wear_data\":\""); + if(str_tmp) + { + //unsigned char hrs = 0; + str_tmp += strlen("\"wear_data\":\""); + if(*str_tmp == '0') + { + FR8012HAQ_result_set_wear_status(0); + }else + { + FR8012HAQ_result_set_wear_status(1); + } + } + /*恒爱算法库是否激活*/ + str_tmp = strstr(cmd_str_tmp,"\"is_HA_activate\":\""); + if(str_tmp) + { + //unsigned char hrs = 0; + str_tmp += strlen("\"is_HA_activate\":\""); + if(*str_tmp == '1') + is_HA_activate = 1; + else + is_HA_activate = 0; + } + /*恒爱算法库请求码返回*/ + str_tmp = strstr(cmd_str_tmp,"\"HA_req_code\":\""); + if(str_tmp) + { + //unsigned char hrs = 0; + memset(HA_req_code,0,sizeof(HA_req_code)); + str_tmp += strlen("\"HA_req_code\":\""); + num_buf_len = find_c(str_tmp,'\"'); + if(num_buf_len >= sizeof(HA_req_code)) + { + num_buf_len = sizeof(HA_req_code)-1; + } + memcpy(HA_req_code,str_tmp,num_buf_len); + } + /*中医数据*/ + str_tmp = strstr(cmd_str_tmp,"\"yyl_data\":\""); + if(str_tmp && s_FR8012HAQ_yyl_data_len < s_FR8012HAQ_yyl_data_mxa_len) + { + //unsigned char hrs = 0; + str_tmp += strlen("\"yyl_data\":\""); + FR8012HAQ_LOG("yyl_data1:!!!\n"); + unsigned int yyl_data_len = 0; + yyl_data_len = find_c(str_tmp,'\"'); + FR8012HAQ_LOG("yyl_data1.0.0:!!!\n"); + if(s_FR8012HAQ_yyl_data!= NULL && s_FR8012HAQ_yyl_data_len ==0)//统一线程释放,避免上层应用释放导致dump + { + FR8012HAQ_LOG("yyl_data1.0:!!!\n"); + free(s_FR8012HAQ_yyl_data); + s_FR8012HAQ_yyl_data = NULL; + } + + if(s_FR8012HAQ_yyl_data == NULL)//第一次用 + { + FR8012HAQ_LOG("yyl_data1.1:!!!\n"); + s_FR8012HAQ_yyl_data = malloc(yyl_data_len); + s_FR8012HAQ_yyl_data_len = 0; - FR8012HAQ_LOG("emo_data!!!:%s",s_FR8012HAQ_emo_data); - FR8012HAQ_LOG("%s",(char *)s_FR8012HAQ_emo_data+255-12); - FR8012HAQ_LOG("%s",s_FR8012HAQ_emo_data+255+255-12); - FR8012HAQ_LOG("\n"); - FR8012HAQ_LOG("emo_data:len:%d\n",s_FR8012HAQ_emo_data_len); - - } - /*体温*/ - str_tmp = strstr(UART4_buf,"\"temp_data\":\""); - if(str_tmp) - { - - //unsigned char hrs = 0; - str_tmp += strlen("\"temp_data\":\""); - num_buf_len = find_c(str_tmp,'\"'); - if(num_buf_len>=sizeof(num_buf)) - num_buf_len = sizeof(num_buf)-1; - memset(num_buf,0,sizeof(num_buf)); - memcpy(num_buf,str_tmp,num_buf_len); - temp = atof(num_buf); - //FR8012HAQ_LOG("temp:str_tmp:%s\n",str_tmp); - FR8012HAQ_LOG("temp:%f\n",temp); - } - /*佩戴*/ - str_tmp = strstr(UART4_buf,"\"wear_data\":\""); - if(str_tmp) - { - //unsigned char hrs = 0; - str_tmp += strlen("\"wear_data\":\""); - if(*str_tmp == '0') - { - FR8012HAQ_result_set_wear_status(0); - }else - { - FR8012HAQ_result_set_wear_status(1); - } - } - /*恒爱算法库是否激活*/ - str_tmp = strstr(UART4_buf,"\"is_HA_activate\":\""); - if(str_tmp) - { - //unsigned char hrs = 0; - str_tmp += strlen("\"is_HA_activate\":\""); - if(*str_tmp == '1') - is_HA_activate = 1; - else - is_HA_activate = 0; - } - /*恒爱算法库请求码返回*/ - str_tmp = strstr(UART4_buf,"\"HA_req_code\":\""); - if(str_tmp) - { - //unsigned char hrs = 0; - memset(HA_req_code,0,sizeof(HA_req_code)); - str_tmp += strlen("\"HA_req_code\":\""); - num_buf_len = find_c(str_tmp,'\"'); - if(num_buf_len >= sizeof(HA_req_code)) - { - num_buf_len = sizeof(HA_req_code)-1; - } - memcpy(HA_req_code,str_tmp,num_buf_len); - } - /*中医数据*/ - str_tmp = strstr(UART4_buf,"\"yyl_data\":\""); - if(str_tmp && s_FR8012HAQ_yyl_data_len < s_FR8012HAQ_yyl_data_mxa_len) - { - //unsigned char hrs = 0; - str_tmp += strlen("\"yyl_data\":\""); - FR8012HAQ_LOG("yyl_data1:!!!\n"); - unsigned int yyl_data_len = 0; - yyl_data_len = find_c(str_tmp,'\"'); - FR8012HAQ_LOG("yyl_data1.0.0:!!!\n"); - if(s_FR8012HAQ_yyl_data!= NULL && s_FR8012HAQ_yyl_data_len ==0)//统一线程释放,避免上层应用释放导致dump - { - FR8012HAQ_LOG("yyl_data1.0:!!!\n"); - free(s_FR8012HAQ_yyl_data); - s_FR8012HAQ_yyl_data = NULL; - } - - if(s_FR8012HAQ_yyl_data == NULL)//第一次用 - { - FR8012HAQ_LOG("yyl_data1.1:!!!\n"); - s_FR8012HAQ_yyl_data = malloc(yyl_data_len); - s_FR8012HAQ_yyl_data_len = 0; + }else + { + FR8012HAQ_LOG("yyl_data1.3:!!!\n"); + char *s_FR8012HAQ_yyl_data_tmp = malloc(yyl_data_len+s_FR8012HAQ_yyl_data_len); + memcpy(s_FR8012HAQ_yyl_data_tmp,s_FR8012HAQ_yyl_data,s_FR8012HAQ_yyl_data_len); + free(s_FR8012HAQ_yyl_data); + s_FR8012HAQ_yyl_data = s_FR8012HAQ_yyl_data_tmp; - }else - { - FR8012HAQ_LOG("yyl_data1.3:!!!\n"); - char *s_FR8012HAQ_yyl_data_tmp = malloc(yyl_data_len+s_FR8012HAQ_yyl_data_len); - memcpy(s_FR8012HAQ_yyl_data_tmp,s_FR8012HAQ_yyl_data,s_FR8012HAQ_yyl_data_len); - free(s_FR8012HAQ_yyl_data); - s_FR8012HAQ_yyl_data = s_FR8012HAQ_yyl_data_tmp; + } + if(s_FR8012HAQ_yyl_data)//复制数据 + { + FR8012HAQ_LOG("yyl_data1.4:!!!\n"); + memcpy(&s_FR8012HAQ_yyl_data[s_FR8012HAQ_yyl_data_len],str_tmp,yyl_data_len); + s_FR8012HAQ_yyl_data_len+=yyl_data_len; + + } + FR8012HAQ_LOG("yyl_data2:len:%d\n",s_FR8012HAQ_yyl_data_len); + FR8012HAQ_LOG("yyl_data2:len:%d\n",s_FR8012HAQ_yyl_data_len); + FR8012HAQ_LOG("yyl_data3:"); + my_str_print(s_FR8012HAQ_yyl_data,s_FR8012HAQ_yyl_data_len);//打印 + FR8012HAQ_LOG("\n\n"); + + } + } + if(strstr(cmd_str_tmp,"\"cmd\":\"3\"")) + { + ret = 3; + if(strstr(cmd_str_tmp,"\"HA_activate\":\"1\"")) + { + ret = 3; + } + if(strstr(cmd_str_tmp,"\"HA_activate\":\"0\"")) + { + ret = -3; + } } - if(s_FR8012HAQ_yyl_data)//复制数据 + /*********************************************/ + /*执行工作模式成功*/ + str_tmp = strstr(cmd_str_tmp,"\"cmd\":\"1\",\"work_mode\":\"1\""); + if(str_tmp) { - FR8012HAQ_LOG("yyl_data1.4:!!!\n"); - memcpy(&s_FR8012HAQ_yyl_data[s_FR8012HAQ_yyl_data_len],str_tmp,yyl_data_len); - s_FR8012HAQ_yyl_data_len+=yyl_data_len; - + ret = 1; } - FR8012HAQ_LOG("yyl_data2:len:%d\n",s_FR8012HAQ_yyl_data_len); - FR8012HAQ_LOG("yyl_data3:"); - my_str_print(s_FR8012HAQ_yyl_data,s_FR8012HAQ_yyl_data_len);//打印 - FR8012HAQ_LOG("\n\n"); - - } - } - if(strstr(UART4_buf,"\"cmd\":\"3\"")) - { - ret = 3; - if(strstr(UART4_buf,"\"HA_activate\":\"1\"")) - { - ret = 3; - } - if(strstr(UART4_buf,"\"HA_activate\":\"0\"")) + }else { - ret = -3; + break; } - } - /*********************************************/ - /*执行工作模式成功*/ - str_tmp = strstr(UART4_buf,"\"cmd\":\"1\",\"work_mode\":\"1\""); - if(str_tmp) - { - ret = 1; + cmd_str_tmp += strlen("{\""); } } @@ -856,7 +914,7 @@ void fr8012haq_process_data(uint32_t *process_data) // float tmp = 0x3FE2E147; // FR8012HAQ_LOG("float:%f\n",tmp); fr8012haq_parse_returned_data(60); - + uart4_send_data("{\"cmd\":\"0\"}",sizeof("{\"cmd\":\"0\"}"));//保活用 } //返回是否激活返回0未激活,联网后判断一次是否激活,没激活需要执行激活参数 char get_is_HA_activate(void) @@ -1027,6 +1085,13 @@ void fr8012haq_measure_YYL_start(void) FR8012HAQ_LOG("fr8012haq_measure_YYL_start :FR8012HAQ_run_mode:%d!!!!!!!!\n",FR8012HAQ_run_mode); sensor_task_send_message(FR8012HAQ_ID,SENSOR_MSG_START); } +void fr8012haq_measure_factory_start(void) +{ + sys_pm_wakeup_no_lcd(); + FR8012HAQ_run_mode = FACTORY_MODE; + FR8012HAQ_LOG("fr8012haq_measure_factory_start :FR8012HAQ_run_mode:%d!!!!!!!!\n",FR8012HAQ_run_mode); + sensor_task_send_message(FR8012HAQ_ID,SENSOR_MSG_START); +} void fr8012haq_measure_temp_start(void) { sys_pm_wakeup_no_lcd(); @@ -1134,11 +1199,22 @@ void fr8012haq_hr_bp_bo_value_get(uint16_t *hr, uint16_t *bp_high, uint16_t *bp_ if(bo != NULL) *bo = s_FR8012HAQ_blood_oxygen; } +//获取工厂模式数据, +void fr8012haq_factory_data_get(int *apre_val0,int *apre_val1,int *aps_val) +{ + *apre_val0 = factory_apre_val[0]; + *apre_val1 = factory_apre_val[1]; + *aps_val = factory_aps_val; + + FR8012HAQ_LOG("fr8012haq_factory_data_get apre_val0:%d,apre_val1%d,aps_cal:%d\n",*apre_val0,*apre_val1,*aps_val); + return s_FR8012HAQ_yyl_data; +} //获取1分钟血压数据,总共81*60个int数组,返回数据数组,len:长度返回,当长度等于81*60时表示存够数据 int *fr8012haq_blood_data_get(int *len) { //memcpy(blood_buf,s_FR8012HAQ_blood_data,sizeof(s_FR8012HAQ_blood_data)); *len = s_FR8012HAQ_blood_data_len; + printf("fr8012haq_parse_returned_data:bp_data:%d",s_FR8012HAQ_blood_data_len); return s_FR8012HAQ_blood_data; } //获取1分钟情绪数据,返回数据数组,已封装好string,可当参数返回给服务器,len:长度返回 diff --git a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h index c890ee67..5619e56c 100644 --- a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h +++ b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h @@ -34,6 +34,7 @@ typedef enum { WEAR_MODE, HRV_MODE, YYL_MODE, + FACTORY_MODE, LIVING_MODE, LAB_TEST_MODE, FT_LEAK_LIGHT_MODE,