int total_duration;
int remain_duration;
float happiness_value; // int happiness_value;
+ float total_happiness_value;
TIMER_ID cycle_timer_id;
TASK_HANDLE * task_id;
}k18_nfc_expr_data_t;
/* happiness value */
static float s_happiness_total_value = 0;
+// debug
+//#define __now_test__
+
+
static void mmi_k18_nfc_experience_happiness_value_get(void);
static int mmi_k18_nfc_experience_stop(char is_interrupt);
lv_obj_t * label_value = lv_label_create(img_value, NULL);
lv_obj_add_style(label_value, LV_LABEL_PART_MAIN, &lv_watch_font24);
char temp_value[16] = {0};
- unsigned int value1 = 0;
- unsigned char value2 = 0, value3 = 0;
- //value1 = (uint8_t)(s_experience_data.happiness_value);
- //value2 = (uint8_t)((s_experience_data.happiness_value - value1) * 10);
- //value3 = (uint8_t)(((s_experience_data.happiness_value - value1) * 10 - value2) * 10);
- value1 = (unsigned int)(s_happiness_total_value);
- value2 = (uint8_t)((s_happiness_total_value - value1) * 10);
- value3 = (uint8_t)(((s_happiness_total_value - value1) * 10 - value2) * 10);
+ uint32_t value1 = 0;
+ uint8_t value2 = 0, value3 = 0;
+ float happiness_value = s_experience_data.total_happiness_value;
+ value1 = (uint32_t)(happiness_value);
+ value2 = (uint8_t)((happiness_value - value1) * 10);
+ value3 = (uint8_t)(((happiness_value - value1) * 10 - value2) * 10);
if(0 == value3)
{
s_experience_data.remain_duration--;
lv_ntc_experience_ext_t * ext = mmi_k18_nfc_experience_ext_get();
- if(NULL != ext && NULL != ext->label_time_remaining)
+ if(NULL == ext)
+ return;
+ if(NULL != ext->label_time_remaining)
{
if(true == lv_obj_get_hidden(ext->img))
return;
mmi_k18_nfc_experience_time_remain_str(s_experience_data.remain_duration, time_remain_str, TIMER_TIME_STR_LEN_MAX);
lv_label_set_text(ext->label_time_remaining, time_remain_str);
}
+ if(0 != s_experience_data.happiness_value)
+ {
+ if(NULL != ext->img_prompt)
+ lv_obj_set_hidden(ext->img_prompt, true);
+ if(NULL != ext->img_value)
+ lv_obj_set_hidden(ext->img_value, false);
+ if(NULL != ext->label_value)
+ {
+ char temp_value[16] = {0};
+ uint8_t value1 = 0, value2 = 0, value3 = 0;
+ float happiness_value = s_experience_data.happiness_value;
+ value1 = (uint32_t)(happiness_value);
+ value2 = (uint8_t)((happiness_value - value1) * 10);
+ value3 = (uint8_t)(((happiness_value - value1) * 10 - value2) * 10);
+
+ if(0 == value3)
+ {
+ if(0 == value2)
+ sprintf(temp_value, "%d", value1);
+ else
+ sprintf(temp_value, "%d.%d", value1, value2);
+ }
+ else
+ {
+ sprintf(temp_value, "%d.%d%d", value1, value2, value3);
+ }
+ lv_label_set_text(ext->label_value, temp_value);
+ lv_label_set_align(ext->label_value, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(ext->label_value, NULL, LV_ALIGN_CENTER, 0, -10);
+ }
+ }
}
else
{
lv_img_set_src(img_prompt, ICON_NFC_EXPERIENCE_PROMPT);
lv_obj_set_click(img_prompt, false);
lv_obj_align(img_prompt, label_time_remaining, LV_ALIGN_OUT_BOTTOM_MID, 0, 15);
+ ext->img_prompt = img_prompt;
+
+ // info
+ lv_obj_t * img_value = lv_img_create(img, NULL);
+ lv_img_set_src(img_value, ICON_NFC_EXPERIENCE_HEART_M);
+ lv_obj_set_click(img_value, false);
+ lv_obj_align(img_value, label_time_remaining, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+ ext->img_value = img_value;
+
+ lv_obj_t * label_value = lv_label_create(img_value, NULL);
+ lv_obj_add_style(label_value, LV_LABEL_PART_MAIN, &lv_watch_font24);
+ char temp_value[16] = {0};
+ lv_label_set_text(label_value, temp_value);
+ lv_obj_align(label_value, NULL, LV_ALIGN_CENTER, 0, -10);
+ ext->label_value = label_value;
+ lv_obj_set_hidden(img_value, true);
lv_obj_t * img_info = lv_img_create(img, NULL);
lv_img_set_src(img_info, ICON_NFC_EXPERIENCE_HEART_S);
}
-#if 0 // __now_test__
+#ifdef __now_test__
char *project_name = (char *)lv_lang_get_text(WATCH_TEXT_ID_OUTDOOR_RUNNING); // "8DD16B65673A";
int temp_len = strlen(project_name);
char *temp_ptr = lv_mem_alloc(temp_len + 1);
s_experience_data.name = temp_ptr;
s_experience_data.total_duration = 60 * 3;
s_experience_data.remain_duration = s_experience_data.total_duration;
- s_experience_data.happiness_value = 76.89; // 168;
-
- s_happiness_total_value += 76.89;
#endif
return;
}
- unsigned int value1 = 0;
- unsigned char value2 = 0, value3 = 0;
- value1 = (unsigned int)(value_happiness);
+ uint8_t value1 = 0, value2 = 0, value3 = 0;
+ value1 = (uint8_t)(value_happiness);
value2 = (uint8_t)((value_happiness - value1) * 10);
value3 = (uint8_t)(((value_happiness - value1) * 10 - value2) * 10);
K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d-%d-%d\n", __FUNCTION__, __LINE__, value1, value2, value3);
s_happiness_total_value += value_happiness;
-#if 0
s_experience_data.happiness_value = value_happiness;
-
+ s_experience_data.total_happiness_value += s_experience_data.happiness_value;
+
+#if 0
nv_watch_health_info_t health_info = {0};
mmi_health_info_get(&health_info);
health_info.happiness_value = value_happiness;
#endif
}
+void mmi_hengai_blood_happinss_value_set(float value_happiness)
+{
+ uint8_t value1 = 0, value2 = 0, value3 = 0;
+ value1 = (uint8_t)(value_happiness);
+ value2 = (uint8_t)((value_happiness - value1) * 10);
+ value3 = (uint8_t)(((value_happiness - value1) * 10 - value2) * 10);
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d-%d-%d\n", __FUNCTION__, __LINE__, value1, value2, value3);
+
+ s_happiness_total_value += value_happiness;
+}
+
float mmi_hengai_happiness_value_get(void)
{
return s_happiness_total_value;
temp_len += sprintf(json_data + temp_len, "\"ppg_fs\":%d,", MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE);
- temp_len += sprintf(json_data + temp_len, "\"measure_mode\":1,"); /* ²âÁ¿Ä£Ê½(0:±»¶¯²âÁ¿/1:Ö÷¶¯²âÁ¿/2:Á¬Ðø²âÁ¿/3:ÆäËû²âÁ¿) */
+ temp_len += sprintf(json_data + temp_len, "\"measure_mode\":1,"); /* 测量模式(0:被动测量/1:主动测量/2:连续测量/3:其他测量) */
- temp_len += sprintf(json_data + temp_len, "\"measure_type\":7}"); /* ²âÁ¿ÀàÐÍ(2:ѪÑõÏà¹Ø²âÁ¿/6:ÇéÐ÷Ïà¹Ø²âÁ¿/7:ѪѹÏà
- ¹Ø²âÁ¿/8:ѪÌÇÏà¹Ø²âÁ¿/9:HRVÏà¹Ø²âÁ¿/10:Ѫѹ±ê¶¨
- ²âÁ¿/11:ѪÌDZ궨²âÁ¿/)
+ temp_len += sprintf(json_data + temp_len, "\"measure_type\":7}"); /* 测量类型(2:血氧相关测量/6:情绪相关测量/7:血压相
+ 关测量/8:血糖相关测量/9:HRV相关测量/10:血压标定
+ 测量/11:血糖标定测量/)
*/
K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
//send
mmi_happiness_raw_data_send();
+
+#ifdef __now_test__
+ float happiness_value = 67.89 + (rand() % 10);
+ s_experience_data.happiness_value = happiness_value;
+ s_experience_data.total_happiness_value += happiness_value;
+ s_happiness_total_value += happiness_value;
+#endif
}
void mmi_k18_nfc_experience_happiness_deinit(void)
/*
-¿ªÊ¼ÌåÑé
-{? ? "code":"31000" // ¸æËßÉ豸¿ªÊ¼ÌåÑé? ? "name":"Ãû³Æ", // ¸æËßÉ豸ÌåÑéµÄÏîÄ¿£¬UTF8? ? "duration":600 // ¸æËßÉ豸ÌåÑéµÄʱ³¤£¬µ¥Î» Ãë}
+开始体验
+{? ? "code":"31000" // 告诉设备开始体验? ? "name":"名称", // 告诉设备体验的项目,UTF8? ? "duration":600 // 告诉设备体验的时长,单位 秒}
*/
int mmi_k18_nfc_experience_trigger(char * data_ptr, int data_len)
{
s_experience_data.total_duration = cJSON_GetIntValue(cJSON_GetObjectItem(json_recv, "duration"));
s_experience_data.remain_duration = s_experience_data.total_duration;
s_experience_data.happiness_value = 0;
+ s_experience_data.total_happiness_value = 0;
mmi_watch_wake_up();
mmi_ui_msg_action_k18_nfc_experience();
}
/*
-½áÊøÌåÑé
-{? ? "code":"32000" // ֪ͨԶ¶ËÊÖ±íÌåÑé½áÊø? ? "deviceID":"IMEI", // ÌåÑéµÄÊÖ±íÉ豸ID? ? "interrupt":0/1 // 0 ±íʾÕý³£ÌåÑé½áÊø£»1 ±íʾÓû§ÖÐ;ȡÏûÌåÑé}
+结束体验
+{? ? "code":"32000" // 通知远端手表体验结束? ? "deviceID":"IMEI", // 体验的手表设备ID? ? "interrupt":0/1 // 0 表示正常体验结束;1 表示用户中途取消体验}
*/
static int mmi_k18_nfc_experience_stop(char is_interrupt)
{