From: @CHENG <2393524978@qq.com> Date: Tue, 27 Feb 2024 06:20:23 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=553ac9944063fd5193d7c333322d4f3fb772d6ee;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h index 5619e56c..88f3c213 100644 --- a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h +++ b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h @@ -66,4 +66,8 @@ int *fr8012haq_blood_data_get(int *len); char* fr8012haq_YYL_data_get(int *yyl_data_len); float fr8012haq_get_body_temperature(void); void fr8012haq_measure_temp_start(void); + +void fr8012haq_measure_factory_start(void); +void fr8012haq_factory_data_get(int *apre_val0,int *apre_val1,int *aps_val); + #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode.h b/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode.h index c5c90057..9833a0ce 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode.h @@ -207,6 +207,9 @@ void mmi_factorymode_live_calibration_create_btn_cb(lv_obj_t * btn,lv_event_t e) void mmi_factorymode_wear_test_create_btn_cb(lv_obj_t * btn,lv_event_t e); void mmi_factorymode_light_leak_test_create_btn_cb(lv_obj_t * btn,lv_event_t e); #endif +#if USE_FR8012HAQ +void mmi_factorymode_light_leak_test_create_btn_cb(lv_obj_t * btn,lv_event_t e); +#endif void mmi_factorymode_heart_test_create_btn_cb(lv_obj_t * btn,lv_event_t e); #ifdef __MMI_HEALTH_MEASURE_SPO2_SUPPORT__ void mmi_factorymode_spo2_test_create_btn_cb(lv_obj_t * btn,lv_event_t e); diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_main.c b/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_main.c index 367c0604..5101c5b0 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_main.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_main.c @@ -86,6 +86,9 @@ const struct { #if USE_HX3918 { WATCH_TEXT_ID_LIVE_CALIBRATION, mmi_factorymode_live_calibration_create_btn_cb }, { WATCH_TEXT_ID_WEAR_TEST, mmi_factorymode_wear_test_create_btn_cb }, + { WATCH_TEXT_ID_LIGHT_LEAK_TEST, mmi_factorymode_light_leak_test_create_btn_cb }, + #endif + #if USE_FR8012HAQ { WATCH_TEXT_ID_LIGHT_LEAK_TEST, mmi_factorymode_light_leak_test_create_btn_cb }, #endif { WATCH_TEXT_ID_HEART_TEST, mmi_factorymode_heart_test_create_btn_cb }, diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_test.c b/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_test.c index 1112e19c..bc104b4b 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_test.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_test.c @@ -2148,6 +2148,123 @@ void mmi_factorymode_light_leak_test_create_btn_cb(lv_obj_t * btn,lv_event_t e) } #endif + +#if USE_FR8012HAQ +// +#include "../../../lv_drivers/indev/FR8012HAQ/fr8012haq.h" + +static void mmi_factorymode_light_leak_test_status_update(lv_anim_t * anim) +{ + char str[64]= {0}; + int apre_val0 = 0, apre_val1 = 0, aps_val = 0; + + fr8012haq_factory_data_get(&apre_val0, &apre_val1, &aps_val); + sprintf(str, "%s: %d,%d,%d", (char *)lv_lang_get_text(WATCH_TEXT_ID_LIGHT_LEAK_DATA), + apre_val0, + apre_val1, + aps_val); + lv_label_set_text(anim->var, str); +} + +static void mmi_factorymode_light_leak_event_cb(lv_obj_t * btn, lv_event_t e) +{ + if(LV_EVENT_CLICKED != e) + return; + + if(NULL == btn) + return; + + lv_obj_t * par = lv_obj_get_parent((lv_obj_t*)btn); + if(NULL == par) + return; + + lv_obj_del(btn); + + testing_st = FAC_HEART; + fr8012haq_measure_factory_start(); + + lv_obj_t * label = lv_label_create(par, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &FACTORY_MODE_TEST_ITEM_TEXT_FONT); + lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK); + lv_obj_set_width(label, LV_HOR_RES - 40); + lv_obj_set_pos(label, 20, LV_VER_RES / 4); + + char str[64]= {0}; + sprintf(str, "%s: ", (char *)lv_lang_get_text(WATCH_TEXT_ID_LIGHT_LEAK_DATA)); + lv_label_set_text(label,str); + + lv_anim_path_t path; + lv_anim_path_init(&path); + lv_anim_path_set_cb(&path, lv_anim_path_step); + + lv_anim_t a; + lv_anim_init(&a); + lv_anim_set_var(&a, label); + lv_anim_set_start_cb(&a, (lv_anim_ready_cb_t)mmi_factorymode_light_leak_test_status_update); + lv_anim_set_time(&a, 1); + lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); + lv_anim_set_delay(&a,1000); + lv_anim_set_repeat_delay(&a, 1000); + lv_anim_start(&a); +} + +static lv_obj_t * mmi_factorymode_light_leak_test_create(lv_obj_t * activity_obj) +{ + if(activity_obj == NULL) { + lv_watch_activity_ext_t activity_ext; + memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t)); + activity_ext.actId = ACT_ID_FACTORY_MODE_TEST; + activity_ext.create = mmi_factorymode_light_leak_test_create; + activity_ext.prepare_destory = factorymode_test_prepare_destory; + activity_obj = lv_watch_creat_activity_obj(&activity_ext); + LV_ASSERT_MEM(activity_obj); + if(NULL == activity_obj) { + return NULL; + } + } + + lv_obj_t * obj = lv_watch_obj_create(activity_obj); + LV_ASSERT_MEM(obj); + if(NULL == obj) + return NULL; + + lv_obj_t * content = lv_cont_create(obj, NULL); + lv_obj_set_size(content, lv_obj_get_width(obj), lv_obj_get_height(obj)); + lv_obj_add_style(content,LV_OBJ_PART_MAIN, &lv_watch_style_transp); + lv_obj_align(content, NULL, LV_ALIGN_CENTER, 0, 0); + lv_obj_set_click(content, false); + + lv_obj_t * btn_start = lv_btn_create(content, NULL); + lv_obj_set_size(btn_start, LV_HOR_RES / 2, LV_HOR_RES / 6); + lv_obj_set_event_cb(btn_start, mmi_factorymode_light_leak_event_cb); + lv_obj_align(btn_start, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_t * label_start = lv_label_create(btn_start, NULL); + lv_label_set_text_id(label_start, WATCH_TEXT_ID_START_TEST); + lv_obj_add_style(label_start,LV_OBJ_PART_MAIN, &FACTORY_MODE_TEST_ITEM_TEXT_FONT); + lv_label_set_align(label_start, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_start, NULL, LV_ALIGN_CENTER, 0, 0); + + lv_obj_t * label_prompt = lv_label_create(content, NULL); + lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &FACTORY_MODE_TEST_ITEM_TEXT_FONT_BIG); + lv_label_set_text_id(label_prompt, WATCH_TEXT_ID_LIVE_CALIBRATION_PROMPT); + lv_obj_set_width(label_prompt, LV_HOR_RES - 40); + //lv_obj_align(label_prompt, btn_start, LV_ALIGN_OUT_BOTTOM_MID, 0, -10); + lv_obj_align(label_prompt, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -LV_VER_RES / 8); + + return obj; +} + +void mmi_factorymode_light_leak_test_create_btn_cb(lv_obj_t * btn,lv_event_t e) +{ + if(e == LV_EVENT_CLICKED) + { + mmi_factorymode_light_leak_test_create(NULL); + } +} +#endif + + static void mmi_factorymode_heart_test_status_update(lv_anim_t * anim) { char str[32]= {0};