#ifdef MMI_PROJECT_Z5_HA_K18_NFC
+#include "hal/dm/cJSON.h"
+
+
#define TIMER_TIME_STR_LEN_MAX (16)
-static unsigned char *s_experience_title_str = "8DD16B65673A"; // NULL;
-static unsigned int s_experience_time_total = 60 * 3; // 0; // s
-static unsigned int s_experience_time_remain = 0; // s
-static unsigned int s_experience_value = 168; // 0;
+#define TIMER_CYCLE_DURATION (1000) // ms
+
+#define TIMER_GET_VALUE_COUNT (60) // s
+
+#define K18_NFC_EXPR_TASK_PRIORITY (221)
+#define K18_NFC_EXPR_TASK_STACK_SIZE (1024 * 8)
+#define K18_NFC_EXPR_MSG_QUEUE_SIZE (8)
+
+typedef enum
+{
+ MSG_HAPPINESS_VALUE_GET,
+ MSG_EXPERIENCE_FINISHED,
+ MSG_EXPERIENCE_INTERRUPT,
+
+ K18_NFC_EXPR_MSG_MAX
+}k18_nfc_expr_msg_e;
+
+typedef struct
+{
+ char * name;
+ int total_duration;
+ int remain_duration;
+ int happiness_value;
+ TIMER_ID cycle_timer_id;
+ TASK_HANDLE * task_id;
+}k18_nfc_expr_data_t;
+
+static k18_nfc_expr_data_t s_experience_data = {0};
static bool s_screen_is_active = false;
+static unsigned char s_get_value_count = 0;
+
+
+static void mmi_k18_nfc_experience_happiness_value_get(void);
+static int mmi_k18_nfc_experience_stop(char is_interrupt);
+
+void mmi_k18_nfc_experience_timer_deinit(void);
+void mmi_k18_nfc_experience_timer_init(void);
+
+static void mmi_k18_nfc_experience_task_msg_send(k18_nfc_expr_msg_e msg_id);
+static void mmi_k18_nfc_experience_task_deinit(void);
+static void mmi_k18_nfc_experience_task_init(void);
bool mmi_k18_nfc_experience_screen_active(void)
watch_set_suspend_enable(true, ACT_ID_K18_NFC_EXPERIENCE, 0);
watch_wakeup_time_reset();
-
- lv_watch_png_cache_all_free();
-
- lv_ntc_experience_ext_t * ext = mmi_k18_nfc_experience_ext_get();
- if(NULL == ext)
- return ;
- if(NULL != ext->label_time_remaining)
+ if(NULL != s_experience_data.name)
{
- lv_anim_del(ext->label_time_remaining, NULL);
+ lv_mem_free(s_experience_data.name);
+ s_experience_data.name = NULL;
}
+ mmi_k18_nfc_experience_timer_deinit();
+ mmi_k18_nfc_experience_task_deinit();
+
+ lv_watch_png_cache_all_free();
+
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
s_screen_is_active = false;
}
void mmi_k18_nfc_experience_screen_clean(void)
{
- mmi_k18_nfc_experience_prepare_destory(NULL);
-
- lv_obj_t * obj = lv_watch_get_activity_obj(ACT_ID_K18_NFC_EXPERIENCE);
- if(NULL != obj)
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_K18_NFC_EXPERIENCE);
+ if(NULL != activity_obj)
{
K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- lv_obj_del(obj);
+ mmi_k18_nfc_experience_prepare_destory(NULL);
+ lv_obj_del(activity_obj);
}
}
-static void mmi_k18_nfc_experience_timer_time_remain_str(unsigned int time_second, char *str, uint8_t size)
+static void mmi_k18_nfc_experience_time_remain_str(unsigned int time_second, char *str, uint8_t size)
{
if(NULL == str)
return;
if(LV_EVENT_CLICKED != e)
return;
+ mmi_k18_nfc_experience_timer_deinit();
+ mmi_k18_nfc_experience_task_msg_send(MSG_EXPERIENCE_INTERRUPT);
+
mmi_k18_nfc_experience_screen_clean();
lv_watch_go_home();
}
lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
lv_label_set_long_mode(label_title, LV_LABEL_LONG_BREAK);
lv_obj_set_width(label_title, 400);
- lv_label_set_text(label_title, s_experience_title_str);
- lv_obj_align(label_title, label_title, LV_ALIGN_IN_TOP_MID, 0, 85);
+ lv_label_set_text(label_title, s_experience_data.name);
+ lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 85);
+ /*
lv_obj_t * img_title = lv_label_create(img, NULL);
lv_img_set_src(img_title, ICON_NFC_EXPERIENCE_TITLE);
lv_obj_set_click(img_title, false);
lv_obj_align(img_title, NULL, LV_ALIGN_OUT_BOTTOM_MID, 0, 2);
+ */
// timer text
lv_obj_t * label_timer = lv_label_create(img, NULL);
//time remaining
char time_remain_str[TIMER_TIME_STR_LEN_MAX] = {0};
- mmi_k18_nfc_experience_timer_time_remain_str(s_experience_time_total, time_remain_str, TIMER_TIME_STR_LEN_MAX);
+ mmi_k18_nfc_experience_time_remain_str(s_experience_data.total_duration, time_remain_str, TIMER_TIME_STR_LEN_MAX);
lv_obj_t * label_time_remaining = lv_label_create(img, NULL);
lv_obj_add_style(label_time_remaining, LV_LABEL_PART_MAIN, &lv_watch_font60);
lv_obj_align(img_value, NULL, LV_ALIGN_IN_TOP_MID, 0, 315);
lv_obj_t * label_value = lv_label_create(img_value, NULL);
- lv_obj_add_style(label_value, LV_LABEL_PART_MAIN, &lv_watch_font20);
+ lv_obj_add_style(label_value, LV_LABEL_PART_MAIN, &lv_watch_font24);
char temp_value[4] = {0};
- snprintf(temp_value, 4, "%d", s_experience_value);
+ snprintf(temp_value, 4, "%d", s_experience_data.happiness_value);
lv_label_set_text(label_value, temp_value);
lv_obj_align(label_value, NULL, LV_ALIGN_CENTER, 0, 0);
lv_label_set_text_id(label_info, WATCH_TEXT_ID_HAPPINESS_VALUE);
lv_obj_align(label_info, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -45);
- //lv_task_t * task_p = lv_task_create(mmi_k18_nfc_experience_finish_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL);
- lv_task_t * task_p = lv_task_create(mmi_k18_nfc_experience_finish_task_cb, 1000 * 120, LV_TASK_PRIO_HIGH, NULL);
+ lv_task_t * task_p = lv_task_create(mmi_k18_nfc_experience_finish_task_cb, 1000 * 5, LV_TASK_PRIO_HIGH, NULL);
lv_task_once(task_p);
}
-void mmi_k18_nfc_experience_timeout_task_cb(lv_task_t * task)
+static void mmi_k18_nfc_experience_timer_time_cb(void * para)
{
- K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: remain=%d\n", __FUNCTION__, __LINE__, s_experience_data.remain_duration);
- lv_ntc_experience_ext_t * ext = mmi_k18_nfc_experience_ext_get();
- if(NULL == ext)
- return ;
-
- if(NULL != ext->label_time_remaining)
- {
- lv_anim_del(ext->label_time_remaining, NULL);
- }
- if(NULL != ext->img)
+ s_get_value_count++;
+ if(TIMER_GET_VALUE_COUNT <= s_get_value_count)
{
- lv_obj_clean(ext->img);
+ s_get_value_count = 0;
+ mmi_k18_nfc_experience_task_msg_send(MSG_HAPPINESS_VALUE_GET);
}
- mmi_k18_nfc_experience_finish_screen(ext->img);
-}
-
-static void mmi_k18_nfc_experience_anim_cb(lv_anim_t * anim)
-{
- if(0 != s_experience_time_remain)
+
+ if(0 != s_experience_data.remain_duration)
{
- s_experience_time_remain--;
+ s_experience_data.remain_duration--;
- char time_remain_str[TIMER_TIME_STR_LEN_MAX] = {0};
- mmi_k18_nfc_experience_timer_time_remain_str(s_experience_time_remain, time_remain_str, TIMER_TIME_STR_LEN_MAX);
-
- if(anim->var)
+ lv_ntc_experience_ext_t * ext = mmi_k18_nfc_experience_ext_get();
+ if(NULL != ext && NULL != ext->label_time_remaining)
{
- lv_label_set_text(anim->var, time_remain_str);
- //lv_obj_align(anim->var, NULL, LV_ALIGN_CENTER, 0, 0);
- }
+ if(true == lv_obj_get_hidden(ext->img))
+ return;
+
+ char time_remain_str[TIMER_TIME_STR_LEN_MAX] = {0};
+ 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);
+ }
}
else
{
- lv_task_t * task_p = lv_task_create(mmi_k18_nfc_experience_timeout_task_cb, 1000, LV_TASK_PRIO_HIGH, NULL);
- lv_task_once(task_p);
- }
-}
+ mmi_k18_nfc_experience_timer_deinit();
+ mmi_k18_nfc_experience_task_msg_send(MSG_EXPERIENCE_FINISHED);
-static void mmi_k18_nfc_experience_label_time_anim(lv_obj_t * obj)
-{
- lv_anim_t a;
- lv_anim_path_t path;
-
- lv_anim_path_init(&path);
- lv_anim_path_set_cb(&path, lv_anim_path_step);
-
- lv_anim_init(&a);
- lv_anim_set_var(&a, obj);
- lv_anim_set_start_cb(&a, (lv_anim_ready_cb_t)mmi_k18_nfc_experience_anim_cb);
- lv_anim_set_path(&a, &path);
- lv_anim_set_time(&a, 1);
- lv_anim_set_playback_time(&a, 0);
- lv_anim_set_playback_delay(&a, 0);
- lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
- lv_anim_set_repeat_delay(&a, 1000);
-
- lv_anim_start(&a);
+ lv_ntc_experience_ext_t * ext = mmi_k18_nfc_experience_ext_get();
+ if(NULL == ext)
+ return ;
+
+ if(NULL != ext->img)
+ {
+ lv_obj_clean(ext->img);
+ mmi_k18_nfc_experience_finish_screen(ext->img);
+ }
+ }
}
lv_obj_t * mmi_k18_nfc_experience_create(lv_obj_t * activity_obj)
if(NULL == ext)
return NULL;
- ext->slide_enable = 0; /*disable to slide to the right*/
+ ext->old_ext.slide_enable = 0; /*disable to slide to the right*/
ext->cont = NULL;
ext->img = NULL;
ext->label_time_remaining = NULL;
- ext->cont_stop = NULL;
+ ext->cont_stop = NULL;
lv_obj_t * cont = lv_cont_create(obj, NULL);
lv_obj_set_size(cont, lv_obj_get_width(obj), lv_obj_get_height(obj));
lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
lv_label_set_long_mode(label_title, LV_LABEL_LONG_BREAK);
lv_obj_set_width(label_title, 400);
- lv_label_set_text(label_title, s_experience_title_str);
+ lv_label_set_text(label_title, s_experience_data.name);
lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 85);
+ /*
lv_obj_t * img_title = lv_label_create(img, NULL);
lv_img_set_src(img_title, ICON_NFC_EXPERIENCE_TITLE);
lv_obj_set_click(img_title, false);
lv_obj_align(img_title, label_title, LV_ALIGN_OUT_BOTTOM_MID, 0, 2);
+ */
//time remaining
lv_obj_t * label_time_remaining = lv_label_create(img, NULL);
- lv_obj_add_style(label_time_remaining, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_obj_add_style(label_time_remaining, LV_LABEL_PART_MAIN, &lv_watch_font60_red); // lv_watch_font60);
lv_label_set_align(label_time_remaining, LV_LABEL_ALIGN_CENTER);
char time_remain_str[TIMER_TIME_STR_LEN_MAX] = {0};
- mmi_k18_nfc_experience_timer_time_remain_str(s_experience_time_remain, time_remain_str, TIMER_TIME_STR_LEN_MAX);
+ mmi_k18_nfc_experience_time_remain_str(s_experience_data.remain_duration, time_remain_str, TIMER_TIME_STR_LEN_MAX);
lv_label_set_text(label_time_remaining, time_remain_str);
- lv_obj_align(label_time_remaining, NULL, LV_ALIGN_CENTER, 0, -25);
+ lv_obj_align(label_time_remaining, NULL, LV_ALIGN_CENTER, 0, -30);
//lv_obj_set_base_dir(label_time_remaining, LV_BIDI_DIR_LTR);
ext->label_time_remaining = label_time_remaining;
lv_obj_add_style(label_stop, LV_LABEL_PART_MAIN, &lv_watch_font36);
lv_label_set_text_id(label_stop, WATCH_TEXT_ID_EXPERIENCE_STOP);
-
- //create label anim to update time remaining.
- mmi_k18_nfc_experience_label_time_anim(ext->label_time_remaining);
-
watch_set_suspend_enable(false, ACT_ID_K18_NFC_EXPERIENCE, 0);
s_screen_is_active = true;
void mmi_k18_nfc_experience_create_event_cb(lv_obj_t * btn, lv_event_t e)
{
- if(NULL == s_experience_title_str)
+ //K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: event=%d\n", __FUNCTION__, __LINE__, e);
+ if(LV_EVENT_CLICKED != e)
{
return;
}
- if(0 == s_experience_time_total)
+
+
+#if 0 // __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);
+ if(NULL == temp_ptr)
{
return;
}
- //s_experience_time_remain = s_experience_time_total;
- s_experience_time_remain = s_experience_time_total + 1;
+ _lv_memset_00(temp_ptr, temp_len + 1);
+ _lv_memcpy(temp_ptr, project_name, temp_len);
+
+ 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 = 168;
+#endif
- if(LV_EVENT_CLICKED == e)
+
+ if(NULL == s_experience_data.name)
{
- lv_watch_png_cache_all_free();
- lv_obj_t * obj = mmi_k18_nfc_experience_create(NULL);
- LV_ASSERT_MEM(obj);
- }
+ return;
+ }
+ if(0 == s_experience_data.total_duration)
+ {
+ return;
+ }
+
+ lv_watch_png_cache_all_free();
+ lv_obj_t * obj = mmi_k18_nfc_experience_create(NULL);
+ LV_ASSERT_MEM(obj);
+
+ s_get_value_count = 0;
+ mmi_k18_nfc_experience_timer_init();
+ mmi_k18_nfc_experience_task_init();
}
void mmi_ui_msg_update_k18_nfc_experience(void)
mmi_k18_nfc_experience_create_event_cb(NULL, LV_EVENT_CLICKED);
}
-bool mmi_k18_nfc_experience_cmd_trigger(unsigned char * next_buff, unsigned int next_buff_len)
+
+void mmi_k18_nfc_experience_timer_deinit(void)
{
-#if 0
- if(NULL == next_buff || 0 == next_buff_len)
+ if(NULL != s_experience_data.cycle_timer_id)
{
- K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- return false;
+ Hal_Timer_Stop(s_experience_data.cycle_timer_id);
+ s_experience_data.cycle_timer_id = NULL;
}
- //K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, next_buff_len);
- //K18_NFC_LOG("[@CHENG_DEBUG]: %s\n", next_buff);
+}
- uint32_t output_len = 0;
- char * t_decode_str = lv_mem_alloc(next_buff_len);
- if(NULL == t_decode_str)
+void mmi_k18_nfc_experience_timer_init(void)
+{
+ if(NULL != s_experience_data.cycle_timer_id)
{
- K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
- return false;
+ Hal_Timer_Stop(s_experience_data.cycle_timer_id);
+ s_experience_data.cycle_timer_id = NULL;
}
- _lv_memset_00(t_decode_str, next_buff_len);
- int ret_value = mbedtls_base64_decode(t_decode_str, next_buff_len, &output_len, next_buff, next_buff_len);
- K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, ret_value);
- if(0 != ret_value)
+ s_experience_data.cycle_timer_id = Hal_Timer_Start(TIMER_CYCLE_DURATION, mmi_k18_nfc_experience_timer_time_cb, NULL, true);
+}
+
+static void mmi_k18_nfc_experience_task_msg_send(k18_nfc_expr_msg_e msg_id)
+{
+ if((K18_NFC_EXPR_MSG_QUEUE_SIZE - 1) < Hal_Get_Message_Count(s_experience_data.task_id))
+ {
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: msg queue full\n", __FUNCTION__, __LINE__);
+ return;
+ }
+
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n", __FUNCTION__, __LINE__, msg_id);
+ k18_nfc_expr_msg_e * msg = Hal_Mem_Alloc(sizeof(k18_nfc_expr_msg_e));
+ *msg = msg_id;
+
+ Hal_Send_Message((TASK_ID)s_experience_data.task_id, (void *)msg);
+}
+
+static void mmi_k18_nfc_experience_task_entry(void * para)
+{
+ while(NULL == s_experience_data.task_id)
+ {
+ uos_sleep(10);
+ }
+
+ while(1)
+ {
+ k18_nfc_expr_msg_e * msg = (k18_nfc_expr_msg_e *)Hal_Receive_Message((TASK_ID)s_experience_data.task_id, TRUE);
+ k18_nfc_expr_msg_e msg_id = *msg;
+
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n", __FUNCTION__, __LINE__, msg_id);
+ switch(msg_id)
+ {
+ case MSG_HAPPINESS_VALUE_GET:
+ mmi_k18_nfc_experience_happiness_value_get();
+ break;
+
+ case MSG_EXPERIENCE_FINISHED:
+ mmi_k18_nfc_experience_stop(0);
+ break;
+
+ case MSG_EXPERIENCE_INTERRUPT:
+ mmi_k18_nfc_experience_stop(1);
+ break;
+
+ default:
+ break;
+ }
+
+ Hal_Mem_Free(msg);
+ }
+}
+
+static void mmi_k18_nfc_experience_task_deinit(void)
+{
+ if(NULL != s_experience_data.task_id)
+ {
+ uos_delete_task(s_experience_data.task_id);
+ }
+}
+
+static void mmi_k18_nfc_experience_task_init(void)
+{
+ if(NULL != s_experience_data.task_id)
+ {
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: task_id=0x%x exist\n", __FUNCTION__, __LINE__, s_experience_data.task_id);
+ return;
+ }
+
+ s_experience_data.task_id = uos_create_task(mmi_k18_nfc_experience_task_entry,
+ NULL,
+ K18_NFC_EXPR_MSG_QUEUE_SIZE,
+ K18_NFC_EXPR_TASK_STACK_SIZE,
+ K18_NFC_EXPR_TASK_PRIORITY,
+ "k18_nfc_exp");
+
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: task_id=0x%x\n", __FUNCTION__, __LINE__, s_experience_data.task_id);
+}
+
+static void mmi_k18_nfc_experience_happiness_value_get(void)
+{
+
+// s_experience_data.happiness_value
+
+}
+
+
+/*
+¿ªÊ¼ÌåÑé
+{? ? "code":"31000" // ¸æËßÉ豸¿ªÊ¼ÌåÑé? ? "name":"Ãû³Æ", // ¸æËßÉ豸ÌåÑéµÄÏîÄ¿£¬UTF8? ? "duration":600 // ¸æËßÉ豸ÌåÑéµÄʱ³¤£¬µ¥Î» Ãë}
+*/
+int mmi_k18_nfc_experience_trigger(char * data_ptr, int data_len)
+{
+ int ret = 0;
+ cJSON * json_recv = NULL;
+
+ if(NULL == data_ptr || 0 == data_len)
{
K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- lv_mem_free(t_decode_str);
- return false;
+ ret = -1;
+ goto EXIT_FUNC;
+ }
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, data_len);
+ K18_NFC_LOG("[@CHENG_DEBUG]: %s\n", data_ptr);
+
+ if(true == mmi_k18_nfc_experience_screen_active())
+ {
+ ret = -9;
+ goto EXIT_FUNC;
}
- //K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, strlen(t_decode_str));
- K18_NFC_LOG("[@CHENG_DEBUG][%d]: %s\n", __LINE__, t_decode_str);
- cJSON * json_recv = cJSON_Parse(t_decode_str);
+ json_recv = cJSON_Parse(data_ptr);
if(NULL != json_recv)
{
- if(cJSON_IsTrue(cJSON_GetObjectItem(json_recv, "status")))
+ char * cmd_code = cJSON_GetStringValue(cJSON_GetObjectItem(json_recv, "code"));
+ if(0 == strcmp("31000", cmd_code))
{
- K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: true\n", __FUNCTION__, __LINE__);
-
- cJSON * json_data = cJSON_GetObjectItem(json_recv, "data");
- uint16_t bp_value_high = cJSON_GetIntValue(cJSON_GetObjectItem(json_data, "sbp"));
- uint16_t bp_value_low = cJSON_GetIntValue(cJSON_GetObjectItem(json_data, "dbp"));
- //char * description = cJSON_GetStringValue(cJSON_GetObjectItem(json_data, "description"));
-
- s_experience_title_str;
- s_experience_time_total;
-
+ char * project_name = cJSON_GetStringValue(cJSON_GetObjectItem(json_recv, "name"));
+ if(NULL == project_name)
+ {
+ ret = -2;
+ goto EXIT_FUNC;
+ }
+ int temp_len = strlen(project_name);
+ char *temp_ptr = lv_mem_alloc(temp_len + 1);
+ if(NULL == temp_ptr)
+ {
+ ret = -3;
+ goto EXIT_FUNC;
+ }
+ _lv_memset_00(temp_ptr, temp_len + 1);
+ _lv_memcpy(temp_ptr, project_name, temp_len);
+
+ s_experience_data.name = temp_ptr;
+ 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;
+
+ mmi_watch_wake_up();
mmi_ui_msg_action_k18_nfc_experience();
- }
+ }
else
{
- K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: false\n", __FUNCTION__, __LINE__);
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: code=%s\n", __FUNCTION__, __LINE__, cmd_code);
}
-
}
else
{
K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: not json file\n", __FUNCTION__, __LINE__);
}
+EXIT_FUNC:
if(NULL != json_recv)
{
K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__);
cJSON_Delete(json_recv);
json_recv = NULL;
- }
- if(NULL != t_decode_str)
- {
- lv_mem_free(t_decode_str);
- t_decode_str = NULL;
}
-#endif
- return true;
+ return 0;
}
+/*
+½áÊøÌåÑé
+{? ? "code":"32000" // ֪ͨԶ¶ËÊÖ±íÌåÑé½áÊø? ? "deviceID":"IMEI", // ÌåÑéµÄÊÖ±íÉ豸ID? ? "interrupt":0/1 // 0 ±íʾÕý³£ÌåÑé½áÊø£»1 ±íʾÓû§ÖÐ;ȡÏûÌåÑé}
+*/
+static int mmi_k18_nfc_experience_stop(char is_interrupt)
+{
+ int ret = 0;
+ char * data_ptr = NULL;
+ int data_len = 512;
+ int temp_len = 0;
+
+ data_ptr = lv_mem_alloc(data_len);
+ if(NULL == data_ptr)
+ {
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ ret = -1;
+ goto EXIT_FUNC;
+ }
+ _lv_memset_00(data_ptr, data_len);
+
+ temp_len = 0;
+ temp_len += sprintf(data_ptr + temp_len, "{\"code\":\"32000\","); // "code":"32000"
+
+ char imei[16 + 1] = {0};
+ app_adp_get_imei_req(imei);
+ temp_len += sprintf(data_ptr + temp_len, "\"deviceID\":\"%s\",", imei);
+
+ temp_len += sprintf(data_ptr + temp_len, "\"interrupt\":%d}", is_interrupt);
+
+ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+ K18_NFC_LOG("[@CHENG_DEBUG]: %s\n", __FUNCTION__, __LINE__, data_ptr);
+
+ mmi_protocol_fzd_action_common_msg_up(data_ptr, temp_len);
+
+EXIT_FUNC:
+ if(NULL != data_ptr)
+ {
+ lv_mem_free(data_ptr);
+ data_ptr = NULL;
+ }
+
+ return ret;
+}
#endif