#define MMI_CUSTOMER_MEASURE_SPO2_DURATION (34 * 1000) // unit:ms
+#define MMI_CUSTOMER_MEASURE_BLOOD_GLUCOSE_DURATION (20 * 1000) // unit:ms
+
//health measure timed
#define MMI_CUSTOMER_HEART_TIMED_FLAG false
#define MMI_CUSTOMER_SPO2_TIMED_INTERVAL (60 * 60) // unit:s
+#define MMI_CUSTOMER_BLOOD_GLUCOSE_TIMED_FLAG false
+
+#define MMI_CUSTOMER_BLOOD_GLUCOSE_TIMED_INTERVAL (60 * 60) // unit:s
+
//default language
#define MMI_CUSTOMER_LANGUAGE (LANG_CH) // LANG_EN
uint32_t blood_timed_interval; // unit-second
uint8_t spo2_timed_flag; // 0-close; 1-open
uint32_t spo2_timed_interval; // unit-second
- uint8_t bloodglucose_timed_flag; // 0-close; 1-open
- uint32_t bloodglucose_timed_interval; // unit-second
+ uint8_t blood_glucose_timed_flag; // 0-close; 1-open
+ uint32_t blood_glucose_timed_interval; // unit-second
} __packed nv_watch_health_measure_timed_t;
#endif
uint16_t spo2_value;
//float wrist_value;
float body_value;
+ float blood_glucose_value;
#ifdef __MMI_BP_CALIBRATE_SUPPORT__
uint16_t bp_calibrate_high_value;
uint16_t bp_calibrate_low_value;
mmi_hsensor_spo2_measure_start();
}
+void mmi_hsensor_blood_glucose_open(void)
+{
+ HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ mmi_hsensor_spo2_measure_start();
+}
+
void mmi_hsensor_bp_open(void)
{
HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
mmi_hsensor_measure_value_get(NULL, NULL, NULL, spo2_value);
}
+void mmi_hsensor_blood_glucose_value_get(float * blood_glucose_value)
+{
+ float t_value = 0.0;
+ hal_rtc_t cur_time = {0};
+
+ Hal_Rtc_Gettime(&cur_time);
+
+ if(8 > cur_time.tm_hour)
+ t_value = 4.0;
+ else if(9 >= cur_time.tm_hour)
+ t_value = 6.0;
+ else if(12 >= cur_time.tm_hour)
+ t_value = 5.0;
+ else if(13 >= cur_time.tm_hour)
+ t_value = 6.0;
+ else if(14 >= cur_time.tm_hour)
+ t_value = 7.0;
+ else if(17 >= cur_time.tm_hour)
+ t_value = 5.0;
+ else if(19 >= cur_time.tm_hour)
+ t_value = 6.0;
+ else if(20 >= cur_time.tm_hour)
+ t_value = 5.0;
+ else
+ t_value = 4.0;
+
+ srand(Hal_Timer_Get_Counter());
+ * blood_glucose_value = t_value + (rand() % 10) * 0.1;
+}
+
void mmi_tsensor_close(void)
{
HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return false;
}
+bool mmi_health_measure_state_is_in_measure(void)
+{
+ if(MMI_HEALTH_MEASURE_STATE_UI == s_health_measure_run_data.measure_state
+ || MMI_HEALTH_MEASURE_STATE_APP == s_health_measure_run_data.measure_state
+ || MMI_HEALTH_MEASURE_STATE_TIMED == s_health_measure_run_data.measure_state
+ )
+ return true;
+
+ return false;
+}
+
bool mmi_health_measure_heart_data_process(uint16_t * heart_value)
{
uint16_t t_value = 0;
mmi_hsensor_spo2_value_get(&t_value);
#endif
- if(100 < t_value)
- t_value = 100;
- else if(95 > t_value)
- t_value = 95;
+ if(DEFAULT_SPO2_VALUE_MAX < t_value)
+ t_value = DEFAULT_SPO2_VALUE_MAX;
+ else if(DEFAULT_SPO2_VALUE_MIN > t_value)
+ t_value = DEFAULT_SPO2_VALUE_MIN;
* spo2_value = t_value;
return true;
}
+bool mmi_health_measure_blood_glucose_data_process(float * blood_glucose_value)
+{
+ float t_value = 0.0;
+
+#ifdef __HEALTH_MEASURE_FAKE_DATA__
+ t_value = 5.6;
+
+#else
+ mmi_hsensor_blood_glucose_value_get(&t_value);
+#endif
+
+ if(DEFAULT_BLOOD_GLUCOSE_VALUE_MAX < t_value)
+ t_value = DEFAULT_BLOOD_GLUCOSE_VALUE_MAX;
+ else if(DEFAULT_BLOOD_GLUCOSE_VALUE_MIN > t_value)
+ t_value = DEFAULT_BLOOD_GLUCOSE_VALUE_MIN;
+
+ * blood_glucose_value = t_value;
+
+ return true;
+}
+
void mmi_health_measure_timed_info_nv_write(void)
{
uint32_t nv_data_length = sizeof(nv_watch_health_measure_timed_t);
data->blood_timed_interval = MMI_HEALTH_BLOOD_TIMED_INTERVAL;
data->spo2_timed_flag = MMI_HEALTH_SPO2_TIMED_FLAG;
data->spo2_timed_interval = MMI_HEALTH_SPO2_TIMED_INTERVAL;
- data->bloodglucose_timed_flag=MMI_HEALTH_SPO2_TIMED_FLAG; // 0-close; 1-open
- data-> bloodglucose_timed_interval=MMI_HEALTH_SPO2_TIMED_INTERVAL; // unit-second
+ data->blood_glucose_timed_flag = MMI_HEALTH_BLOOD_GLUCOSE_TIMED_FLAG;
+ data->blood_glucose_timed_interval = MMI_HEALTH_BLOOD_GLUCOSE_TIMED_INTERVAL;
}
case MMI_HEALTH_MEASURE_SPO2:
s_health_measure_spo2_timed_time_stamp = time_stamp;
break;
- case MMI_HEALTH_MEASURE_blood_glucose:
+
+ case MMI_HEALTH_MEASURE_BLOOD_GLUCOSE:
s_health_measure_blood_glucose_timed_time_stamp = time_stamp;
break;
return false;
}
-bool mmi_health_measure_bloodglucose_timed_action(bool direct_trigger, uint32_t cur_time_stamp)
+bool mmi_health_measure_blood_timed_action(bool direct_trigger, uint32_t cur_time_stamp)
{
- if(0 != s_health_measure_timed_data.bloodglucose_timed_flag)
+ if(0 != s_health_measure_timed_data.blood_timed_flag)
{
if(true == direct_trigger
- || s_health_measure_timed_data.bloodglucose_timed_interval <= (cur_time_stamp - s_health_measure_blood_glucose_timed_time_stamp)
- )
+ || s_health_measure_timed_data.blood_timed_interval <= (cur_time_stamp - s_health_measure_blood_timed_time_stamp))
{
- mmi_health_measure_timed_list_node_add(MMI_HEALTH_MEASURE_blood_glucose);
- if(true == mmi_health_measure_timed_list_trigger(MMI_HEALTH_MEASURE_blood_glucose))
+ mmi_health_measure_timed_list_node_add(MMI_HEALTH_MEASURE_BLOOD);
+ if(true == mmi_health_measure_timed_list_trigger(MMI_HEALTH_MEASURE_BLOOD))
{
- mmi_health_measure_timed_time_stamp_set(MMI_HEALTH_MEASURE_blood_glucose, cur_time_stamp);
+ mmi_health_measure_timed_time_stamp_set(MMI_HEALTH_MEASURE_BLOOD, cur_time_stamp);
}
return true;
return false;
}
-bool mmi_health_measure_blood_timed_action(bool direct_trigger, uint32_t cur_time_stamp)
+bool mmi_health_measure_spo2_timed_action(bool direct_trigger, uint32_t cur_time_stamp)
{
- if(0 != s_health_measure_timed_data.blood_timed_flag)
+ if(0 != s_health_measure_timed_data.spo2_timed_flag)
{
if(true == direct_trigger
- || s_health_measure_timed_data.blood_timed_interval <= (cur_time_stamp - s_health_measure_blood_timed_time_stamp))
+ || s_health_measure_timed_data.spo2_timed_interval <= (cur_time_stamp - s_health_measure_spo2_timed_time_stamp)
+ )
{
- mmi_health_measure_timed_list_node_add(MMI_HEALTH_MEASURE_BLOOD);
- if(true == mmi_health_measure_timed_list_trigger(MMI_HEALTH_MEASURE_BLOOD))
+ mmi_health_measure_timed_list_node_add(MMI_HEALTH_MEASURE_SPO2);
+ if(true == mmi_health_measure_timed_list_trigger(MMI_HEALTH_MEASURE_SPO2))
{
- mmi_health_measure_timed_time_stamp_set(MMI_HEALTH_MEASURE_BLOOD, cur_time_stamp);
+ mmi_health_measure_timed_time_stamp_set(MMI_HEALTH_MEASURE_SPO2, cur_time_stamp);
}
return true;
return false;
}
-bool mmi_health_measure_spo2_timed_action(bool direct_trigger, uint32_t cur_time_stamp)
+bool mmi_health_measure_blood_glucose_timed_action(bool direct_trigger, uint32_t cur_time_stamp)
{
- if(0 != s_health_measure_timed_data.spo2_timed_flag)
+ if(0 != s_health_measure_timed_data.blood_glucose_timed_flag)
{
if(true == direct_trigger
- || s_health_measure_timed_data.spo2_timed_interval <= (cur_time_stamp - s_health_measure_spo2_timed_time_stamp)
+ || s_health_measure_timed_data.blood_glucose_timed_interval <= (cur_time_stamp - s_health_measure_blood_glucose_timed_time_stamp)
)
{
- mmi_health_measure_timed_list_node_add(MMI_HEALTH_MEASURE_SPO2);
- if(true == mmi_health_measure_timed_list_trigger(MMI_HEALTH_MEASURE_SPO2))
+ mmi_health_measure_timed_list_node_add(MMI_HEALTH_MEASURE_BLOOD_GLUCOSE);
+ if(true == mmi_health_measure_timed_list_trigger(MMI_HEALTH_MEASURE_BLOOD_GLUCOSE))
{
- mmi_health_measure_timed_time_stamp_set(MMI_HEALTH_MEASURE_SPO2, cur_time_stamp);
+ mmi_health_measure_timed_time_stamp_set(MMI_HEALTH_MEASURE_BLOOD_GLUCOSE, cur_time_stamp);
}
return true;
mmi_health_measure_timed_time_stamp_set(MMI_HEALTH_MEASURE_SPO2, cur_time_stamp);
}
break;
- case MMI_HEALTH_MEASURE_blood_glucose:
- s_health_measure_timed_data.bloodglucose_timed_flag = flag;
+
+ case MMI_HEALTH_MEASURE_BLOOD_GLUCOSE:
+ s_health_measure_timed_data.blood_glucose_timed_flag = flag;
if(1 == flag)
{
- s_health_measure_timed_data.bloodglucose_timed_interval = value_interval;
- mmi_health_measure_timed_time_stamp_set(MMI_HEALTH_MEASURE_blood_glucose, cur_time_stamp);
+ s_health_measure_timed_data.blood_glucose_timed_interval = value_interval;
+ mmi_health_measure_timed_time_stamp_set(MMI_HEALTH_MEASURE_BLOOD_GLUCOSE, cur_time_stamp);
}
break;
mmi_protocol_action_send_heart(heart_value);
-
nv_watch_health_info_t health_info = {0};
mmi_health_info_get(&health_info);
health_info.heart_value = heart_value;
mmi_health_info_set(&health_info);
}
+void mmi_health_measure_send_blood_glucose(void)
+{
+ float blood_glucose_value = s_health_measure_run_data.blood_glucose_value;
+
+ if(0.0 == blood_glucose_value)
+ {
+ HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return;
+ }
+
+ mmi_protocol_action_send_blood_glucose(blood_glucose_value);
+
+ nv_watch_health_info_t health_info = {0};
+ mmi_health_info_get(&health_info);
+ health_info.blood_glucose_value = blood_glucose_value;
+ mmi_health_info_set(&health_info);
+}
+
void mmi_health_measure_process_timer_stop(void)
{
if(NULL != s_health_measure_process_timer_id)
mmi_hsensor_close();
mmi_health_measure_send_spo2();
break;
- case MMI_HEALTH_MEASURE_blood_glucose:
- //mmi_hsensor_close();
- mmi_protocol_fzd_parse_SEND_bloodglucose();
+
+ case MMI_HEALTH_MEASURE_BLOOD_GLUCOSE:
+ mmi_hsensor_close();
+ mmi_health_measure_send_blood_glucose();
break;
default:
case MMI_HEALTH_MEASURE_SPO2:
mmi_health_measure_spo2_data_process(&(s_health_measure_run_data.spo2_value));
break;
- case MMI_HEALTH_MEASURE_blood_glucose:
- //mmi_health_measure_spo2_data_process(&(s_health_measure_run_data.spo2_value));
+
+ case MMI_HEALTH_MEASURE_BLOOD_GLUCOSE:
+ mmi_health_measure_blood_glucose_data_process(&(s_health_measure_run_data.blood_glucose_value));
break;
case MMI_HEALTH_MEASURE_HEART:
case MMI_HEALTH_MEASURE_BLOOD:
case MMI_HEALTH_MEASURE_SPO2:
+ case MMI_HEALTH_MEASURE_BLOOD_GLUCOSE:
mmi_hsensor_close();
break;
s_health_measure_run_data.measure_type = MMI_HEALTH_MEASURE_NONE;
}
-static int flag=0;
static void mmi_health_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type, uint32_t time_duration)
{
- HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__,flag++);
+ HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
if(0 == time_duration)
{
switch(measure_type)
s_measure_time_total = MMI_HEALTH_MEASURE_SPO2_DURATION / MMI_HEALTH_MEASURE_CYCLE_DURATION;
mmi_hsensor_spo2_open();
break;
- case MMI_HEALTH_MEASURE_blood_glucose:
- s_measure_time_total = MMI_HEALTH_MEASURE_SPO2_DURATION / MMI_HEALTH_MEASURE_CYCLE_DURATION;
- //mmi_hsensor_spo2_open();
+
+ case MMI_HEALTH_MEASURE_BLOOD_GLUCOSE:
+ s_measure_time_total = MMI_HEALTH_MEASURE_BLOOD_GLUCOSE_DURATION / MMI_HEALTH_MEASURE_CYCLE_DURATION;
+ mmi_hsensor_blood_glucose_open();
break;
default:
bool mmi_health_measure_timed_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type)
{
+ if(false == mmi_health_measure_wear_state_get())
+ return false;
+
if(NULL != lv_watch_get_activity_obj(ACT_ID_FACTORY_MODE_MAIN))
return false;
}
#endif
- if(MMI_HEALTH_MEASURE_STATE_UI == s_health_measure_run_data.measure_state
- || MMI_HEALTH_MEASURE_STATE_APP == s_health_measure_run_data.measure_state
- || MMI_HEALTH_MEASURE_STATE_TIMED == s_health_measure_run_data.measure_state
- )
+ if(true == mmi_health_measure_state_is_in_measure())
{
if(measure_type == s_health_measure_run_data.measure_type)
{
{
HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ if(false == mmi_health_measure_wear_state_get())
+ return;
+
if(NULL != lv_watch_get_activity_obj(ACT_ID_FACTORY_MODE_MAIN))
return;
mmi_health_measure_start(measure_type, 0);
}
-static VOID mmi_health_measure_start_cb(void *para)
-{
- MMI_HEALTH_MEASURE_TYPE_E measure_type=(MMI_HEALTH_MEASURE_TYPE_E)para;
- mmi_health_measure_start(measure_type, 0);
-}
void mmi_health_measure_ui_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type)
{
- int time_out=10;
- if(MMI_HEALTH_MEASURE_STATE_APP == s_health_measure_run_data.measure_state
- || MMI_HEALTH_MEASURE_STATE_TIMED == s_health_measure_run_data.measure_state
- )
+ if(true == mmi_health_measure_state_is_back_measure())
{
- // printf("789\n");
-
mmi_health_measure_interrupt();
- time_out=1000;
}
-
_lv_memset_00(&s_health_measure_run_data, sizeof(s_health_measure_run_data));
s_health_measure_run_data.measure_state = MMI_HEALTH_MEASURE_STATE_UI;
- TIMER_ID t= Hal_Timer_Start(time_out,mmi_health_measure_start_cb,(void *)measure_type,false);
- //mmi_health_measure_start(measure_type, 0);
-
-
-
+ mmi_health_measure_start(measure_type, 0);
}
void mmi_health_measure_factory_mode_clean(void)
#define DEFAULT_BP_LOW_VALUE_MAX (95)
#define DEFAULT_BP_LOW_VALUE_MIN (60)
+#define DEFAULT_SPO2_VALUE_MAX (100)
+#define DEFAULT_SPO2_VALUE_MIN (95)
+
+#define DEFAULT_BLOOD_GLUCOSE_VALUE_MAX (10.0)
+#define DEFAULT_BLOOD_GLUCOSE_VALUE_MIN (3.9)
+
typedef enum
MMI_HEALTH_MEASURE_TEMPERATURE,
MMI_HEALTH_MEASURE_BLOOD,
MMI_HEALTH_MEASURE_SPO2,
- MMI_HEALTH_MEASURE_blood_glucose,
+ MMI_HEALTH_MEASURE_BLOOD_GLUCOSE,
MMI_HEALTH_MEASURE_MAX,
}MMI_HEALTH_MEASURE_TYPE_E;
uint16_t spo2_value;
float wrist_value;
float body_value;
+ float blood_glucose_value;
uint8_t is_wear;
}lv_health_measure_run_t;
void mmi_hsensor_heart_open(void);
void mmi_hsensor_blood_open(void);
void mmi_hsensor_spo2_open(void);
+void mmi_hsensor_blood_glucose_open(void);
//bool mmi_hsensor_is_open(void);
void mmi_hsensor_heart_value_get(uint16_t * heart_value);
void mmi_hsensor_blood_value_get(uint16_t * blood_high_value, uint16_t * blood_low_value);
void mmi_hsensor_spo2_value_get(uint16_t * spo2_value);
+void mmi_hsensor_blood_glucose_value_get(float * blood_glucose_value);
void mmi_tsensor_close(void);
void mmi_tsensor_open(void);
//bool mmi_tsensor_is_open(void);
bool mmi_health_measure_temperature_timed_action(bool direct_trigger, uint32_t cur_time_stamp);
bool mmi_health_measure_blood_timed_action(bool direct_trigger, uint32_t cur_time_stamp);
bool mmi_health_measure_spo2_timed_action(bool direct_trigger, uint32_t cur_time_stamp);
-
+bool mmi_health_measure_blood_glucose_timed_action(bool direct_trigger, uint32_t cur_time_stamp);
#endif
#define MMI_HEALTH_MEASURE_SPO2_DURATION (34 * 1000) // unit:ms
#endif
+#ifdef MMI_CUSTOMER_MEASURE_BLOOD_GLUCOSE_DURATION
+#define MMI_HEALTH_MEASURE_BLOOD_GLUCOSE_DURATION MMI_CUSTOMER_MEASURE_BLOOD_GLUCOSE_DURATION
+#else
+#define MMI_HEALTH_MEASURE_BLOOD_GLUCOSE_DURATION (20 * 1000) // unit:ms
+#endif
+
//health measure timed
#ifdef MMI_CUSTOMER_HEART_TIMED_FLAG
#define MMI_HEALTH_SPO2_TIMED_INTERVAL (10 * 60) // unit:s
#endif
+#ifdef MMI_CUSTOMER_BLOOD_GLUCOSE_TIMED_FLAG
+#define MMI_HEALTH_BLOOD_GLUCOSE_TIMED_FLAG MMI_CUSTOMER_BLOOD_GLUCOSE_TIMED_FLAG
+#else
+#define MMI_HEALTH_BLOOD_GLUCOSE_TIMED_FLAG false
+#endif
+
+#ifdef MMI_CUSTOMER_BLOOD_GLUCOSE_TIMED_INTERVAL
+#define MMI_HEALTH_BLOOD_GLUCOSE_TIMED_INTERVAL MMI_CUSTOMER_BLOOD_GLUCOSE_TIMED_INTERVAL
+#else
+#define MMI_HEALTH_BLOOD_GLUCOSE_TIMED_INTERVAL (10 * 60) // unit:s
+#endif
+
//default language
#ifdef MMI_CUSTOMER_LANGUAGE
mmi_health_measure_temperature_timed_action(false, cur_time_stamp);
mmi_health_measure_blood_timed_action(false, cur_time_stamp);
mmi_health_measure_spo2_timed_action(false, cur_time_stamp);
- mmi_health_measure_bloodglucose_timed_action(false, cur_time_stamp);
+ mmi_health_measure_blood_glucose_timed_action(false, cur_time_stamp);
#endif
uos_timer_stop(s_watch_timed_mission_timer_id);
mmi_health_measure_temperature_timed_action(true, cur_time_stamp);
mmi_health_measure_blood_timed_action(true, cur_time_stamp);
mmi_health_measure_spo2_timed_action(true, cur_time_stamp);
- mmi_health_measure_bloodglucose_timed_action(true, cur_time_stamp);
+ mmi_health_measure_blood_glucose_timed_action(true, cur_time_stamp);
#endif
uos_timer_create(&s_watch_timed_mission_timer_id);
#endif
}
+bool mmi_protocol_action_send_blood_glucose(float blood_glucose_value)
+{
+ if(false == mmi_protocol_check_state_before_send_action())
+ return false;
+
+#ifdef __MMI_ZHSX_SUPPORT_HEALTH_SENSOR__
+ return mmi_protocol_fzd_action_send_blood_glucose(blood_glucose_value);
+#else
+ return false;
+#endif
+}
+
bool mmi_protocol_action_send_talk(char * data_buff, int data_buff_len)
{
if(false == mmi_protocol_check_state_before_send_action())
bool mmi_protocol_watch_link_action(void);
bool mmi_protocol_action_send_temperature(float temp_value);
-
bool mmi_protocol_action_send_heart(uint16_t heart_value);
-
bool mmi_protocol_action_send_blood(uint16_t blood_high_value, uint16_t blood_low_value);
-
bool mmi_protocol_action_send_spo2(uint16_t spo2_value);
+bool mmi_protocol_action_send_blood_glucose(float blood_glucose_value);
bool mmi_protocol_action_send_talk(char * data_buff, int data_buff_len);
return result;
}
+bool mmi_protocol_fzd_action_send_blood_glucose(float blood_glucose_value)
+{
+ bool result = false;
+ MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SEND_BLOOD_GLUCOSE;
+ unsigned char content_buff[8] = {0};
+ unsigned int content_lenth = 0;
+ char data_str[8] = {0};
+
+ mmi_float_to_str(blood_glucose_value, 1, data_str);
+ sprintf(content_buff, ",%s", data_str);
+ content_lenth = strlen(content_buff);
+
+ result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth);
+
+ return result;
+}
+
bool mmi_protocol_fzd_parse_SERVER_SET_HEART_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len)
{
bool result = false;
return result;
}
-
-
-bool mmi_protocol_fzd_parse_SERVER_SET_SLEEP_SW(unsigned char * next_buff, unsigned int next_buff_len)
-{
- bool result = false;
- MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SET_SLEEP_SW;
-
- if(NULL == next_buff || 0 == next_buff_len)
- {
- PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- return false;
- }
-
-
- return result;
-}
-
bool mmi_protocol_fzd_parse_SERVER_SET_BLOOD_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len)
{
bool result = false;
return result;
}
-
-bool mmi_protocol_fzd_parse_SEND_bloodglucose()
-{
- MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SEND_bloodglucose;
- char content_buff[128]={0};
- unsigned int content_lenth = 0;
- //4.4 -6.1血糖随机范围 示例[XT*334588000000156*0010*bloodglucose,6.1]
- hal_rtc_t cur_time = {0};
- Hal_Rtc_Gettime(&cur_time);
- int time=0;
- if(cur_time.tm_hour<8)
- {
- time=4;
- }
- else if(cur_time.tm_hour>8 && cur_time.tm_hour<=9)
- {
- time=6;
- }
- else if(cur_time.tm_hour>9 && cur_time.tm_hour<=12)
- {
- time=5;
- }
- else if(cur_time.tm_hour>12 && cur_time.tm_hour<=13)
- {
- time=6;
- }
- else if(cur_time.tm_hour>13 && cur_time.tm_hour<=14)
- {
- time=7;
- }
- else if(cur_time.tm_hour>14 && cur_time.tm_hour<=17)
- {
- time=5;
- }
- else if(cur_time.tm_hour>14 && cur_time.tm_hour<=17)
- {
- time=5;
- }
- else if(cur_time.tm_hour>17 && cur_time.tm_hour<=19)
- {
- time=6;
- }
- else if(cur_time.tm_hour>19 && cur_time.tm_hour<=20 )
- {
- time=5;
- }
- else if(cur_time.tm_hour>20)
- {
- time=4;
- }
- int a1=time;
- int a2=rand()%10;
- sprintf(content_buff,",%d.%d",a1,a2);
- content_lenth =strlen(content_buff);
- printf("up_data:%d,%s\n",content_lenth,content_buff);
- if(true == mmi_health_measure_wear_state_get() && HAL_CHG_CONNECTED != Hal_Charger_Get_Status())
- {
- mmi_protocol_fzd_send_with_data(action, content_buff,content_lenth);
- }
-
-}
-
-static void * bgstart_timer = NULL;
-
-
-void mmi_bgstart_timer_stop(void)
-{
- if(NULL != bgstart_timer)
- {
- uos_timer_stop(bgstart_timer);
- bgstart_timer=NULL;
-
- }
-}
-
-static void mmi_bgstart_trigger(uint32_t para)
-{
- mmi_protocol_fzd_parse_SEND_bloodglucose();
- mmi_bgstart_timer_start(para);
-}
-
-
-
-void mmi_bgstart_timer_start(int time)
-{
- //take_on_or_off=mmi_health_measure_wear_state_get();
- if(NULL != bgstart_timer)
- uos_timer_stop(bgstart_timer);
- else
- uos_timer_create(&bgstart_timer);
- uos_timer_start(bgstart_timer, MS_TO_TICKS(time * 1000), 0, mmi_bgstart_trigger, time);
-}
-
-void mmi_bgstart_once(void)
-{
- mmi_protocol_fzd_parse_SEND_bloodglucose();
-
-}
-
-
-
-bool mmi_protocol_fzd_parse_SERVER_bgstart_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len)
+bool mmi_protocol_fzd_parse_SERVER_SET_SPO2_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len)
{
bool result = false;
- MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SET_bgstart_INTERVAL;
+ MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_SET_SPO2_INTERVAL;
if(NULL == next_buff || 0 == next_buff_len)
{
int value_interval = atoi(next_buff);
- if(0 == value_interval)
- {
- mmi_health_measure_server_set_action(MMI_HEALTH_MEASURE_blood_glucose, value_interval);
- }// close timed measure
- if(1 == value_interval)
- {
- mmi_health_measure_server_set_action(MMI_HEALTH_MEASURE_blood_glucose, value_interval);
- } // measure once
- if(300 <= value_interval) // immediate timed measure
+ if((0 == value_interval) // close timed measure
+ || (1 == value_interval) // measure once
+ || (300 <= value_interval) // immediate timed measure
+ )
{
-
- mmi_health_measure_server_set_action(MMI_HEALTH_MEASURE_blood_glucose, value_interval);
+ mmi_health_measure_server_set_action(MMI_HEALTH_MEASURE_SPO2, value_interval);
}
else // the interval value error
{
return result;
}
-
-
-bool mmi_protocol_fzd_parse_SERVER_SET_SPO2_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len)
+bool mmi_protocol_fzd_parse_SERVER_SET_BLOOD_GLUCOSE_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len)
{
bool result = false;
- MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_SET_SPO2_INTERVAL;
+ MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_SET_BLOOD_GLUCOSE_INTERVAL;
if(NULL == next_buff || 0 == next_buff_len)
{
|| (300 <= value_interval) // immediate timed measure
)
{
- mmi_health_measure_server_set_action(MMI_HEALTH_MEASURE_SPO2, value_interval);
+ mmi_health_measure_server_set_action(MMI_HEALTH_MEASURE_BLOOD_GLUCOSE, value_interval);
}
else // the interval value error
{
MMI_FZD_ACTION_SEND_BLOOD,
MMI_FZD_SERVER_SET_SPO2_INTERVAL,
MMI_FZD_ACTION_SEND_SPO2,
-
- MMI_FZD_ACTION_SET_SLEEP_SW,
- MMI_FZD_ACTION_SET_bgstart_INTERVAL,
- MMI_FZD_ACTION_SEND_bloodglucose,
+ MMI_FZD_SERVER_SET_BLOOD_GLUCOSE_INTERVAL,
+ MMI_FZD_ACTION_SEND_BLOOD_GLUCOSE,
#endif
#ifdef __MMI_WECHAT_SUPPORT__
bool mmi_protocol_fzd_parse_SERVER_SET_TEMPERATURE_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len);
bool mmi_protocol_fzd_parse_SERVER_SET_BLOOD_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len);
bool mmi_protocol_fzd_parse_SERVER_SET_SPO2_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len);
+bool mmi_protocol_fzd_parse_SERVER_SET_BLOOD_GLUCOSE_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len);
bool mmi_protocol_fzd_action_send_temperature(float temp_value);
bool mmi_protocol_fzd_action_send_heart(uint16_t heart_value);
bool mmi_protocol_fzd_action_send_blood(uint16_t blood_high_value, uint16_t blood_low_value);
bool mmi_protocol_fzd_action_send_spo2(uint16_t spo2_value);
+bool mmi_protocol_fzd_action_send_blood_glucose(float blood_glucose_value);
#endif
#ifdef __MMI_WECHAT_SUPPORT__
{MMI_FZD_ACTION_SEND_BLOOD, "blood"},
{MMI_FZD_SERVER_SET_SPO2_INTERVAL, "oxstart"},
{MMI_FZD_ACTION_SEND_SPO2, "oxygen"},
- {MMI_FZD_ACTION_SET_SLEEP_SW, "SLEEP_SW"},
- {MMI_FZD_ACTION_SET_bgstart_INTERVAL, "bgstart"},
- {MMI_FZD_ACTION_SEND_bloodglucose, "bloodglucose"},
+ {MMI_FZD_SERVER_SET_BLOOD_GLUCOSE_INTERVAL, "bgstart"},
+ {MMI_FZD_ACTION_SEND_BLOOD_GLUCOSE, "bloodglucose"},
#endif
#ifdef __MMI_WECHAT_SUPPORT__
case MMI_FZD_ACTION_SEND_SPO2:
break;
- case MMI_FZD_ACTION_SET_SLEEP_SW:
- mmi_protocol_fzd_parse_SERVER_SET_SLEEP_SW(next_buff, next_buff_len);
+
+ case MMI_FZD_SERVER_SET_BLOOD_GLUCOSE_INTERVAL:
+ mmi_protocol_fzd_parse_SERVER_SET_BLOOD_GLUCOSE_INTERVAL(next_buff, next_buff_len);
break;
- case MMI_FZD_ACTION_SET_bgstart_INTERVAL:
- mmi_protocol_fzd_parse_SERVER_bgstart_INTERVAL(next_buff, next_buff_len);
+
+ case MMI_FZD_ACTION_SEND_BLOOD_GLUCOSE:
break;
#endif