From: p15692025051 <846603105@qq.com> Date: Fri, 19 Apr 2024 08:38:26 +0000 (+0800) Subject: 血压 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=1555fccf8b30a8f4e9c876a3ed8109af0d3f1449;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 ab39c0bc..45cae89f 100644 --- a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c +++ b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c @@ -47,11 +47,12 @@ static const uint32_t fr8012haq_d2_exit_mfp_cfgs[] = { MFP_EOC /*End of configuration, must have */ }; static uint32_t fr8012haq_mfp_cfgs[] = { - MFP_REG(GPIO_32) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_LPM_EDGE_NONE, + //MFP_REG(GPIO_32) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_NONE | MFP_SLEEP_DIR | MFP_LPM_EDGE_NONE, MFP_REG(GPIO_18) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_LOW | MFP_SLEEP_DIR | MFP_LPM_EDGE_NONE, MFP_REG(GPIO_81) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_LOW | MFP_SLEEP_DIR | MFP_LPM_EDGE_NONE, MFP_REG(GPIO_84) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_LOW | MFP_SLEEP_DIR | MFP_LPM_EDGE_NONE, MFP_REG(GPIO_16) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_LOW | MFP_SLEEP_DIR | MFP_LPM_EDGE_NONE, + MFP_REG(CLK_REQ) | MFP_AF1 | MFP_DRIVE_MEDIUM | MFP_PULL_NONE | MFP_SLEEP_DIR | MFP_LPM_EDGE_NONE, MFP_EOC }; int fr8012haq_int_gpio_d2_ent_callback(void) @@ -126,6 +127,12 @@ static void fr8012haq_en_gpio_init(void) gpio_set_direction(GPIO81, GPIO_OUT); gpio_set_direction(GPIO84, GPIO_OUT); gpio_set_direction(GPIO16, GPIO_OUT); + + gpio_set_direction(GPIO123, GPIO_OUT); + //gpio_set_direction(GPIO32, GPIO_OUT); + // gpio_set_value(GPIO123, GPIO_HIGH); + // gpio_set_value(GPIO32, GPIO_HIGH); + } void fr8012haq_delay(uint32_t ms) { @@ -173,6 +180,23 @@ static void fr8012haq_en_gpio_enable(bool param) gpio_set_value(GPIO84, GPIO_HIGH); } } +//gps_ui_delay_us(1400);//1ms +extern void gps_ui_delay_us(unsigned int us); +//发送数据到蓝牙 +void fr8012haq_write_data(char *buf,int len) +{ + + gpio_set_value(GPIO123, GPIO_LOW); + gps_ui_delay_us(500); + gpio_set_value(GPIO123, GPIO_HIGH); + gps_ui_delay_us(1400*3); + //UOS_SleepMs(1); + // gpio_set_value(GPIO32, GPIO_LOW); + // gps_ui_delay_us(1400); + // gpio_set_value(GPIO32, GPIO_HIGH); + uart4_send_data(buf,len); +} + static char * response_data = NULL; static int response_len = 0; @@ -387,11 +411,11 @@ static void fr8012haq_task_callback(VOID * argv) // FR8012HAQ_LOG("fr8012haq_task_callback7!!!!\n"); // //FR8012HAQ_LOG("[http_client_test]http_client_shutdown(client)\n"); UOS_SleepMs(2000); - //uart4_send_data("UART4:1111!!!!!!!\n",sizeof("UART4:1111!!!!!!!\n")); + //fr8012haq_write_data("UART4:1111!!!!!!!\n",sizeof("UART4:1111!!!!!!!\n")); // len =uart4_recv_data(data,sizeof(data),64); // if(len) // FR8012HAQ_LOG("UART4:len:%d str:%s\n",len,data); - //uart4_send_data("UART4:1111!!!!!!!\n",sizeof("UART4:1111!!!!!!!\n")); + //fr8012haq_write_data("UART4:1111!!!!!!!\n",sizeof("UART4:1111!!!!!!!\n")); } } static void fr8012haq_hisr_callback(void) @@ -489,11 +513,11 @@ void FR8012HAQ_test(uint32_t mode) { case HRS_MODE: /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"hrs\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"hrs\"}")); + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"hrs\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"hrs\"}\n")); break; case SPO2_MODE: /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"spo2\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"spo2\"}")); + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"spo2\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"spo2\"}\n")); break; case BP_MODE: /* code */ @@ -504,7 +528,7 @@ void FR8012HAQ_test(uint32_t mode) } s_FR8012HAQ_blood_data_len =0; - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"bp\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"bp\"}")); + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"bp\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"bp\"}\n")); break; case EMO_MODE: /* code */ @@ -515,30 +539,35 @@ void FR8012HAQ_test(uint32_t mode) } s_FR8012HAQ_emo_data_len =0; - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"emo\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"emo\"}")); + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"emo\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"emo\"}\n")); break; case FACTORY_MODE: - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"factory\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"factory\"}")); + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"factory\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"factory\"}\n")); break; case TEMP_MODE: /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"temp\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"temp\"}")); + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"temp\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"temp\"}\n")); break; case WEAR_MODE: /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"wear\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"wear\"}")); + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"wear\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"wear\"}\n")); break; case HRV_MODE: /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"hrv\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"hrv\"}")); + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"hrv\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"hrv\"}\n")); break; case YYL_MODE: /* code */ - uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}")); + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"yyl\"}\n")); + break; + case OTA_MODE: + /* code */ + fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"OTA\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"OTA\"}\n")); break; + default: break; } @@ -556,7 +585,7 @@ void FR8012HAQ_test(uint32_t mode) while(count--) { send_data_len = snprintf(send_data,sizeof(send_data),"{\"cmd\":\"3\",\"set_time\":\"%d\"}\n",time);//发送时间戳 - uart4_send_data(send_data,send_data_len); + fr8012haq_write_data(send_data,send_data_len); if(fr8012haq_parse_returned_data(100) == 3)//必须解析到执行成功 break; UOS_SleepMs(100); @@ -920,32 +949,32 @@ void fr8012haq_process_data(uint32_t *process_data) { case HRS_MODE: /* code */ - uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"hrs\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"hrs\"}")); + fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"hrs\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"hrs\"}\n")); break; case SPO2_MODE: /* code */ - uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"spo2\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"spo2\"}")); + fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"spo2\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"spo2\"}\n")); break; case BP_MODE: /* code */ - uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"bp\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"bp\"}")); + fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"bp\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"bp\"}\n")); break; case WEAR_MODE: /* code */ - uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"wear\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"wear\"}")); + fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"wear\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"wear\"}\n")); break; case HRV_MODE: /* code */ - //uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"hrv\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"hrv\"}")); + //fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"hrv\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"hrv\"}")); break; case YYL_MODE: /* code */ - uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"yyl\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"yyl\"}")); + fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"yyl\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"yyl\"}\n")); UOS_SleepMs(30); break; case TEMP_MODE: /* code */ - uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"temp\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"temp\"}")); + fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"temp\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"temp\"}\n")); break; default: @@ -957,7 +986,7 @@ void fr8012haq_process_data(uint32_t *process_data) // float tmp = 0x3FE2E147; // FR8012HAQ_LOG("float:%f\n",tmp); fr8012haq_parse_returned_data(150); - //uart4_send_data("{\"cmd\":\"0\"}",sizeof("{\"cmd\":\"0\"}"));//保活用 + //fr8012haq_write_data("{\"cmd\":\"0\"}",sizeof("{\"cmd\":\"0\"}"));//保活用 // gpio_enable_edge_detect(GPIO32, EDGE_FLAG_RISE); // fr8012haq_sleep_resume(); fr8012haq_hisr_ref_flag=0; @@ -965,7 +994,7 @@ void fr8012haq_process_data(uint32_t *process_data) //返回是否激活返回0未激活,联网后判断一次是否激活,没激活需要执行激活参数 char get_is_HA_activate(void) { - uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"is_HA_activate\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"is_HA_activate\"}")); + fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"is_HA_activate\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"is_HA_activate\"}\n")); fr8012haq_parse_returned_data(100); return is_HA_activate; } @@ -990,7 +1019,7 @@ int HA_lib_activate(char *key_code) while(count -- ) { send_data_len = snprintf(send_data,sizeof(send_data),"{\"cmd\":\"3\",\"set_HA_key_code\":\"%s\"}\n",HA_key_code); - uart4_send_data(send_data,send_data_len); + fr8012haq_write_data(send_data,send_data_len); if(fr8012haq_parse_returned_data(100)==3) { if(get_is_HA_activate() == 1)//查询一次 @@ -1020,12 +1049,12 @@ void HA_lib_init(void) u_get_imei(imei); FR8012HAQ_LOG("HA_lib_init:IMEI:%s\n",imei); send_data_len = snprintf(send_data,sizeof(send_data),"{\"cmd\":\"3\",\"set_IMEI\":\"%s\"}\n",imei); - uart4_send_data(send_data,send_data_len); + fr8012haq_write_data(send_data,send_data_len); fr8012haq_parse_returned_data(500); //获取HA_req_code while(count--) { - uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"HA_req_code\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"HA_req_code\"}\n")); + fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"HA_req_code\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"HA_req_code\"}\n")); if(fr8012haq_parse_returned_data(500)==2) break; } @@ -1100,7 +1129,6 @@ uint8_t get_fr8012haq_id(void) uint8_t fr8012haq_chip_id = 0; fr8012haq_en_gpio_enable(true); fr8012haq_delay(50); - //fr8012haq_write_reg(0x01, 0x00); fr8012haq_delay(5); //fr8012haq_chip_id = fr8012haq_read_reg(0x00); fr8012haq_en_gpio_enable(false); @@ -1168,6 +1196,13 @@ void fr8012haq_measure_wear_start(void) sensor_task_send_message(FR8012HAQ_ID,SENSOR_MSG_START); #endif } +void fr8012haq_measure_OTA_start(void) +{ + sys_pm_wakeup_no_lcd(); + FR8012HAQ_run_mode = OTA_MODE ; + FR8012HAQ_LOG("fr8012haq_measure_OTA_start :FR8012HAQ_run_mode:%d!!!!!!!!\n",FR8012HAQ_run_mode); + sensor_task_send_message(FR8012HAQ_ID,SENSOR_MSG_START); +} void FR8012HAQ_restart(void) { fr8012haq_en_gpio_enable(false); @@ -1200,12 +1235,12 @@ void FR8012HAQ_close(void) free(s_FR8012HAQ_emo_data); s_FR8012HAQ_emo_data = NULL; } - //uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"close\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"close\"}")); + //fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"close\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"close\"}\n")); fr8012haq_timer_cfg(false); //fr8012haq_measure_wear_start();//开始佩戴模式 //打开佩戴检测 - //uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"wear\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"wear\"}")); + //fr8012haq_write_data("{\"cmd\":\"1\",\"work_mode\":\"wear\"}\n",sizeof("{\"cmd\":\"1\",\"work_mode\":\"wear\"}\n")); } @@ -1333,11 +1368,11 @@ void FR8012HAQ_result_set_heart_rate(unsigned char heart_rate) } void FR8012HAQ_result_set_wear_status(unsigned char wear_status) { - if(BP_MODE == FR8012HAQ_run_mode) // bp_mode not check wear - { - //printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - return; - } + // if(BP_MODE == FR8012HAQ_run_mode) // bp_mode not check wear + // { + // //printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + // return; + // } //static char wear_tmp = 0; if(wear_status == 0 && s_FR8012HAQ_wear_status == 1)//佩戴变未佩戴 @@ -1353,7 +1388,14 @@ void FR8012HAQ_result_set_wear_status(unsigned char wear_status) mmi_hengai_tcms_action(); //printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + }else + { + if(wear_status == 0) + s_FR8012HAQ_wear_status = 0 ; + else + s_FR8012HAQ_wear_status = 1 ; } + //printf("[@CHENG_DEBUG][%s][%d]: wear=%d,s_wear=%d\n", __FUNCTION__, __LINE__, wear_status, s_FR8012HAQ_wear_status); FR8012HAQ_LOG("s_FR8012HAQ_wear_status:%d !!!!!!!!!!!!!!!!!\n\n\n",s_FR8012HAQ_wear_status); } 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 842ce453..d81f5a36 100644 --- a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h +++ b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h @@ -40,6 +40,7 @@ typedef enum { FT_LEAK_LIGHT_MODE, FT_GRAY_CARD_MODE, FT_INT_TEST_MODE, + OTA_MODE, NULL_MODE, close_MODE } WORK_MODE_T; @@ -66,9 +67,11 @@ int *fr8012haq_blood_data_get(int *len); char* fr8012haq_YYL_data_get(int *yyl_data_len); float fr8012haq_get_body_temperature(void); void fr8012haq_measure_temp_start(void); +void fr8012haq_measure_OTA_start(void); void fr8012haq_measure_factory_start(void); void fr8012haq_factory_data_get(int *apre_val0,int *apre_val1,int *aps_val); int fr8012haq_int_gpio_d2_ent_callback(void); int fr8012haq_int_gpio_d2_exit_callback(void); + #endif