From: p15692025051 <846603105@qq.com> Date: Wed, 17 Jan 2024 10:47:56 +0000 (+0800) Subject: 血压更新 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=5e38f6b38f0f1c787757e762cc87be6ec2b1f56b;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 eef04935..5ab81254 100644 --- a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c +++ b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c @@ -384,15 +384,19 @@ void fr8012haq_timer_cfg(bool en) { uos_timer_start(fr8012haq_timer, MS_TO_TICKS(3000), MS_TO_TICKS(3000), fr8012haq_timerout_cb, NULL); - //Helios_Timer_Start(fr8012haq_timer, 3000, 1); - //Helios_Timer_Start(fr8012haq_timer, 320, 1); - }else + }else if(FR8012HAQ_jobs_mode == BP_MODE)//血压150MS { uos_timer_start(fr8012haq_timer, MS_TO_TICKS(150), MS_TO_TICKS(150), fr8012haq_timerout_cb, NULL); - } + }else if(FR8012HAQ_jobs_mode == YYL_MODE)//中医50秒 + { + uos_timer_start(fr8012haq_timer, MS_TO_TICKS(50000), MS_TO_TICKS(50000), fr8012haq_timerout_cb, NULL); + }else//其他1秒 + { - //Helios_Timer_Start(fr8012haq_timer, 320, 1); + uos_timer_start(fr8012haq_timer, MS_TO_TICKS(1000), MS_TO_TICKS(1000), fr8012haq_timerout_cb, NULL); + } + } else @@ -475,10 +479,10 @@ void FR8012HAQ_test(uint32_t 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; + case YYL_MODE: + /* code */ + uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}")); + break; default: break; } @@ -531,8 +535,8 @@ static void fr8012haq_stop(void) //fr8012haq_en_gpio_enable(false); FR8012HAQ_close(); //FR8012HAQ_LOG("FR8012HAQ_irq_cb: 1111111111111!!!!!!!!\r\n"); - FR8012HAQ_run_mode = NULL_MODE; - FR8012HAQ_jobs_mode = NULL_MODE; + //FR8012HAQ_run_mode = NULL_MODE; + //FR8012HAQ_jobs_mode = NULL_MODE; fr8012haq_ppg_timerout_flag = 0; fr8012haq_agc_timerout_flag = 0; Timer0_Switch(0); @@ -541,7 +545,9 @@ static void fr8012haq_stop(void) //读取并解析返回数据 #define DATA_HANDLE (1<<24) #define UART4_BUF_LEN 2*1024 - +#define YYL_OUT_DATA_SIZE 30 +yylPFE_OutputData yyl_out_data[YYL_OUT_DATA_SIZE]={0}; +int yyl_out_data_len = 0; int fr8012haq_parse_returned_data(int timeout) { static char *UART4_buf = NULL; @@ -556,7 +562,6 @@ int fr8012haq_parse_returned_data(int timeout) return -1; memset(UART4_buf,0,UART4_BUF_LEN); len =uart4_recv_data(UART4_buf,UART4_BUF_LEN,timeout);//读串口数据 - FR8012HAQ_LOG("fr8012haq_parse_returned_data:len:%d!!!!\n",len); if(len) { FR8012HAQ_LOG("UART4:len:%d str:%s",len,UART4_buf); @@ -573,6 +578,7 @@ int fr8012haq_parse_returned_data(int timeout) 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); hrs = atoi(num_buf); FR8012HAQ_result_set_heart_rate(hrs); @@ -586,6 +592,7 @@ int fr8012haq_parse_returned_data(int timeout) 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); @@ -600,6 +607,7 @@ int fr8012haq_parse_returned_data(int timeout) 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); temp = atof(num_buf); } @@ -669,7 +678,97 @@ int fr8012haq_parse_returned_data(int timeout) } memcpy(HA_req_code,str_tmp,num_buf_len); } - + /*中医数据*/ + str_tmp = strstr(UART4_buf,"\"yyl_data\":\""); + if(str_tmp) + { + //unsigned char hrs = 0; + str_tmp += strlen("\"yyl_data\":\""); + //timestamp + 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); + yyl_out_data[yyl_out_data_len].timestamp = atof(num_buf); + FR8012HAQ_LOG("yyl_out_data[timestamp]:%d\n",yyl_out_data[yyl_out_data_len].timestamp); + str_tmp += num_buf_len+1; + //areaUP + 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); + yyl_out_data[yyl_out_data_len].areaUP = atof(num_buf); + FR8012HAQ_LOG("yyl_out_data[areaUP]:%d\n",yyl_out_data[yyl_out_data_len].areaUP); + str_tmp += num_buf_len+1; + //areaUPBase + 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); + yyl_out_data[yyl_out_data_len].areaUPBase = atof(num_buf); + FR8012HAQ_LOG("yyl_out_data[areaUPBase]:%d\n",yyl_out_data[yyl_out_data_len].areaUPBase); + str_tmp += num_buf_len+1; + //areaUPHeight + 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); + yyl_out_data[yyl_out_data_len].areaUPHeight = atof(num_buf); + FR8012HAQ_LOG("yyl_out_data[areaUPHeight]:%d\n",yyl_out_data[yyl_out_data_len].areaUPHeight); + str_tmp += num_buf_len+1; + //areaDOWN + 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); + yyl_out_data[yyl_out_data_len].areaDOWN = atof(num_buf); + FR8012HAQ_LOG("yyl_out_data[areaDOWN]:%d\n",yyl_out_data[yyl_out_data_len].areaDOWN); + str_tmp += num_buf_len+1; + //areaDOWNBase + 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); + yyl_out_data[yyl_out_data_len].areaDOWNBase = atof(num_buf); + FR8012HAQ_LOG("yyl_out_data[areaDOWNBase]:%d\n",yyl_out_data[yyl_out_data_len].areaDOWNBase); + str_tmp += num_buf_len+1; + //areaDOWNHeight + 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); + yyl_out_data[yyl_out_data_len].areaDOWNHeight = atof(num_buf); + FR8012HAQ_LOG("yyl_out_data[areaDOWNHeight]:%d\n",yyl_out_data[yyl_out_data_len].areaDOWNHeight); + str_tmp += num_buf_len+1; + //RRI + 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); + yyl_out_data[yyl_out_data_len].RRI = atof(num_buf); + FR8012HAQ_LOG("yyl_out_data[RRI]:%d\n",yyl_out_data[yyl_out_data_len].RRI); + str_tmp += num_buf_len+1; + //motion + 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); + yyl_out_data[yyl_out_data_len].motion = atof(num_buf); + FR8012HAQ_LOG("yyl_out_data[motion]:%d\n",yyl_out_data[yyl_out_data_len].motion); + str_tmp += num_buf_len+1; + + if(yyl_out_data_len