gengxin
author@CHENG <2393524978@qq.com>
Tue, 27 Feb 2024 06:20:23 +0000 (14:20 +0800)
committer@CHENG <2393524978@qq.com>
Tue, 27 Feb 2024 06:20:23 +0000 (14:20 +0800)
2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.h
2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode.h
2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_main.c
2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_test.c

index 5619e56..88f3c21 100644 (file)
@@ -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
index c5c9005..9833a0c 100644 (file)
@@ -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);
index 367c060..5101c5b 100644 (file)
@@ -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 },
index 1112e19..bc104b4 100644 (file)
@@ -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};