static void * fr8012haq_agc_timer = NULL;
int factory_apre_val[2];
int factory_aps_val;
+
/************************simware add start***********************************/
-/************************simware add start***********************************/
+// static const uint32_t my_xm_mfp_cfgs[] = {
+// MFP_REG(GPIO_85) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_LPM_EDGE_NONE,
+// MFP_EOC /*End of configuration, must have */
+// };
+
+static const uint32_t fr8012haq_mfp_cfgs_sleep[] = {
+ MFP_REG(GPIO_32) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_LPM_EDGE_FALL,
+ MFP_EOC /*End of configuration, must have */
+};
+static const uint32_t fr8012haq_d2_exit_mfp_cfgs[] = {
+ MFP_REG(GPIO_32) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_LPM_EDGE_FALL,
+ 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_18) | 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_EOC
};
+int fr8012haq_int_gpio_d2_ent_callback(void)
+{
+ mfp_config((uint32_t *)fr8012haq_mfp_cfgs_sleep);
+ return 0;
+}
+int fr8012haq_int_gpio_d2_exit_callback(void)
+{
+ mfp_config((uint32_t *)fr8012haq_d2_exit_mfp_cfgs);
+ return 0;
+}
+static void fr8012haq_sleep_suspend(void)
+{
+ Hal_low_power_sleep_suspend(HWD_LOW_POWRE_GSENSOR_1_FLAG);
+}
+
+static void fr8012haq_sleep_resume(void)
+{
+ Hal_low_power_sleep_resume(HWD_LOW_POWRE_GSENSOR_1_FLAG);
+}
typedef void* OS_HISR;
static OS_HISR fr8012haq_hisr_ref;
gpio_set_direction(GPIO81, GPIO_OUT);
gpio_set_direction(GPIO84, GPIO_OUT);
gpio_set_direction(GPIO16, GPIO_OUT);
-
}
void fr8012haq_delay(uint32_t ms)
{
}
static void * fr8012haq_timer = NULL;
+char fr8012haq_timerout_flag = 0;
void fr8012haq_timerout_cb(void)
{
+ if(fr8012haq_timerout_flag == 1)
+ return;
+ fr8012haq_timerout_flag=1;
//FR8012HAQ_LOG("fr8012haq_timerout_cb\n");
OS_Activate_HISR(&fr8012haq_hisr_ref);
}
void fr8012haq_timer_cfg(bool en)
{
- return ;
+
//FR8012HAQ_LOG("fr8012haq_timer_cfg :%d!!!!!!\n\n",en);
if(en)
{
if(fr8012haq_timer == NULL )
uos_timer_create(&fr8012haq_timer);
//fr8012haq_timer = Helios_Timer_init( (void* )fr8012haq_timerout_cb, NULL);
- if(FR8012HAQ_run_mode == WEAR_MODE)
- {
-
- uos_timer_start(fr8012haq_timer, MS_TO_TICKS(3000), MS_TO_TICKS(3000), fr8012haq_timerout_cb, NULL);
- }else if(FR8012HAQ_run_mode == BP_MODE)//血压150MS
+ if(FR8012HAQ_run_mode == BP_MODE)//血压500MS
{
FR8012HAQ_LOG("fr8012haq_timer_cfg:BP_MODE!!!!!\n");
- uos_timer_start(fr8012haq_timer, MS_TO_TICKS(1000), MS_TO_TICKS(1000), fr8012haq_timerout_cb, NULL);
- }else if(FR8012HAQ_run_mode == YYL_MODE)//中医10秒
+ uos_timer_start(fr8012haq_timer, MS_TO_TICKS(500), MS_TO_TICKS(500), fr8012haq_timerout_cb, NULL);
+ }else if(FR8012HAQ_run_mode == YYL_MODE)//中医35秒
{
- uos_timer_start(fr8012haq_timer, MS_TO_TICKS(10000), MS_TO_TICKS(10000), fr8012haq_timerout_cb, NULL);
+ uos_timer_start(fr8012haq_timer, MS_TO_TICKS(35000), MS_TO_TICKS(35000), fr8012haq_timerout_cb, NULL);
}else//其他1秒
{
- uos_timer_start(fr8012haq_timer, MS_TO_TICKS(1000), MS_TO_TICKS(1000), fr8012haq_timerout_cb, NULL);
+ uos_timer_start(fr8012haq_timer, MS_TO_TICKS(3000), MS_TO_TICKS(3000), fr8012haq_timerout_cb, NULL);
}
// FR8012HAQ_LOG("%s\n", (char *)UART4_buf+110);
int print_len_tmp = len ;
- FR8012HAQ_LOG("UART4:len:%d ",len);
- my_str_print(UART4_buf,len);//打印
+ FR8012HAQ_LOG("UART4:len:%d data:",len);
+ //my_str_print(UART4_buf,len);//打印
FR8012HAQ_LOG("\n\n");
cmd_str_tmp = UART4_buf;
while(1)
//FR8012HAQ_LOG("bp:str_tmp:%s\n",str_tmp);
str_tmp += strlen("\"bp_data\":\"");
num_buf_len = find_c(str_tmp,'\"');
- printf("bp:hex_str:%s\n",str_tmp);
- FR8012HAQ_LOG("bp:int:");
+ //printf("bp:hex_str:%s\n",str_tmp);
+ //FR8012HAQ_LOG("bp:int:");
for(i=0;i<num_buf_len;i+=6)
{
memset(num_buf,0,sizeof(num_buf));
{
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("%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");
- printf("fr8012haq_parse_returned_data:bp_data:%d\n",s_FR8012HAQ_blood_data_len);
+ //FR8012HAQ_LOG("\n");
+ FR8012HAQ_LOG("s_FR8012HAQ_blood_data_len:%d\n",s_FR8012HAQ_blood_data_len);
}
/*情绪*/
str_tmp = strstr(cmd_str_tmp,"\"emo_data\":[");
{
//unsigned char hrs = 0;
str_tmp += strlen("\"yyl_data\":\"");
- FR8012HAQ_LOG("yyl_data1:!!!\n");
+ //FR8012HAQ_LOG("yyl_data1:!!!\n");
unsigned int yyl_data_len = 0;
yyl_data_len = find_c(str_tmp,'\"');
- FR8012HAQ_LOG("yyl_data1.0.0:!!!\n");
+ //FR8012HAQ_LOG("yyl_data1.0.0:!!!\n");
if(s_FR8012HAQ_yyl_data!= NULL && s_FR8012HAQ_yyl_data_len ==0)//统一线程释放,避免上层应用释放导致dump
{
- FR8012HAQ_LOG("yyl_data1.0:!!!\n");
+ // FR8012HAQ_LOG("yyl_data1.0:!!!\n");
free(s_FR8012HAQ_yyl_data);
s_FR8012HAQ_yyl_data = NULL;
}
if(s_FR8012HAQ_yyl_data == NULL)//第一次用
{
- FR8012HAQ_LOG("yyl_data1.1:!!!\n");
+ //FR8012HAQ_LOG("yyl_data1.1:!!!\n");
s_FR8012HAQ_yyl_data = malloc(yyl_data_len);
s_FR8012HAQ_yyl_data_len = 0;
}else
{
- FR8012HAQ_LOG("yyl_data1.3:!!!\n");
+ //FR8012HAQ_LOG("yyl_data1.3:!!!\n");
char *s_FR8012HAQ_yyl_data_tmp = malloc(yyl_data_len+s_FR8012HAQ_yyl_data_len);
memcpy(s_FR8012HAQ_yyl_data_tmp,s_FR8012HAQ_yyl_data,s_FR8012HAQ_yyl_data_len);
free(s_FR8012HAQ_yyl_data);
}
if(s_FR8012HAQ_yyl_data)//复制数据
{
- FR8012HAQ_LOG("yyl_data1.4:!!!\n");
+ //FR8012HAQ_LOG("yyl_data1.4:!!!\n");
memcpy(&s_FR8012HAQ_yyl_data[s_FR8012HAQ_yyl_data_len],str_tmp,yyl_data_len);
s_FR8012HAQ_yyl_data_len+=yyl_data_len;
}
FR8012HAQ_LOG("yyl_data2:len:%d\n",s_FR8012HAQ_yyl_data_len);
- FR8012HAQ_LOG("yyl_data2:len:%d\n",s_FR8012HAQ_yyl_data_len);
- FR8012HAQ_LOG("yyl_data3:");
- my_str_print(s_FR8012HAQ_yyl_data,s_FR8012HAQ_yyl_data_len);//打印
+ //FR8012HAQ_LOG("yyl_data2:len:%d\n",s_FR8012HAQ_yyl_data_len);
+ //FR8012HAQ_LOG("yyl_data3:");
+ //my_str_print(s_FR8012HAQ_yyl_data,s_FR8012HAQ_yyl_data_len);//打印
FR8012HAQ_LOG("\n\n");
}
}
return ret ;
}
-char fr8012haq_process_data_flag = 0;
+
void fr8012haq_process_data(uint32_t *process_data)
{
-
+ sys_pm_wakeup_no_lcd();
Timer0_Switch(1);
//FR8012HAQ_LOG("fr8012haq_process_data:%d!!!!\n\n",FR8012HAQ_run_mode);
{
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 */
break;
case YYL_MODE:
/* code */
- //uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"yyl\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"yyl\"}"));
+ uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"yyl\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"yyl\"}"));
break;
case TEMP_MODE:
/* code */
uart4_send_data("{\"cmd\":\"2\",\"get_data\":\"temp\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"temp\"}"));
- UOS_SleepMs(50);
+
break;
default:
break;
}
+ UOS_SleepMs(20);
+
//FR8012HAQ_LOG("fr8012haq_process_data2:%d!!!!\n",FR8012HAQ_run_mode);
// float tmp = 0x3FE2E147;
// FR8012HAQ_LOG("float:%f\n",tmp);
fr8012haq_parse_returned_data(60);
- uart4_send_data("{\"cmd\":\"0\"}",sizeof("{\"cmd\":\"0\"}"));//保活用
- fr8012haq_process_data_flag = 0;
+ //uart4_send_data("{\"cmd\":\"0\"}",sizeof("{\"cmd\":\"0\"}"));//保活用
+ // gpio_enable_edge_detect(GPIO32, EDGE_FLAG_RISE);
+ // fr8012haq_sleep_resume();
+ fr8012haq_timerout_flag=0;
}
//返回是否激活返回0未激活,联网后判断一次是否激活,没激活需要执行激活参数
char get_is_HA_activate(void)
}
static void fr8012haq_isr_callback(void)
{
- if(fr8012haq_process_data_flag == 1)
- return;
- fr8012haq_process_data_flag = 1;
sys_pm_wakeup_no_lcd();
+ // gpio_enable_edge_detect(GPIO32, 0);
+ // fr8012haq_sleep_suspend();
FR8012HAQ_LOG("fr8012haq_isr_callback :!!!!!!!!!!!!\n");
OS_Activate_HISR(&fr8012haq_hisr_ref);
}
Timer0_Switch(1);
mfp_config(fr8012haq_mfp_cfgs);
- gpio_set_direction(GPIO32, GPIO_IN);
- gpio_register_int_handler(GPIO32, fr8012haq_isr_callback);
- gpio_enable_edge_detect(GPIO32, EDGE_FLAG_RISE);
+ // gpio_set_direction(GPIO32, GPIO_IN);
+ // gpio_register_int_handler(GPIO32, fr8012haq_isr_callback);
+ // gpio_enable_edge_detect(GPIO32, EDGE_FLAG_RISE);
fr8012haq_en_gpio_init();
UOS_SleepMs(100);
FR8012HAQ_LOG("FR8012HAQ ID : 0x%02x\n",get_fr8012haq_id());