血压模组
authorp15692025051 <846603105@qq.com>
Fri, 5 Jan 2024 09:04:57 +0000 (17:04 +0800)
committerp15692025051 <846603105@qq.com>
Fri, 5 Jan 2024 09:04:57 +0000 (17:04 +0800)
2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c
2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h

index 989a7fc..f77494c 100644 (file)
@@ -453,6 +453,18 @@ void FR8012HAQ_test(uint32_t mode)
 
                 uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"bp\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"bp\"}"));
                 break;
+             case TEMP_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\":\"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\"}"));
@@ -471,7 +483,7 @@ void FR8012HAQ_test(uint32_t mode)
         }
         if(fr8012haq_parse_returned_data() == 1)//必须解析到执行成功
             break;
-
+        UOS_SleepMs(100);
     }
        
     fr8012haq_timer_cfg(true);
@@ -484,7 +496,7 @@ static void fr8012haq_start(void)
     Timer0_Switch(1);
     
     hal_fr8012haq_int_init();
-    FR8012HAQ_restart();
+    
     if(FR8012HAQ_jobs_mode != NULL_MODE)//没关闭就打开其他模式,先关闭一次
     {
         // FR8012HAQ_close();
@@ -522,9 +534,10 @@ static void fr8012haq_stop(void)
     fr8012haq_ppg_timerout_flag = 0;
     fr8012haq_agc_timerout_flag = 0;
     Timer0_Switch(0);
-       
+       FR8012HAQ_restart();
 }
 //读取并解析返回数据
+#define DATA_HANDLE (1<<24)
 #define UART4_BUF_LEN 2*1024
 
 int fr8012haq_parse_returned_data(void)
@@ -581,6 +594,8 @@ int fr8012haq_parse_returned_data(void)
         {
             tem_data += strlen("\"bp_data\":\"");
             num_buf_len = find_c(tem_data,'\"');
+            FR8012HAQ_LOG("bp:hex_str:%s\n",tem_data);
+            FR8012HAQ_LOG("bp:int:");
             for(i=0;i<num_buf_len;i+=6)
             {
                 memcpy(num_buf,&tem_data[i],6);
@@ -589,10 +604,16 @@ int fr8012haq_parse_returned_data(void)
                 if(s_FR8012HAQ_blood_data && s_FR8012HAQ_blood_data_len < s_FR8012HAQ_blood_data_mxa_len/4)
                 {
                     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)
+                    {
+                        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");
             ret = 2;
         }
         /*体温*/
@@ -651,15 +672,15 @@ 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\"}"));
+            //uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"hrs\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"hrs\"}"));
             break;
         case SPO2_MODE:
             /* code */
-            uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"spo2\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"spo2\"}"));
+            //uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"spo2\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"spo2\"}"));
             break;
         case BP_MODE:
             /* code */
-            uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"bp\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"bp\"}"));
+            //uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"bp\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"bp\"}"));
             break;
         case WEAR_MODE:
             /* code */
@@ -769,7 +790,7 @@ void FR8012HAQ_restart(void)
        fr8012haq_en_gpio_enable(false);
        fr8012haq_delay(50);
        fr8012haq_en_gpio_enable(true);
-       fr8012haq_delay(50);
+       fr8012haq_delay(100);
 }
 void fr8012haq_measure_stop(void)
 {
index fbfcd76..140be93 100644 (file)
@@ -16,7 +16,8 @@
 typedef enum {    
        HRS_MODE, 
        SPO2_MODE,
-  BP_MODE,
+       BP_MODE,
+       TEMP_MODE,
        WEAR_MODE,
        HRV_MODE,
   YYL_MODE,