From: @CHENG <2393524978@qq.com> Date: Tue, 25 Feb 2025 06:58:53 +0000 (+0800) Subject: Z5_HA_K18_NFC X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=b95a8eba0fc24a1f11678e4a31b03e23b9f57d97;p=mirrors%2FASR3603_Z5.git Z5_HA_K18_NFC --- diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.c index db44e495..1b4de632 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.c @@ -5,13 +5,52 @@ #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) @@ -43,34 +82,35 @@ void mmi_k18_nfc_experience_prepare_destory(lv_obj_t * activity_obj) 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; @@ -89,6 +129,9 @@ void mmi_k18_nfc_experience_stop_ok_btn_event_cb(lv_obj_t * obj, lv_event_t e) 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(); } @@ -183,13 +226,15 @@ void mmi_k18_nfc_experience_finish_screen(lv_obj_t * par) 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); @@ -202,7 +247,7 @@ void mmi_k18_nfc_experience_finish_screen(lv_obj_t * par) //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); @@ -218,9 +263,9 @@ void mmi_k18_nfc_experience_finish_screen(lv_obj_t * par) 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); @@ -235,71 +280,51 @@ void mmi_k18_nfc_experience_finish_screen(lv_obj_t * par) 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) @@ -326,11 +351,11 @@ 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)); @@ -351,22 +376,24 @@ lv_obj_t * mmi_k18_nfc_experience_create(lv_obj_t * activity_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; @@ -409,10 +436,6 @@ lv_obj_t * mmi_k18_nfc_experience_create(lv_obj_t * activity_obj) 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; @@ -422,23 +445,47 @@ lv_obj_t * mmi_k18_nfc_experience_create(lv_obj_t * activity_obj) 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) @@ -447,81 +494,229 @@ 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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.h index f9976517..84268e5e 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.h @@ -19,11 +19,11 @@ extern "C" { #ifdef MMI_PROJECT_Z5_HA_K18_NFC -#define __MMI_AIGC_DEBUG__ -#ifdef __MMI_AIGC_DEBUG__ -#define K18_NFC_LOG(fmt, ...) printf("[AIGC]"fmt, ##__VA_ARGS__) -//#define K18_NFC_LOG(fmt, ...) CPUartLogPrintf("[AIGC]"fmt, ##__VA_ARGS__) -//#define K18_NFC_LOG(fmt, ...) cplog_printf("[AIGC]"fmt, ##__VA_ARGS__) +#define __K18_NFC_DEBUG__ +#ifdef __K18_NFC_DEBUG__ +#define K18_NFC_LOG(fmt, ...) printf("[EXPR]"fmt, ##__VA_ARGS__) +//#define K18_NFC_LOG(fmt, ...) CPUartLogPrintf("[EXPR]"fmt, ##__VA_ARGS__) +//#define K18_NFC_LOG(fmt, ...) cplog_printf("[EXPR]"fmt, ##__VA_ARGS__) #else #define K18_NFC_LOG(fmt, ...) #endif @@ -36,9 +36,7 @@ typedef struct lv_obj_t * cont; lv_obj_t * img; lv_obj_t * label_time_remaining; - //lv_obj_t * btn_stop; lv_obj_t * cont_stop; - TIMER_ID cycle_timer_id; }lv_ntc_experience_ext_t; @@ -49,7 +47,7 @@ void mmi_k18_nfc_experience_create_event_cb(lv_obj_t * btn, lv_event_t e); void mmi_ui_msg_update_k18_nfc_experience(void); -bool mmi_k18_nfc_experience_cmd_trigger(unsigned char * next_buff, unsigned int next_buff_len); +int mmi_k18_nfc_experience_trigger(char * data_ptr, int data_len); #endif