NONE = 0,
FAC_SOS_KEY,
GSENSOR,
+#ifdef __MMI_ZHSX_SUPPORT__
+ FAC_TEMPERATURE,
+ FAC_HEART,
+ FAC_SPO2,
+#else
HEART_RATE,
SPORT_HEART_RATE,
FAC_TEMPERATURE,
+#endif
FAC_GPS,
FAC_BACKLIGHT,
FAC_WIFI,
static void factorymode_gps_location_info_update(lv_anim_t * anim);
static lv_obj_t * factorymode_gps_test_create(lv_obj_t * activity_obj);
#endif
+
+#ifdef __MMI_ZHSX_SUPPORT__
+static lv_obj_t * mmi_factorymode_gsensor_create(lv_obj_t * activity_obj);
+static lv_obj_t * mmi_factorymode_temperature_test_create(lv_obj_t * activity_obj);
+static lv_obj_t * mmi_factorymode_heart_test_create(lv_obj_t * activity_obj);
+static lv_obj_t * mmi_factorymode_spo2_test_create(lv_obj_t * activity_obj);
+#else
static lv_obj_t * factorymode_gsensor_create(lv_obj_t * activity_obj);
static void factorymode_hr_bp_bo_test_status_update(lv_anim_t * anim);
static lv_obj_t * factorymode_hr_bp_bo_test_create(lv_obj_t * activity_obj);
static void factorymode_temperature_update(lv_anim_t * anim);
static lv_obj_t * factorymode_temperature_test_create(lv_obj_t * activity_obj);
+#endif
static void factory_mode_calibration_destory(lv_obj_t * activity_obj);
static lv_obj_t * factory_mode_calibration_create(lv_obj_t * activity_obj);
static void factory_agetest_destory(void);
sos_key_param_set(0);
#endif
break;
+
+#ifdef __MMI_ZHSX_SUPPORT__
+ case FAC_TEMPERATURE:
+ mmi_tsensor_temperature_measure_stop();
+ break;
+
+ case FAC_HEART:
+ case FAC_SPO2:
+ mmi_hsensor_measure_stop();
+ break;
+#else
case HEART_RATE:
case SPORT_HEART_RATE:
- asl_hr_bp_bo_measure_stop();
+ mmi_hsensor_measure_stop();
break;
case FAC_TEMPERATURE:
- asl_temperature_measure_stop();
+ mmi_tsensor_temperature_measure_stop();
break;
+#endif
+
case FAC_GPS:
#if USE_GPS
gps_core.force_on=0;
}
#endif
-static lv_obj_t * factorymode_gsensor_create(lv_obj_t * activity_obj)
+#ifdef __MMI_ZHSX_SUPPORT__
+static void mmi_factorymode_gsensor_status_update(lv_anim_t * anim)
{
- if(activity_obj == NULL) {
+#if 1
+ char str[128] = {0};
+ uint8_t id = mmi_gsensor_sensor_id_get();
+ int16_t chip_x = 0, chip_y = 0, chip_z = 0;
+
+ xMotion_Chip_Read_XYZ(&chip_x, &chip_y, &chip_z);
+ sprintf(str, "%s %s 0x%x\nX: %d\nY: %d\nZ: %d\n%s",
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),
+ "id :", id,
+ chip_x, chip_y, chip_z,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_SUCCESS));
+
+ lv_label_set_text(anim->var, str);
+#else
+
+ int16_t chip_x = 0, chip_y = 0, chip_z = 0;
+ xMotion_Chip_Read_XYZ(&chip_x,&chip_y,&chip_z);
+ printf("[@CHENG_DEBUG][%d]:chip_x:%d,chip_y:%d,chip_z:%d\n", __LINE__, chip_x, chip_y, chip_z);
+
+
+ int16_t buffer_x = 0, buffer_y = 0, buffer_z = 0;
+ xMotion_Buffer_Read_XYZ(&buffer_x,&buffer_y,&buffer_z);
+ printf("[@CHENG_DEBUG][%d]:buffer_x:%d,buffer_y:%d,buffer_z:%d\n", __LINE__, buffer_x, buffer_y, buffer_z);
+
+
+ int16_t t_mems_data[32 * 3] = {0};
+ int16_t t_x[32]= {0}, t_y[32]= {0}, t_z[32]= {0};
+ get_Gsensor_fifo_xyz(t_mems_data);
+ memcpy(t_x, t_mems_data, 32);
+ memcpy(t_y, t_mems_data + 32, 32);
+ memcpy(t_z, t_mems_data + 64, 32);
+ for(int i=0; i<32; i++)
+ printf("[@CHENG_DEBUG][%d]:i:%d,x:%d,y:%d,z:%d\n", __LINE__, i,t_x[i],t_y[i],t_z[i]);
+
+
+ char str[128] = {0};
+ uint8_t id = mmi_gsensor_sensor_id_get();
+
+ sprintf(str, "%s %s 0x%x\nX: %s\nY: %s\nZ: %s\n%s",
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),
+ "id :", id,
+ t_x, t_y, t_z,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_SUCCESS));
+ lv_label_set_text(anim->var, str);
+#endif
+}
+
+static lv_obj_t * mmi_factorymode_gsensor_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 = factorymode_gsensor_create;
+ activity_ext.create = mmi_factorymode_gsensor_create;
activity_ext.prepare_destory = factorymode_test_prepare_destory;
activity_obj = lv_watch_creat_activity_obj(&activity_ext);
LV_ASSERT_MEM(activity_obj);
lv_label_set_text_id(title_label, WATCH_TEXT_ID_GSENSOR);
lv_obj_align(title_label, content, LV_ALIGN_IN_TOP_MID, 0, 10);
- char str[64];
- memset(str, 0, 64);
- uint8_t id = asl_pedometer_sensor_id_get();
-
lv_obj_t * label = lv_label_create(content, NULL);
#if USE_LV_WATCH_UI_360_360
lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
#else
lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font20);
#endif
- lv_obj_set_size(label,LV_HOR_RES,LV_VER_RES/2);
- if(id > 0) {
- snprintf(str, 64, "%s %s 0x%x\n%s", (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),"id :",id,(char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_SUCCESS));
- lv_label_set_text(label,str);
- lv_obj_align(label, content, LV_ALIGN_CENTER, 0, 0);
- } else {
- snprintf(str, 64, "%s %s 0x%x\n%s", (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),"id :",id,(char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_FAIL));
- lv_label_set_text(label,str);
- lv_obj_align(label, content, LV_ALIGN_CENTER, 0, 0);
- }
-
- return obj;
-}
-
-static void factorymode_hr_bp_bo_test_status_update(lv_anim_t * anim)
-{
- char str[128]= {0};
- uint16_t hr = 0;
- uint16_t bp_h = 0;
- uint16_t bp_l = 0;
- uint16_t bo = 0;
- asl_hr_bp_bo_value_get(&hr, &bp_h, &bp_l, &bo);
-
- snprintf(str, 128, "%s: %d bpm \n%s: %d mmHg \n%s: %d mmHg \n%s : %d%%",
- (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr,
- (char *)lv_lang_get_text(WATCH_TEXT_ID_SYSTOLIC_BP), bp_h,
- (char *)lv_lang_get_text(WATCH_TEXT_ID_DIASTOLIC_BP), bp_l,
- (char *)lv_lang_get_text(WATCH_TEXT_ID_BLOOD_OXYGEN), bo);
- lv_label_set_text(anim->var,str);
-}
-
-static lv_obj_t * factorymode_hr_bp_bo_test_create(lv_obj_t * activity_obj)
-{
- lv_obj_t * 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 = factorymode_hr_bp_bo_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;
- }
- }
-
- 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);
-
- testing_st = HEART_RATE;
- asl_hr_bp_bo_measure_stop();
- asl_hr_bp_bo_fac_mode_measure_start(WAKEUP_UPDATE);
-
- char str[128]= {0};
-
- lv_obj_t * label = lv_label_create(content, NULL);
-#if USE_LV_WATCH_UI_360_360
- lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
- lv_obj_set_width(label,LV_HOR_RES-60);
- lv_obj_set_pos(label, 30, 105);
-#else
- lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font20);
- lv_obj_set_width(label,LV_HOR_RES-40);
+ //lv_obj_set_size(label,LV_HOR_RES,LV_VER_RES/2);
+ lv_obj_set_width(label, LV_HOR_RES - 40);
lv_obj_set_pos(label, 20, 70);
-#endif
-
- uint16_t hr = 0;
- uint16_t bp_h = 0;
- uint16_t bp_l = 0;
- uint16_t bo = 0;
- asl_hr_bp_bo_value_get(&hr, &bp_h, &bp_l, &bo);
- snprintf(str, 128, "%s: %d bpm \n%s: %d mmHg \n%s: %d mmHg \n%s : %d%%",
- (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr,
- (char *)lv_lang_get_text(WATCH_TEXT_ID_SYSTOLIC_BP), bp_h,
- (char *)lv_lang_get_text(WATCH_TEXT_ID_DIASTOLIC_BP), bp_l,
- (char *)lv_lang_get_text(WATCH_TEXT_ID_BLOOD_OXYGEN), bo);
+ char str[128] = {0};
+ uint8_t id = mmi_gsensor_sensor_id_get();
+ if(id > 0)
+ {
+ #if 1
+ sprintf(str, "%s %s 0x%x\nX: \nY: \nZ: \n",
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),
+ "id :",
+ id);
+ //t_x, t_y, t_z,
+ //(char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_SUCCESS));
+ #else
+ int16_t t_mems_data[32 * 3] = {0};
+ int16_t t_x[32]= {0}, t_y[32]= {0}, t_z[32]= {0};
+
+ get_Gsensor_fifo_xyz(t_mems_data);
+ memcpy(t_x, t_mems_data, 32);
+ memcpy(t_y, t_mems_data + 32, 32);
+ memcpy(t_z, t_mems_data + 64, 32);
+
+// sprintf(str, "%s %s 0x%x\nX: %s\nY: %s\nZ: %s\n%s",
+// (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),
+// "id :", id,
+// t_x, t_y, t_z,
+// (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_SUCCESS));
+
+ sprintf(str, "%s %s 0x%x\n%s",
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),
+ "id :", id,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_SUCCESS));
+ #endif
+ }
+ else
+ {
+ sprintf(str, "%s %s 0x%x\n%s",
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),
+ "id :", id,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_FAIL));
+ }
lv_label_set_text(label,str);
+ //lv_obj_align(label, content, LV_ALIGN_CENTER, 0, 0);
+#if 1
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)factorymode_hr_bp_bo_test_status_update);
+ lv_anim_set_start_cb(&a, (lv_anim_ready_cb_t)mmi_factorymode_gsensor_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);
+#endif
return obj;
}
-static void factorymode_sport_hr_test_status_update(lv_anim_t * anim)
-{
- char str[32] = {0};
- uint16_t hr = 0;
- asl_hr_bp_bo_value_get(&hr, NULL, NULL, NULL);
-
- snprintf(str, 32, "%s: %d bpm", (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr);
- lv_label_set_text(anim->var,str);
-}
+#else
-static lv_obj_t * factorymode_sport_hr_test_create(lv_obj_t * activity_obj)
+static lv_obj_t * factorymode_gsensor_create(lv_obj_t * activity_obj)
{
- lv_obj_t * 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 = factorymode_sport_hr_test_create;
+ activity_ext.create = factorymode_gsensor_create;
activity_ext.prepare_destory = factorymode_test_prepare_destory;
activity_obj = lv_watch_creat_activity_obj(&activity_ext);
LV_ASSERT_MEM(activity_obj);
}
}
- obj = lv_watch_obj_create(activity_obj);
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
LV_ASSERT_MEM(obj);
if(NULL == obj) {
return NULL;
lv_obj_align(content, NULL, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_click(content, false);
- testing_st = SPORT_HEART_RATE;
- asl_hr_bp_bo_measure_stop();
- asl_hr_bp_bo_sport_measure_start(5, WAKEUP_UPDATE);
-
- char str[32]= {0};
-
- lv_obj_t * label = lv_label_create(content, NULL);
+ lv_obj_t * title_label = lv_label_create(content, NULL);
#if USE_LV_WATCH_UI_360_360
- lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
- lv_obj_set_width(label,LV_HOR_RES-60);
- lv_obj_set_pos(label, 30, 105);
+ lv_obj_add_style(title_label,LV_OBJ_PART_MAIN, &lv_watch_font30_gray);
#else
- lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font20);
- lv_obj_set_width(label,LV_HOR_RES-40);
- lv_obj_set_pos(label, 20, 70);
+ lv_obj_add_style(title_label,LV_OBJ_PART_MAIN, &lv_watch_font20_gray);
#endif
+ lv_label_set_align(title_label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(title_label, false);
+ lv_label_set_text_id(title_label, WATCH_TEXT_ID_GSENSOR);
+ lv_obj_align(title_label, content, LV_ALIGN_IN_TOP_MID, 0, 10);
- uint16_t hr = 0;
- asl_hr_bp_bo_value_get(&hr, NULL, NULL, NULL);
-
- snprintf(str, 32, "%s: %d bpm", (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr);
- 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)factorymode_sport_hr_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);
-
- return obj;
-}
-
-static void factorymode_temperature_update(lv_anim_t * anim)
-{
- char str[128]= {0};
-
- snprintf(str, 128, "cur temp: %.2f°C\navg temp: %.2f°C\nbody temp: %.2f°C",
- asl_cur_temperature_get(),
- asl_avg_temperature_get(),
- asl_body_temperature_get());
- lv_label_set_text(anim->var,str);
-}
-
-static lv_obj_t * factorymode_temperature_test_create(lv_obj_t * activity_obj)
-{
- lv_obj_t * 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 = factorymode_temperature_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;
- }
- }
-
- 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);
-
- testing_st = FAC_TEMPERATURE;
- asl_temperature_measure_start();
-
- char str[128]= {0};
+ char str[64];
+ memset(str, 0, 64);
+ uint8_t id = mmi_gsensor_sensor_id_get();
lv_obj_t * label = lv_label_create(content, NULL);
#if USE_LV_WATCH_UI_360_360
lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
- lv_obj_set_width(label,LV_HOR_RES-60);
- lv_obj_set_pos(label, 30, 105);
#else
lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font20);
- lv_obj_set_width(label,LV_HOR_RES-40);
- lv_obj_set_pos(label, 20, 70);
#endif
-
- snprintf(str, 128, "cur temp: \navg temp: \nbody temp: ");
- 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)factorymode_temperature_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);
+ lv_obj_set_size(label,LV_HOR_RES,LV_VER_RES/2);
+ if(id > 0) {
+ snprintf(str, 64, "%s %s 0x%x\n%s", (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),"id :",id,(char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_SUCCESS));
+ lv_label_set_text(label,str);
+ lv_obj_align(label, content, LV_ALIGN_CENTER, 0, 0);
+ } else {
+ snprintf(str, 64, "%s %s 0x%x\n%s", (char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR),"id :",id,(char *)lv_lang_get_text(WATCH_TEXT_ID_GSENSOR_FAIL));
+ lv_label_set_text(label,str);
+ lv_obj_align(label, content, LV_ALIGN_CENTER, 0, 0);
+ }
return obj;
}
-
+#endif
static void factory_mode_calibration_destory(lv_obj_t * activity_obj)
{
void factorymode_gsensor_create_btn_cb(lv_obj_t * btn,lv_event_t e)
{
if(e == LV_EVENT_CLICKED) {
+ #ifdef __MMI_ZHSX_SUPPORT__
+ mmi_factorymode_gsensor_create(NULL);
+ #else
factorymode_gsensor_create(NULL);
+ #endif
}
}
-void factorymode_hr_bp_bo_test_create_btn_cb(lv_obj_t * btn,lv_event_t e)
+#ifdef __MMI_ZHSX_SUPPORT__
+// temperature
+static void mmi_factorymode_temperature_update(lv_anim_t * anim)
{
- if(e == LV_EVENT_CLICKED) {
- factorymode_hr_bp_bo_test_create(NULL);
- }
+ char str[32]= {0};
+
+ sprintf(str, "body temp:\n %.2f %s", mmi_tsensor_body_temperature_get(), (char *)lv_lang_get_text(WATCH_TEXT_ID_TEMPERATURE_UNIT));
+ lv_label_set_text(anim->var,str);
}
-void factorymode_sport_hr_test_create_btn_cb(lv_obj_t * btn,lv_event_t e)
+static lv_obj_t * mmi_factorymode_temperature_test_create(lv_obj_t * activity_obj)
{
- if(e == LV_EVENT_CLICKED) {
- factorymode_sport_hr_test_create(NULL);
+ lv_obj_t * 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_temperature_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;
+ }
}
-}
-void factorymode_temperature_test_create_btn_cb(lv_obj_t * btn,lv_event_t e)
+ 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);
+
+ testing_st = FAC_TEMPERATURE;
+ mmi_tsensor_temperature_measure_start();
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+#if USE_LV_WATCH_UI_360_360
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
+ lv_obj_set_width(label,LV_HOR_RES-60);
+ lv_obj_set_pos(label, 30, 105);
+#else
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font26);
+ lv_obj_set_width(label,LV_HOR_RES-40);
+ lv_obj_set_pos(label, 20, 70);
+#endif
+
+ char str[32]= {0};
+ sprintf(str, "body temp: ");
+ 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_temperature_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);
+
+ return obj;
+}
+
+void mmi_factorymode_temperature_test_create_btn_cb(lv_obj_t * btn,lv_event_t e)
+{
+ if(e == LV_EVENT_CLICKED) {
+ mmi_factorymode_temperature_test_create(NULL);
+ }
+}
+
+// heart
+static void mmi_factorymode_heart_test_status_update(lv_anim_t * anim)
+{
+ char str[32]= {0};
+ uint16_t hr_value = 0;
+
+ mmi_hsensor_measure_value_get(&hr_value, NULL, NULL, NULL);
+ sprintf(str, "%s: %d bpm", (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr_value);
+ lv_label_set_text(anim->var, str);
+}
+
+static lv_obj_t * mmi_factorymode_heart_test_create(lv_obj_t * activity_obj)
+{
+ lv_obj_t * 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_heart_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;
+ }
+ }
+
+ 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);
+
+ testing_st = FAC_HEART;
+ mmi_hsensor_measure_stop();
+ mmi_hsensor_hr_measure_start();
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+#if USE_LV_WATCH_UI_360_360
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
+ lv_obj_set_width(label,LV_HOR_RES-60);
+ lv_obj_set_pos(label, 30, 105);
+#else
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font26);
+ lv_obj_set_width(label,LV_HOR_RES-40);
+ lv_obj_set_pos(label, 20, 70);
+#endif
+
+ char str[32]= {0};
+ uint16_t hr_value = 0;
+ mmi_hsensor_measure_value_get(&hr_value, NULL, NULL, NULL);
+ sprintf(str, "%s: %d bpm", (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr_value);
+ 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_heart_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);
+
+ return obj;
+}
+
+void mmi_factorymode_heart_test_create_btn_cb(lv_obj_t * btn,lv_event_t e)
+{
+ if(e == LV_EVENT_CLICKED) {
+ mmi_factorymode_heart_test_create(NULL);
+ }
+}
+
+// spo2
+static void mmi_factorymode_spo2_test_status_update(lv_anim_t * anim)
+{
+ char str[32]= {0};
+ uint16_t spo2_value = 0;
+
+ mmi_hsensor_measure_value_get(NULL, NULL, NULL, &spo2_value);
+ sprintf(str, "%s : %d%%", (char *)lv_lang_get_text(WATCH_TEXT_ID_BLOOD_OXYGEN), spo2_value);
+ lv_label_set_text(anim->var, str);
+}
+
+static lv_obj_t * mmi_factorymode_spo2_test_create(lv_obj_t * activity_obj)
+{
+ lv_obj_t * 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_spo2_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;
+ }
+ }
+
+ 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);
+
+ testing_st = FAC_SPO2;
+ mmi_hsensor_measure_stop();
+ mmi_hsensor_spo2_measure_start();
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+#if USE_LV_WATCH_UI_360_360
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
+ lv_obj_set_width(label,LV_HOR_RES-60);
+ lv_obj_set_pos(label, 30, 105);
+#else
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font26);
+ lv_obj_set_width(label,LV_HOR_RES - 40);
+ lv_obj_set_pos(label, 20, 70);
+#endif
+
+ char str[32]= {0};
+ uint16_t spo2_value = 0;
+ mmi_hsensor_measure_value_get(NULL, NULL, NULL, &spo2_value);
+ sprintf(str, "%s : %d%%", (char *)lv_lang_get_text(WATCH_TEXT_ID_BLOOD_OXYGEN), spo2_value);
+ 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_spo2_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);
+
+ return obj;
+}
+
+void mmi_factorymode_spo2_test_create_btn_cb(lv_obj_t * btn,lv_event_t e)
+{
+ if(e == LV_EVENT_CLICKED) {
+ mmi_factorymode_spo2_test_create(NULL);
+ }
+}
+
+#else
+
+static void factorymode_hr_bp_bo_test_status_update(lv_anim_t * anim)
+{
+ char str[128]= {0};
+ uint16_t hr = 0;
+ uint16_t bp_h = 0;
+ uint16_t bp_l = 0;
+ uint16_t bo = 0;
+ mmi_hsensor_measure_value_get(&hr, &bp_h, &bp_l, &bo);
+
+ snprintf(str, 128, "%s: %d bpm \n%s: %d mmHg \n%s: %d mmHg \n%s : %d%%",
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_SYSTOLIC_BP), bp_h,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_DIASTOLIC_BP), bp_l,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_BLOOD_OXYGEN), bo);
+ lv_label_set_text(anim->var,str);
+}
+
+static lv_obj_t * factorymode_hr_bp_bo_test_create(lv_obj_t * activity_obj)
+{
+ lv_obj_t * 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 = factorymode_hr_bp_bo_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;
+ }
+ }
+
+ 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);
+
+ testing_st = HEART_RATE;
+ mmi_hsensor_measure_stop();
+ //asl_hr_bp_bo_fac_mode_measure_start(WAKEUP_UPDATE);
+
+
+
+ char str[128]= {0};
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+#if USE_LV_WATCH_UI_360_360
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
+ lv_obj_set_width(label,LV_HOR_RES-60);
+ lv_obj_set_pos(label, 30, 105);
+#else
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font20);
+ lv_obj_set_width(label,LV_HOR_RES-40);
+ lv_obj_set_pos(label, 20, 70);
+#endif
+
+ uint16_t hr = 0;
+ uint16_t bp_h = 0;
+ uint16_t bp_l = 0;
+ uint16_t bo = 0;
+ mmi_hsensor_measure_value_get(&hr, &bp_h, &bp_l, &bo);
+
+ snprintf(str, 128, "%s: %d bpm \n%s: %d mmHg \n%s: %d mmHg \n%s : %d%%",
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_SYSTOLIC_BP), bp_h,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_DIASTOLIC_BP), bp_l,
+ (char *)lv_lang_get_text(WATCH_TEXT_ID_BLOOD_OXYGEN), bo);
+ 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)factorymode_hr_bp_bo_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);
+
+ return obj;
+}
+
+void factorymode_hr_bp_bo_test_create_btn_cb(lv_obj_t * btn,lv_event_t e)
+{
+ if(e == LV_EVENT_CLICKED) {
+ factorymode_hr_bp_bo_test_create(NULL);
+ }
+}
+
+static void factorymode_sport_hr_test_status_update(lv_anim_t * anim)
+{
+ char str[32] = {0};
+ uint16_t hr = 0;
+ mmi_hsensor_measure_value_get(&hr, NULL, NULL, NULL);
+
+ snprintf(str, 32, "%s: %d bpm", (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr);
+ lv_label_set_text(anim->var,str);
+}
+
+static lv_obj_t * factorymode_sport_hr_test_create(lv_obj_t * activity_obj)
+{
+ lv_obj_t * 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 = factorymode_sport_hr_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;
+ }
+ }
+
+ 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);
+
+ testing_st = SPORT_HEART_RATE;
+ mmi_hsensor_measure_stop();
+ //asl_hr_bp_bo_sport_measure_start(5, WAKEUP_UPDATE);
+
+
+
+ char str[32]= {0};
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+#if USE_LV_WATCH_UI_360_360
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
+ lv_obj_set_width(label,LV_HOR_RES-60);
+ lv_obj_set_pos(label, 30, 105);
+#else
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font20);
+ lv_obj_set_width(label,LV_HOR_RES-40);
+ lv_obj_set_pos(label, 20, 70);
+#endif
+
+ uint16_t hr = 0;
+ mmi_hsensor_measure_value_get(&hr, NULL, NULL, NULL);
+
+ snprintf(str, 32, "%s: %d bpm", (char *)lv_lang_get_text(WATCH_TEXT_ID_HEART_RATE), hr);
+ 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)factorymode_sport_hr_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);
+
+ return obj;
+}
+
+void factorymode_sport_hr_test_create_btn_cb(lv_obj_t * btn,lv_event_t e)
+{
+ if(e == LV_EVENT_CLICKED) {
+ factorymode_sport_hr_test_create(NULL);
+ }
+}
+
+static void factorymode_temperature_update(lv_anim_t * anim)
+{
+ char str[128]= {0};
+
+ snprintf(str, 128, "cur temp: %.2f°C\navg temp: %.2f°C\nbody temp: %.2f°C",
+ asl_cur_temperature_get(),
+ asl_avg_temperature_get(),
+ mmi_tsensor_body_temperature_get());
+ lv_label_set_text(anim->var,str);
+}
+
+static lv_obj_t * factorymode_temperature_test_create(lv_obj_t * activity_obj)
+{
+ lv_obj_t * 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 = factorymode_temperature_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;
+ }
+ }
+
+ 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);
+
+ testing_st = FAC_TEMPERATURE;
+ mmi_tsensor_temperature_measure_start();
+
+ char str[128]= {0};
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+#if USE_LV_WATCH_UI_360_360
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font30);
+ lv_obj_set_width(label,LV_HOR_RES-60);
+ lv_obj_set_pos(label, 30, 105);
+#else
+ lv_obj_add_style(label,LV_OBJ_PART_MAIN, &lv_watch_font20);
+ lv_obj_set_width(label,LV_HOR_RES-40);
+ lv_obj_set_pos(label, 20, 70);
+#endif
+
+ snprintf(str, 128, "cur temp: \navg temp: \nbody temp: ");
+ 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)factorymode_temperature_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);
+
+ return obj;
+}
+
+void factorymode_temperature_test_create_btn_cb(lv_obj_t * btn,lv_event_t e)
{
if(e == LV_EVENT_CLICKED) {
factorymode_temperature_test_create(NULL);
}
}
+#endif
void factory_mode_calibration_create_btn_cb(lv_obj_t * btn,lv_event_t e)
{