血压模组驱动添加
authorp15692025051 <846603105@qq.com>
Tue, 26 Dec 2023 01:58:31 +0000 (09:58 +0800)
committerp15692025051 <846603105@qq.com>
Tue, 26 Dec 2023 01:58:31 +0000 (09:58 +0800)
2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c
2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h

index be40eb9..e542345 100644 (file)
@@ -46,6 +46,7 @@ static unsigned char is_open_FR8012HAQ = 0; //是否打开测试
 static unsigned char s_FR8012HAQ_heart_rate = 0x0;//心律
 static unsigned char s_FR8012HAQ_high_blood = 0x0;//血压/高压
 static unsigned char s_FR8012HAQ_low_blood = 0x0;//血压/低压
+unsigned char s_FR8012HAQ_blood_data[48*2] = {0};//血压数据
 static unsigned char s_FR8012HAQ_blood_oxygen = 0x0;//血氧
 static unsigned char s_FR8012HAQ_HRV = 0x0;//hrv
 unsigned char s_FR8012HAQ_wear_status = 1;//佩戴状态
@@ -243,7 +244,12 @@ static void fr8012haq_task_callback(VOID * argv)
     //char data[500]= {0};
     int len = 0;
     //uart4_debug();
-    char post_data[] ="{\"app_key\": \"1db74281ece314ba6bbc2b553222cd84\",\"name\": \"RH303\",\"firm\": \"魔方\",\"mac\": \"DA:19:72:F3:0A:89\",\"model\": \"T11\",\"sensor\": {\"model\": \"VP60\",\"fs\": 81},\"sinklib_version\": \"v0.3.0.072522\",\"request_code\":\"6+m78fFJkFKu1mzhhL4jKRJTEhJMwvSJFlJhWIgRC8wfyB0HFw8JMURNQ6c3MP/U\"}" ;
+    //char post_data[] ="{\"app_key\": \"5d3ef21f0cbf966505c3d5137740be77\",\"name\": \"RH303\",\"firm\": \"魔方\",\"mac\": \"DA:19:72:F3:0A:89\",\"model\": \"T11\",\"sensor\": {\"model\": \"VP60\",\"fs\": 81},\"sinklib_version\": \"v0.3.0.072522\",\"request_code\":\"6+m78fFJkFKu1mzhhL4jKRJTEhJMwvSJFlJhWIgRC8wfyB0HFw8JMURNQ6c3MP/U\"}" ;
+    //char post_data[] ="{\"app_key\": \"5d3ef21f0cbf966505c3d5137740be77\",\"phone\": \"18100000001\",\"passwd\": \
+    \"abc123\",\"name\": \"张三\",\"gender\": 1,\"birthday\": \"2002-06-01\",\"height\": 166,\"weight\": 56,\
+    \"description\": \"1111\"}";
+    //char url[] = "http://test.aicaring.com/api/v0/sinklib/activation";
+    //char url[] = "http://test.aicaring.com/api/v0/entrance/user/login";
     char *read_buff = (void*)malloc(2000);
     if(!read_buff)
         return ;
@@ -252,8 +258,8 @@ static void fr8012haq_task_callback(VOID * argv)
         
         UOS_SleepMs(5000);
         
-        //fr8012haq_http_post_json("http://test.aicaring.com/api/v0/sinklib/activation",post_data,read_buff,2000,10000);
-        
+        //fr8012haq_http_post_json(url,post_data,read_buff,2000,10000);
+
         // FR8012HAQ_LOG("fr8012haq_task_callback1!!!!\n");
         // client = http_client_init();
         // http_client_setopt(client, HTTPCLIENT_OPT_URL, "http://test.aicaring.com/api/v0/sinklib/activation");    /*set URL:support http/https and ip4/ip6*/
@@ -396,6 +402,7 @@ void FR8012HAQ_test(uint32_t mode)
        s_FR8012HAQ_heart_rate_buff_count = 0; 
        s_FR8012HAQ_high_blood = 0x0;
        s_FR8012HAQ_low_blood = 0x0;
+    memset(s_FR8012HAQ_blood_data,0,sizeof(s_FR8012HAQ_blood_data));
        s_FR8012HAQ_HRV = 0;
        //s_FR8012HAQ_wear_status = 0;
        s_FR8012HAQ_blood_oxygen = 0x0;
@@ -523,13 +530,12 @@ void fr8012haq_analysis_data(char *data,unsigned int len)
     {
         
         unsigned char spo2 = 0;
-        tem_data += strlen("\"spo2_data\":\"");
+        tem_data += strlen("\"bp_data\":\"");
         num_buf_len = find_c(tem_data,'\"');
-        if(num_buf_len>=sizeof(num_buf))
-            num_buf_len = sizeof(num_buf)-1;
-        memcpy(num_buf,tem_data,num_buf_len);
-        spo2 = atoi(num_buf);
-        FR8012HAQ_result_set_blood_oxygen(spo2);
+        if(num_buf_len>sizeof(s_FR8012HAQ_blood_data))
+            num_buf_len = sizeof(s_FR8012HAQ_blood_data);
+        memcpy(s_FR8012HAQ_blood_data,tem_data,num_buf_len);
+        
     }
     /*体温*/
     tem_data = strstr(data,"\"temper_data\":\"");
@@ -745,7 +751,7 @@ static void fr8012haq_hr_bp_bo_value_update(uint16_t hr, uint16_t bp_high, uint1
     s_FR8012HAQ_blood_oxygen = bo;
     s_FR8012HAQ_high_blood = bp_high ;
     s_FR8012HAQ_low_blood = bp_low ;
-    
+    memset(s_FR8012HAQ_blood_data,0,sizeof(s_FR8012HAQ_blood_data));
 
     // if(hr > 0) {
     //     fr8012haq_hr_bp_bo_value.hr = hr;
@@ -781,6 +787,11 @@ 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;
 }
+//获取48字节aslcc码的十六进制血压数据到blood_buf,注意:blood_buf长度要大于等于48*2字节
+void fr8012haq_blood_data_get(char *blood_buf)
+{ 
+    memcpy(blood_buf,s_FR8012HAQ_blood_data,sizeof(s_FR8012HAQ_blood_data));
+}
 
 void fr8012haq_hr_bp_bo_value_clear(void)
 {
@@ -788,6 +799,7 @@ void fr8012haq_hr_bp_bo_value_clear(void)
        s_FR8012HAQ_heart_rate_buff_count = 0; 
        s_FR8012HAQ_high_blood = 0x0;
        s_FR8012HAQ_low_blood = 0x0;
+    memset(s_FR8012HAQ_blood_data,0,sizeof(s_FR8012HAQ_blood_data));
        s_FR8012HAQ_HRV = 0;
        //s_FR8012HAQ_wear_status = 0;
        s_FR8012HAQ_blood_oxygen = 0x0;
index 60672fd..6155b60 100644 (file)
@@ -47,4 +47,5 @@ void FR8012HAQ_result_set_wear_status(unsigned char wear_status);
 unsigned char FR8012HAQ_result_get_wear_status(void);
 void FR8012HAQ_close(void);
 void fr8012haq_measure_stop(void);
+void fr8012haq_blood_data_get(char *blood_buf);
 #endif