244 lines
6.7 KiB
C
244 lines
6.7 KiB
C
|
#include "lvgl.h"
|
|||
|
#include "img_def.h"
|
|||
|
#include "demo.h"
|
|||
|
|
|||
|
static lv_obj_t* g_start_page_obj;
|
|||
|
static lv_obj_t* g_animing_start;
|
|||
|
|
|||
|
extern lv_obj_t *meter;
|
|||
|
extern lv_meter_indicator_t * indic;
|
|||
|
extern lv_meter_indicator_t * indic1;
|
|||
|
|
|||
|
extern lv_obj_t * oil_meter;
|
|||
|
extern lv_meter_indicator_t *oil_indic1;
|
|||
|
extern lv_meter_indicator_t *oil_indic2;
|
|||
|
|
|||
|
extern lv_obj_t * temp_meter;
|
|||
|
extern lv_meter_indicator_t *temp_indic1;
|
|||
|
extern lv_meter_indicator_t *temp_indic2;
|
|||
|
|
|||
|
//ע<>͵<EFBFBD>xrz<72><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#if 0
|
|||
|
#define ANIMIMG_NUM 3
|
|||
|
LV_ATTRIBUTE_LARGE_CONST static const lv_img_dsc_t* test_animo[4] =
|
|||
|
{
|
|||
|
IMG_DM1_OIL,
|
|||
|
IMG_DM1_TCS,
|
|||
|
IMG_DM1_TEMP,
|
|||
|
IMG_DM1_NULL,
|
|||
|
};
|
|||
|
|
|||
|
static void my_lvgl_timer(lv_timer_t* timer)
|
|||
|
{
|
|||
|
static uint8_t page_switch_flag = 0;
|
|||
|
|
|||
|
printf("get_animimg_status()========= %d \n",get_animimg_status());
|
|||
|
switch(page_switch_flag)
|
|||
|
{
|
|||
|
case 2:
|
|||
|
if (timer != NULL)
|
|||
|
{
|
|||
|
lv_timer_del(timer);
|
|||
|
timer = NULL;
|
|||
|
lv_obj_del(g_start_page_obj);
|
|||
|
g_start_page_obj = NULL;
|
|||
|
}
|
|||
|
win_init();
|
|||
|
break;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
if(++page_switch_flag>10)
|
|||
|
{
|
|||
|
page_switch_flag=10;
|
|||
|
}
|
|||
|
|
|||
|
if (get_animimg_status() >= 2&& page_switch_flag==0)
|
|||
|
{
|
|||
|
page_switch_flag = 1;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void startingup_animing() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
static lv_style_t startingup_style_base;
|
|||
|
lv_style_init(&startingup_style_base);
|
|||
|
//<2F><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>
|
|||
|
lv_style_set_bg_color(&startingup_style_base, lv_color_make(0x00, 0x00, 0x00));//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|||
|
//<2F><>ʽ<EFBFBD><CABD><EFBFBD>߾ࣺ1pix
|
|||
|
lv_style_set_border_width(&startingup_style_base, 1);
|
|||
|
//<2F><>ʽ<EFBFBD><CABD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>ɫ<EFBFBD><C9AB>
|
|||
|
lv_style_set_border_color(&startingup_style_base, lv_color_make(0x00, 0x00, 0x00));//<2F>߿<EFBFBD><DFBF><EFBFBD>ɫɫ
|
|||
|
|
|||
|
g_start_page_obj = lv_tileview_create(lv_scr_act()); //<2F><><EFBFBD><EFBFBD>titlewindow
|
|||
|
lv_obj_set_size(g_start_page_obj, LV_HOR_RES, LV_VER_RES); //<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ļ<EFBFBD><C4BB>С
|
|||
|
|
|||
|
lv_obj_set_style_bg_color(g_start_page_obj, lv_color_make(0x00, 0x00, 0x00), 0);//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ɫΪ<C9AB><CEAA>
|
|||
|
|
|||
|
g_animing_start = lv_animimg_create(g_start_page_obj); //<2F><><EFBFBD><EFBFBD>1
|
|||
|
lv_obj_center(g_animing_start); //<2F><><EFBFBD><EFBFBD>
|
|||
|
lv_animimg_set_src(g_animing_start, (lv_img_dsc_t**)test_animo, ANIMIMG_NUM);
|
|||
|
lv_animimg_set_duration(g_animing_start, 1500);
|
|||
|
lv_animimg_set_repeat_count(g_animing_start, 1);
|
|||
|
}
|
|||
|
|
|||
|
void moto_animo(void){
|
|||
|
startingup_animing();
|
|||
|
|
|||
|
lv_timer_t* timer;
|
|||
|
timer = lv_timer_create(my_lvgl_timer,1000, g_start_page_obj);
|
|||
|
lv_timer_ready(timer);
|
|||
|
lv_animimg_start(g_animing_start);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
static void anim_arc_value_cb(void * var, int32_t v)
|
|||
|
{
|
|||
|
lv_arc_set_value(var, v);
|
|||
|
}
|
|||
|
|
|||
|
static void anim_pointer_value_cb(void * var, int32_t v)
|
|||
|
{
|
|||
|
static uint8_t state =0;
|
|||
|
if(v==0)
|
|||
|
{
|
|||
|
if(state ==1 && Get_sys_power_on_self_test() !=100)
|
|||
|
{
|
|||
|
printf("animo end.\n");
|
|||
|
Set_sys_power_on_self_test(100);
|
|||
|
// lv_anim_del_all();
|
|||
|
// lv_anim_del(total, anim_mileage_value_cb);
|
|||
|
}
|
|||
|
printf("v==0");
|
|||
|
state++;
|
|||
|
}
|
|||
|
lv_img_set_angle(var,v);
|
|||
|
}
|
|||
|
|
|||
|
static void anim_oilarc_value_cb(void * var, int32_t v)
|
|||
|
{
|
|||
|
if(v <60)
|
|||
|
{
|
|||
|
lv_meter_set_indicator_end_value(var, oil_indic1, v);
|
|||
|
lv_meter_set_indicator_end_value(var, oil_indic2, 60);
|
|||
|
}
|
|||
|
else
|
|||
|
lv_meter_set_indicator_end_value(var, oil_indic2, v);
|
|||
|
}
|
|||
|
|
|||
|
static void anim_temparc_value_cb(void * var, int32_t v)
|
|||
|
{
|
|||
|
if(v <210)
|
|||
|
{
|
|||
|
lv_meter_set_indicator_end_value(var, temp_indic1, v);
|
|||
|
lv_meter_set_indicator_end_value(var, temp_indic2, 210);
|
|||
|
}
|
|||
|
else
|
|||
|
lv_meter_set_indicator_end_value(var, temp_indic2, v);
|
|||
|
}
|
|||
|
|
|||
|
static void anim_value_cb(void * var, int32_t v)
|
|||
|
{
|
|||
|
lv_label_set_text_fmt(var, "%d",v);
|
|||
|
}
|
|||
|
|
|||
|
static void anim_mileage_value_cb(void * var, int32_t v)
|
|||
|
{
|
|||
|
lv_label_set_text_fmt(var, "%d",v*111111);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void self_checking_animo(lv_obj_t * parent)
|
|||
|
{
|
|||
|
|
|||
|
if(Get_sys_power_on_self_test() ==100)
|
|||
|
return;
|
|||
|
|
|||
|
lv_obj_t * ui_Arc1 = lv_obj_get_child(parent,5);
|
|||
|
lv_obj_t * hand_img = lv_obj_get_child(parent,6);
|
|||
|
|
|||
|
lv_obj_t * speed = lv_obj_get_child(parent,7);
|
|||
|
lv_obj_t * gear = lv_obj_get_child(parent,8);
|
|||
|
lv_obj_t * gear_null = lv_obj_get_child(parent,9);
|
|||
|
lv_obj_t * tcs = lv_obj_get_child(parent,10);
|
|||
|
lv_obj_t * time_label = lv_obj_get_child(parent,11);
|
|||
|
lv_obj_t * max_speed = lv_obj_get_child(parent,12);
|
|||
|
lv_obj_t * avg_speed = lv_obj_get_child(parent,13);
|
|||
|
lv_obj_t * trip = lv_obj_get_child(parent,14);
|
|||
|
lv_obj_t * total = lv_obj_get_child(parent,15);
|
|||
|
|
|||
|
lv_anim_t a;
|
|||
|
lv_anim_init(&a);
|
|||
|
lv_anim_set_var(&a, ui_Arc1);
|
|||
|
lv_anim_set_values(&a, 0, 120);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
lv_anim_set_time(&a, 1000);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
lv_anim_set_playback_time(&a, 1000);//<2F><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><CDBE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
lv_anim_set_repeat_delay(&a, 1000);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD><C5BC><EFBFBD> <20><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
|||
|
// lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);//<2F>ظ<EFBFBD>
|
|||
|
lv_anim_set_repeat_count(&a, 1);//<2F>ظ<EFBFBD>
|
|||
|
lv_anim_set_path_cb(&a, lv_anim_path_linear);//<2F><><EFBFBD>Ա仯
|
|||
|
lv_anim_set_exec_cb(&a, anim_arc_value_cb);//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
lv_anim_set_var(&a, hand_img);
|
|||
|
lv_anim_set_values(&a, 0, 3000);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
lv_anim_set_exec_cb(&a, anim_pointer_value_cb);//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
lv_anim_set_var(&a, oil_meter);
|
|||
|
lv_anim_set_values(&a, 0, 270);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
lv_anim_set_exec_cb(&a, anim_oilarc_value_cb);//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
lv_anim_set_var(&a, temp_meter);
|
|||
|
lv_anim_set_values(&a, 0, 270);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
lv_anim_set_exec_cb(&a, anim_temparc_value_cb);//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
lv_anim_set_var(&a, speed);
|
|||
|
lv_anim_set_values(&a, 0, 255);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
lv_anim_set_exec_cb(&a, anim_value_cb);//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
lv_anim_set_var(&a, max_speed);
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
lv_anim_set_var(&a, avg_speed);
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
lv_anim_set_var(&a, gear);
|
|||
|
lv_anim_set_values(&a, 0, 9);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
// lv_anim_set_exec_cb(&a, anim_value_cb);//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
lv_anim_set_var(&a, trip);
|
|||
|
lv_anim_set_values(&a, 0, 9);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
lv_anim_set_exec_cb(&a, anim_mileage_value_cb);//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
lv_anim_set_var(&a, total);
|
|||
|
lv_anim_set_values(&a, 0, 9);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
lv_anim_set_exec_cb(&a, anim_mileage_value_cb);//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
lv_anim_start(&a);
|
|||
|
|
|||
|
// lv_anim_del(ui_Arc1, anim_arc_value_cb);
|
|||
|
// lv_anim_del(hand_img, anim_pointer_value_cb);
|
|||
|
// lv_anim_del(oil_meter, anim_oilarc_value_cb);
|
|||
|
// lv_anim_del(temp_meter, anim_temparc_value_cb);
|
|||
|
//
|
|||
|
// lv_anim_del(speed, anim_value_cb);
|
|||
|
// lv_anim_del(max_speed, anim_value_cb);
|
|||
|
// lv_anim_del(avg_speed, anim_value_cb);
|
|||
|
// lv_anim_del(gear, anim_value_cb);
|
|||
|
//
|
|||
|
// lv_anim_del(trip, anim_mileage_value_cb);
|
|||
|
// lv_anim_del(total, anim_mileage_value_cb);
|
|||
|
|
|||
|
|
|||
|
lv_obj_add_flag(gear_null,LV_OBJ_FLAG_HIDDEN);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#endif // 0
|