memset(status_file_path, 0, sizeof(status_file_path));
memset(dir_path, 0, sizeof(dir_path));
memset(nap_file_path, 0, sizeof(nap_file_path));
+ memset(&ui_nap_data, 0, sizeof(ui_nap_data));
+ memset(&ui_sleep_data, 0, sizeof(ui_nap_data));
wake_up_flag = 0;
}
uint16_t fifo_read_length = 0;\r
uint16_t fifo_read_bytes = 0;\r
uint16_t fifo_out_count = 0;\r
-\r
+ uint8_t retry_cnt = 0;\r
data_len_h = hx3695_read_reg(0x21);\r
data_len_l = hx3695_read_reg(0x20);\r
fifo_data_length = (((data_len_h&0x01)<<8)|data_len_l);\r
\r
// printf("threshold : %d\n",threshold);\r
\r
- if(fifo_data_length > threshold)\r
- {\r
- data_len_h = hx3695_read_reg(0x21);\r
- data_len_l = hx3695_read_reg(0x20);\r
- fifo_data_length = (((data_len_h&0x01)<<8)|data_len_l);\r
- // printf("222 fifo data length again %d %d %d\n", data_len_h, data_len_l, fifo_data_length);\r
- }\r
+ if(fifo_data_length > threshold)\r
+ {\r
+ for(int i = 0 ; i < 3; i++)\r
+ {\r
+ data_len_h = hx3695_read_reg(0x21);\r
+ data_len_l = hx3695_read_reg(0x20);\r
+ fifo_data_length = (((data_len_h&0x01)<<8)|data_len_l);\r
+ // printf("222 fifo data length again %d %d %d\n", data_len_h, data_len_l, fifo_data_length);\r
+ if(fifo_data_length > threshold)\r
+ {\r
+ retry_cnt ++;\r
+ }\r
+ else\r
+ break;\r
+ }\r
+ }\r
+\r
\r
if (fifo_data_length>FIFO_DATA_LENGTH)\r
{\r
\r
hx3695_get_led_para(ppg_sensor_dat);\r
\r
+ if(retry_cnt >= 3)\r
+ {\r
+ if(work_mode_flag == WEAR_MODE)\r
+ fifo_out_count = 25;\r
+ else\r
+ fifo_out_count = 8;\r
+ }\r
+\r
+\r
return fifo_out_count;\r
}\r
\r
#endif\r
}\r
\r
-bool hx3695_check_wear(ppg_sensor_data_t *ppg_sensor_dat)\r
+bool hx3695_check_wear(ppg_sensor_data_t *ppg_sensor_dat,uint8_t count)\r
{\r
uint8_t ii = 0;\r
\r
- for(ii=0;ii<ppg_sensor_dat->led_data[3].data_count;ii++)\r
+ for(ii=0;ii<count;ii++)\r
{\r
if(ppg_sensor_dat->led_data[3].data_val[ii] > CHECK_WEAR_THRE)\r
{\r
// printf("count:%d\n",count);\r
if(count > 0)\r
{\r
- hx3695_check_wear(ppg_sensor_dat);\r
+ hx3695_check_wear(ppg_sensor_dat,count);\r
if(wear_status == MSG_WEAR)\r
{\r
hx3695_alg_send_data(ppg_sensor_dat,work_mode_flag,count);\r