#define s_FR8012HAQ_blood_data_mxa_len s_FR8012HAQ_blood_freq*4*60 //60秒存的字节数大小
int * s_FR8012HAQ_blood_data = NULL;//血压数据
int s_FR8012HAQ_blood_data_len = 0;//接收的血压数据长度
+
+#define s_FR8012HAQ_emo_data_mxa_len 8*1024 //60秒存的字节数大小
+int * s_FR8012HAQ_emo_data = NULL;//血压数据
+int s_FR8012HAQ_emo_data_len = 0;//接收的血压数据长度
static unsigned char s_FR8012HAQ_blood_oxygen = 0x0;//血氧
static unsigned char s_FR8012HAQ_HRV = 0x0;//hrv
unsigned char s_FR8012HAQ_wear_status = 1;//佩戴状态
uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"bp\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"bp\"}"));
break;
+ case EMO_MODE:
+ /* code */
+ if(s_FR8012HAQ_emo_data ==NULL)
+ {
+ s_FR8012HAQ_emo_data = malloc(s_FR8012HAQ_emo_data_mxa_len);
+ memset(s_FR8012HAQ_emo_data,0,s_FR8012HAQ_emo_data_mxa_len);
+ }
+ s_FR8012HAQ_emo_data_len =0;
+
+ uart4_send_data("{\"cmd\":\"1\",\"work_mode\":\"emo\"}",sizeof("{\"cmd\":\"1\",\"work_mode\":\"emo\"}"));
+ 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;
}
FR8012HAQ_LOG("\n");
}
+ /*情绪*/
+ str_tmp = strstr(UART4_buf,"\"emo_data\":[");
+ if(str_tmp)
+ {
+ str_tmp += strlen("\"emo_data\":[");
+ char *emo_str_tmp = strstr(str_tmp,"]]");
+ num_buf_len = emo_str_tmp+1-str_tmp;
+ if(s_FR8012HAQ_emo_data_len+num_buf_len+1 < s_FR8012HAQ_emo_data_mxa_len)
+ {
+ if(s_FR8012HAQ_emo_data_len != 0)//加逗号
+ {
+ s_FR8012HAQ_emo_data[s_FR8012HAQ_emo_data_len] = ',';
+ s_FR8012HAQ_emo_data_len++;
+ }
+ memcpy(&s_FR8012HAQ_emo_data[s_FR8012HAQ_emo_data_len],str_tmp,num_buf_len);
+ s_FR8012HAQ_emo_data_len+=num_buf_len;
+ }
+ FR8012HAQ_LOG("emo_data:%s\n",s_FR8012HAQ_emo_data);
+
+ }
/*体温*/
str_tmp = strstr(UART4_buf,"\"temper_data\":\"");
if(str_tmp)
memcpy(HA_req_code,str_tmp,num_buf_len);
}
/*中医数据*/
- str_tmp = strstr(UART4_buf,"\"yyl_data\":\"");
+ str_tmp = strstr(UART4_buf,"\"yyl_data\":[");
if(str_tmp)
{
//unsigned char hrs = 0;
- str_tmp += strlen("\"yyl_data\":\"");
+ str_tmp += strlen("\"yyl_data\":[");
//timestamp
num_buf_len = find_c(str_tmp,'/');
if(num_buf_len>=sizeof(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,'/');
+ 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));
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,'/');
+ 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));
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,'/');
+ 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));
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,'/');
+ 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));
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,'/');
+ 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));
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,'/');
+ 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));
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,'/');
+ 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));
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,'\"');
+ 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));
break;
}
//FR8012HAQ_LOG("fr8012haq_process_data2:%d!!!!\n",FR8012HAQ_jobs_mode);
-
+ // float tmp = 0x3FE2E147;
+ // FR8012HAQ_LOG("float:%f\n",tmp);
fr8012haq_parse_returned_data(60);
}
char send_data[256] = {0};
int send_data_len = 0,ret = 0;
char count = 5;
+ FR8012HAQ_LOG("HA_lib_activate:key:%s\n",HA_key_code);
strncpy(HA_key_code,key_code,sizeof(HA_key_code));
if(strlen(HA_key_code)>2)
{
void fr8012haq_measure_bo_start(void)
{
sys_pm_wakeup_no_lcd();
- FR8012HAQ_run_mode = SPO2_MODE;
+ FR8012HAQ_run_mode = EMO_MODE;
FR8012HAQ_LOG("fr8012haq_measure_bo_start :FR8012HAQ_run_mode:%d!!!!!!!!\n",FR8012HAQ_run_mode);
sensor_task_send_message(FR8012HAQ_ID,SENSOR_MSG_START);
}
FR8012HAQ_LOG("fr8012haq_measure_bp_start :FR8012HAQ_run_mode:%d!!!!!!!!\n",FR8012HAQ_run_mode);
sensor_task_send_message(FR8012HAQ_ID,SENSOR_MSG_START);
}
+void fr8012haq_measure_emo_start(void)
+{
+ sys_pm_wakeup_no_lcd();
+ FR8012HAQ_run_mode = EMO_MODE ;
+ FR8012HAQ_LOG("fr8012haq_measure_bp_start :FR8012HAQ_run_mode:%d!!!!!!!!\n",FR8012HAQ_run_mode);
+ sensor_task_send_message(FR8012HAQ_ID,SENSOR_MSG_START);
+}
void fr8012haq_measure_YYL_start(void)
{
sys_pm_wakeup_no_lcd();
free(s_FR8012HAQ_blood_data);
s_FR8012HAQ_blood_data = NULL;
}
+ if(s_FR8012HAQ_emo_data!= NULL)
+ {
+ 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_timer_cfg(false);
//fr8012haq_hrs_disable
*len = s_FR8012HAQ_blood_data_len;
return s_FR8012HAQ_blood_data;
}
+//获取1分钟情绪数据,返回数据数组,已封装好string,可当参数返回给服务器,len:长度返回
+char *fr8012haq_emo_data_get(int *len)
+{
+ //memcpy(blood_buf,s_FR8012HAQ_blood_data,sizeof(s_FR8012HAQ_blood_data));
+ *len = s_FR8012HAQ_emo_data_len;
+ return s_FR8012HAQ_emo_data;
+}
//获取云医链中医数据,一分钟产生一个,最多存30个。返回当前存多少个,yyl_data:数据复制缓冲区,必须大于30*sizeof(yylPFE_OutputData)
//yylPFE_OutputData yyl_out_data
int fr8012haq_YYL_data_get(yylPFE_OutputData *yyl_data)