血压
authorp15692025051 <846603105@qq.com>
Fri, 19 Apr 2024 08:38:26 +0000 (16:38 +0800)
committerp15692025051 <846603105@qq.com>
Fri, 19 Apr 2024 08:38:26 +0000 (16:38 +0800)
2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c
2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h

index ab39c0b..45cae89 100644 (file)
@@ -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);
 }
index 842ce45..d81f5a3 100644 (file)
@@ -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