mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-14 10:28:54 +00:00
630 lines
23 KiB
C
630 lines
23 KiB
C
/*
|
||
* Copyright 2024 NXP
|
||
* NXP Confidential and Proprietary. This software is owned or controlled by NXP and may only be used strictly in
|
||
* accordance with the applicable license terms. By expressly accepting such terms or by downloading, installing,
|
||
* activating and/or otherwise using the software, you are agreeing that you have read, and that you agree to
|
||
* comply with and are bound by, such license terms. If you do not agree to be bound by the applicable license
|
||
* terms, then you may not retain, install, activate or otherwise use the software.
|
||
*/
|
||
|
||
#include <unistd.h>
|
||
#include <time.h>
|
||
#include <stdio.h>
|
||
#include <stdlib.h>
|
||
#include <sys/time.h>
|
||
|
||
#include "rtthread.h"
|
||
#include "rtdevice.h"
|
||
#include "rtconfig.h"
|
||
#include <aic_core.h>
|
||
#include <aic_hal.h>
|
||
|
||
#include "lvgl.h"
|
||
#include <stdio.h>
|
||
#include "gui_guider.h"
|
||
#if LV_USE_FREEMASTER
|
||
#include "gg_external_data.h"
|
||
#endif
|
||
|
||
#include "aic_ui.h"
|
||
#include "events_init.h"
|
||
#include "custom.h"
|
||
#include "nvs_eepom.h"
|
||
#include "zigbee_fun.h"
|
||
#include "esp32_clock.h"
|
||
#include "app_sr_fun.h"
|
||
|
||
#define DBG_TAG "guider"
|
||
#define DBG_LVL DBG_INFO
|
||
#include <rtdbg.h>
|
||
|
||
lv_ui guider_ui;
|
||
|
||
//投影仪的音量
|
||
const char Air_Projector_volume_ary[5][64]=
|
||
{
|
||
"L:/rodata/lvgl_data/projector_vol_1.png",
|
||
"L:/rodata/lvgl_data/projector_vol_2.png",
|
||
"L:/rodata/lvgl_data/projector_vol_3.png",
|
||
"L:/rodata/lvgl_data/projector_vol_4.png",
|
||
"L:/rodata/lvgl_data/projector_vol_5.png",
|
||
};
|
||
//模式//5
|
||
const char Air_conditioner_mode_ary[5][64]=
|
||
{
|
||
"L:/rodata/lvgl_data/air_mode1.png",
|
||
"L:/rodata/lvgl_data/air_mode2.png",
|
||
"L:/rodata/lvgl_data/air_mode3.png",
|
||
"L:/rodata/lvgl_data/air_mode4.png",
|
||
"L:/rodata/lvgl_data/air_mode5.png",
|
||
};
|
||
//风速//4
|
||
const char Air_conditioner_fan_ary[4][64]=
|
||
{
|
||
"L:/rodata/lvgl_data/air_fan1.png",
|
||
"L:/rodata/lvgl_data/air_fan2.png",
|
||
"L:/rodata/lvgl_data/air_fan3.png",
|
||
"L:/rodata/lvgl_data/air_fan4.png",
|
||
};
|
||
//风向//5
|
||
const char Air_conditioner_dir_ary[5][64]=
|
||
{
|
||
"L:/rodata/lvgl_data/air_dir1.png",
|
||
"L:/rodata/lvgl_data/air_dir2.png",
|
||
"L:/rodata/lvgl_data/air_dir3.png",
|
||
"L:/rodata/lvgl_data/air_dir4.png",
|
||
"L:/rodata/lvgl_data/air_dir5.png",
|
||
};
|
||
const char scene_iconbgimg_ary[12][64]=
|
||
{
|
||
"",//占位,用于表示使用默认图标
|
||
"L:/rodata/lvgl_data/scenbg1.png",
|
||
"L:/rodata/lvgl_data/scenbg2.png",
|
||
"L:/rodata/lvgl_data/scenbg3.png",
|
||
"L:/rodata/lvgl_data/scenbg4.png",
|
||
"L:/rodata/lvgl_data/scenbg5.png",
|
||
"L:/rodata/lvgl_data/scenbg6.png",
|
||
"L:/rodata/lvgl_data/scenbg7.png",
|
||
"L:/rodata/lvgl_data/scenbg8.png",
|
||
"L:/rodata/lvgl_data/scenbg9.png",
|
||
"L:/rodata/lvgl_data/scenbg10.png",
|
||
"L:/rodata/lvgl_data/scenbg11.png",
|
||
};
|
||
|
||
|
||
const char onoff_keyligthimgon_ary[16][64]=
|
||
{
|
||
"",//占位,用于表示使用默认图标//0
|
||
LVGL_PATH(onofflighton1.png),// "L:/rodata/lvgl_data/onofflighton1.png",
|
||
LVGL_PATH(onofflighton2.png),// "L:/rodata/lvgl_data/onofflighton2.png",
|
||
LVGL_PATH(onofflighton3.png),// "L:/rodata/lvgl_data/onofflighton3.png",
|
||
LVGL_PATH(onofflighton4.png),// "L:/rodata/lvgl_data/onofflighton4.png",
|
||
LVGL_PATH(onofflighton5.png),// "L:/rodata/lvgl_data/onofflighton5.png",
|
||
LVGL_PATH(onofflighton6.png),// "L:/rodata/lvgl_data/onofflighton6.png",
|
||
LVGL_PATH(onofflighton7.png),// "L:/rodata/lvgl_data/onofflighton7.png",
|
||
LVGL_PATH(onofflighton8.png),// "L:/rodata/lvgl_data/onofflighton8.png",
|
||
LVGL_PATH(onofflighton9.png),// "L:/rodata/lvgl_data/onofflighton9.png",
|
||
LVGL_PATH(onofflighton10.png),// "L:/rodata/lvgl_data/onofflighton10.png",
|
||
LVGL_PATH(onofflighton11.png),// "L:/rodata/lvgl_data/onofflighton11.png",
|
||
LVGL_PATH(onofflighton12.png),// "L:/rodata/lvgl_data/onofflighton12.png",
|
||
LVGL_PATH(onofflighton13.png),// "L:/rodata/lvgl_data/onofflighton13.png",
|
||
LVGL_PATH(onofflighton14.png),// "L:/rodata/lvgl_data/onofflighton14.png",
|
||
LVGL_PATH(onofflighton15.png),// "L:/rodata/lvgl_data/onofflighton15.png",
|
||
};
|
||
|
||
const char onoff_keyligthimgoff_ary[16][64]=
|
||
{
|
||
"",//占位,用于表示使用默认图标
|
||
LVGL_PATH(onofflightoff1.png),// "L:/rodata/lvgl_data/onofflightoff1.png",
|
||
LVGL_PATH(onofflightoff2.png),// "L:/rodata/lvgl_data/onofflightoff2.png",
|
||
LVGL_PATH(onofflightoff3.png),// "L:/rodata/lvgl_data/onofflightoff3.png",
|
||
LVGL_PATH(onofflightoff4.png),// "L:/rodata/lvgl_data/onofflightoff4.png",
|
||
LVGL_PATH(onofflightoff5.png),// "L:/rodata/lvgl_data/onofflightoff5.png",
|
||
LVGL_PATH(onofflightoff6.png),// "L:/rodata/lvgl_data/onofflightoff6.png",
|
||
LVGL_PATH(onofflightoff7.png),// "L:/rodata/lvgl_data/onofflightoff7.png",
|
||
LVGL_PATH(onofflightoff8.png),// "L:/rodata/lvgl_data/onofflightoff8.png",
|
||
LVGL_PATH(onofflightoff9.png),// "L:/rodata/lvgl_data/onofflightoff9.png",
|
||
LVGL_PATH(onofflightoff10.png),// "L:/rodata/lvgl_data/onofflightoff10.png",
|
||
LVGL_PATH(onofflightoff11.png),// "L:/rodata/lvgl_data/onofflightoff11.png",
|
||
LVGL_PATH(onofflightoff12.png),// "L:/rodata/lvgl_data/onofflightoff12.png",
|
||
LVGL_PATH(onofflightoff13.png),// "L:/rodata/lvgl_data/onofflightoff13.png",
|
||
LVGL_PATH(onofflightoff14.png),// "L:/rodata/lvgl_data/onofflightoff14.png",
|
||
LVGL_PATH(onofflightoff15.png),// "L:/rodata/lvgl_data/onofflightoff15.png",
|
||
};
|
||
|
||
const char onoff_switchlight_icon_ary[20][64]=
|
||
{
|
||
"",//占位,用于表示使用默认图标//0
|
||
"L:/rodata/lvgl_data/lighgt_icon_01.png",//LVGL_PATH(lighgt_icon_01.png),// "L:/rodata/lvgl_data/onofflighton1.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_02.png",//LVGL_PATH(lighgt_icon_02.png),// "L:/rodata/lvgl_data/onofflighton2.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_03.png",//LVGL_PATH(lighgt_icon_03.png),// "L:/rodata/lvgl_data/onofflighton3.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_04.png",//LVGL_PATH(lighgt_icon_04.png),// "L:/rodata/lvgl_data/onofflighton4.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_05.png",//LVGL_PATH(lighgt_icon_05.png),// "L:/rodata/lvgl_data/onofflighton5.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_06.png",//LVGL_PATH(lighgt_icon_06.png),// "L:/rodata/lvgl_data/onofflighton6.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_07.png",//LVGL_PATH(lighgt_icon_07.png),// "L:/rodata/lvgl_data/onofflighton7.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_08.png",//LVGL_PATH(lighgt_icon_08.png),// "L:/rodata/lvgl_data/onofflighton8.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_09.png",//LVGL_PATH(lighgt_icon_09.png),// "L:/rodata/lvgl_data/onofflighton9.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_10.png",//LVGL_PATH(lighgt_icon_10.png),// "L:/rodata/lvgl_data/onofflighton10.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_11.png",//LVGL_PATH(lighgt_icon_11.png),// "L:/rodata/lvgl_data/onofflighton11.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_12.png",//LVGL_PATH(lighgt_icon_12.png),// "L:/rodata/lvgl_data/onofflighton12.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_13.png",//LVGL_PATH(lighgt_icon_13.png),// "L:/rodata/lvgl_data/onofflighton13.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_14.png",//LVGL_PATH(lighgt_icon_14.png),// "L:/rodata/lvgl_data/onofflighton14.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_15.png",//LVGL_PATH(lighgt_icon_15.png),// "L:/rodata/lvgl_data/onofflighton15.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_16.png",//LVGL_PATH(lighgt_icon_16.png),// "L:/rodata/lvgl_data/onofflighton15.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_17.png",//LVGL_PATH(lighgt_icon_17.png),// "L:/rodata/lvgl_data/onofflighton15.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_18.png",//LVGL_PATH(lighgt_icon_18.png),// "L:/rodata/lvgl_data/onofflighton15.png",
|
||
"L:/rodata/lvgl_data/lighgt_icon_19.png",//LVGL_PATH(lighgt_icon_19.png),// "L:/rodata/lvgl_data/onofflighton15.png",
|
||
};
|
||
// lv_font_t *&lv_font_DroidSansFallback_12;
|
||
// lv_font_t *&lv_font_DroidSansFallback_14;
|
||
// lv_font_t *&lv_font_simsun_16;
|
||
// lv_font_t *&lv_font_DroidSansFallback_20;
|
||
// lv_font_t *lv_font_simsun_48;
|
||
// lv_font_t * lv_font_DroidSansFallback_60;
|
||
|
||
|
||
lv_font_t *ui_font_init(char *path, int size) {
|
||
printf("path:%s\r\n",path);
|
||
#if LVGL_VERSION_MAJOR == 8
|
||
static lv_ft_info_t info;
|
||
info.name = path;
|
||
info.weight = size;
|
||
info.style = FT_FONT_STYLE_NORMAL;
|
||
info.mem = NULL;
|
||
if (!lv_ft_font_init(&info))
|
||
return NULL;
|
||
return info.font;
|
||
#else
|
||
lv_font_t *font = lv_freetype_font_create(path,
|
||
LV_FREETYPE_FONT_RENDER_MODE_BITMAP,
|
||
size,
|
||
LV_FREETYPE_FONT_STYLE_NORMAL);
|
||
return font;
|
||
#endif //LVGL_VERSION_MAJOR
|
||
//return NULL;
|
||
}
|
||
//上电加载freetype字库及字体
|
||
void ui_font_load(void)
|
||
{
|
||
// &lv_font_DroidSansFallback_12 = ui_font_init(LVGL_FONT_PATH(albbhptR.ttf), 12);
|
||
// if (!&lv_font_DroidSansFallback_12) {
|
||
// //LV_LOG_ERROR("Failed to init &lv_font_DroidSansFallback_12");
|
||
// //return;
|
||
// rt_kprintf("Failed to init &lv_font_DroidSansFallback_12\n");
|
||
|
||
// }
|
||
// else{
|
||
// rt_kprintf("suss to init &lv_font_DroidSansFallback_12\n");
|
||
// }
|
||
|
||
// &lv_font_DroidSansFallback_14 = ui_font_init(LVGL_FONT_PATH(albbhptR.ttf), 14);
|
||
// if (!&lv_font_DroidSansFallback_14) {
|
||
// //LV_LOG_ERROR("Failed to init &lv_font_DroidSansFallback_14");
|
||
// //return;
|
||
// rt_kprintf("Failed to init &lv_font_DroidSansFallback_14\n");
|
||
|
||
// }
|
||
// else{
|
||
// rt_kprintf("suss to init &lv_font_DroidSansFallback_14\n");
|
||
// }
|
||
|
||
// &lv_font_simsun_16 = ui_font_init(LVGL_FONT_PATH(albbhptR.ttf), 16);
|
||
// if (!&lv_font_simsun_16) {
|
||
// //LV_LOG_ERROR("Failed to init &lv_font_simsun_16");
|
||
// //return;
|
||
// rt_kprintf("Failed to init &lv_font_simsun_16\n");
|
||
|
||
// }
|
||
// else{
|
||
// rt_kprintf("suss to init &lv_font_simsun_16\n");
|
||
// }
|
||
|
||
|
||
// &lv_font_DroidSansFallback_20 = ui_font_init(LVGL_FONT_PATH(albbhptR.ttf), 20);
|
||
// if (!&lv_font_DroidSansFallback_20) {
|
||
// //LV_LOG_ERROR("Failed to init &lv_font_DroidSansFallback_20");
|
||
// //return;
|
||
// rt_kprintf("Failed to init &lv_font_DroidSansFallback_20\n");
|
||
|
||
// }
|
||
// else{
|
||
// rt_kprintf("suss to init &lv_font_DroidSansFallback_20\n");
|
||
// }
|
||
|
||
// lv_font_simsun_48 = ui_font_init(LVGL_FONT_PATH(albbhptR.ttf), 48);
|
||
// if (!lv_font_simsun_48) {
|
||
// //LV_LOG_ERROR("Failed to init lv_font_simsun_48");
|
||
// //return;
|
||
// rt_kprintf("Failed to init lv_font_simsun_48\n");
|
||
|
||
// }
|
||
// else{
|
||
// rt_kprintf("suss to init lv_font_simsun_48\n");
|
||
// }
|
||
|
||
// lv_font_DroidSansFallback_60 = ui_font_init(LVGL_FONT_PATH(albbhptR.ttf), 60);
|
||
// if (!lv_font_DroidSansFallback_60) {
|
||
// //LV_LOG_ERROR("Failed to init lv_font_DroidSansFallback_60");
|
||
// //return;
|
||
// rt_kprintf("Failed to init lv_font_DroidSansFallback_60\n");
|
||
|
||
// }
|
||
// else{
|
||
// rt_kprintf("suss to init lv_font_DroidSansFallback_60\n");
|
||
// }
|
||
|
||
}
|
||
|
||
|
||
void ui_init_style(lv_style_t * style)
|
||
{
|
||
if (style->prop_cnt > 1)
|
||
lv_style_reset(style);
|
||
else
|
||
lv_style_init(style);
|
||
}
|
||
|
||
void ui_load_scr_animation(lv_ui *ui, lv_obj_t ** new_scr, bool new_scr_del, bool * old_scr_del, ui_setup_scr_t setup_scr,
|
||
lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool is_clean, bool auto_del)
|
||
{
|
||
lv_obj_t * act_scr = lv_scr_act();
|
||
|
||
#if LV_USE_FREEMASTER
|
||
if(auto_del) {
|
||
gg_edata_task_clear(act_scr);
|
||
}
|
||
#endif
|
||
if (auto_del && is_clean) {
|
||
lv_obj_clean(act_scr);
|
||
}
|
||
if (new_scr_del) {
|
||
setup_scr(ui);
|
||
}
|
||
lv_scr_load_anim(*new_scr, anim_type, time, delay, auto_del);
|
||
*old_scr_del = auto_del;
|
||
}
|
||
|
||
void ui_move_animation(void * var, int32_t duration, int32_t delay, int32_t x_end, int32_t y_end, lv_anim_path_cb_t path_cb,
|
||
uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time, uint32_t playback_delay,
|
||
lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb)
|
||
{
|
||
lv_anim_t anim;
|
||
lv_anim_init(&anim);
|
||
lv_anim_set_var(&anim, var);
|
||
lv_anim_set_time(&anim, duration);
|
||
lv_anim_set_delay(&anim, delay);
|
||
lv_anim_set_path_cb(&anim, path_cb);
|
||
lv_anim_set_repeat_count(&anim, repeat_cnt);
|
||
lv_anim_set_repeat_delay(&anim, repeat_delay);
|
||
lv_anim_set_playback_time(&anim, playback_time);
|
||
lv_anim_set_playback_delay(&anim, playback_delay);
|
||
|
||
lv_anim_set_exec_cb(&anim, (lv_anim_exec_xcb_t)lv_obj_set_x);
|
||
lv_anim_set_values(&anim, lv_obj_get_x(var), x_end);
|
||
lv_anim_start(&anim);
|
||
lv_anim_set_exec_cb(&anim, (lv_anim_exec_xcb_t)lv_obj_set_y);
|
||
lv_anim_set_values(&anim, lv_obj_get_y(var), y_end);
|
||
lv_anim_set_start_cb(&anim, start_cb);
|
||
lv_anim_set_ready_cb(&anim, ready_cb);
|
||
lv_anim_set_deleted_cb(&anim, deleted_cb);
|
||
lv_anim_start(&anim);
|
||
}
|
||
|
||
void ui_scale_animation(void * var, int32_t duration, int32_t delay, int32_t width, int32_t height, lv_anim_path_cb_t path_cb,
|
||
uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time, uint32_t playback_delay,
|
||
lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb)
|
||
{
|
||
lv_anim_t anim;
|
||
lv_anim_init(&anim);
|
||
lv_anim_set_var(&anim, var);
|
||
lv_anim_set_time(&anim, duration);
|
||
lv_anim_set_delay(&anim, delay);
|
||
lv_anim_set_path_cb(&anim, path_cb);
|
||
lv_anim_set_repeat_count(&anim, repeat_cnt);
|
||
lv_anim_set_repeat_delay(&anim, repeat_delay);
|
||
lv_anim_set_playback_time(&anim, playback_time);
|
||
lv_anim_set_playback_delay(&anim, playback_delay);
|
||
|
||
lv_anim_set_exec_cb(&anim, (lv_anim_exec_xcb_t)lv_obj_set_width);
|
||
lv_anim_set_values(&anim, lv_obj_get_width(var), width);
|
||
lv_anim_start(&anim);
|
||
lv_anim_set_exec_cb(&anim, (lv_anim_exec_xcb_t)lv_obj_set_height);
|
||
lv_anim_set_values(&anim, lv_obj_get_height(var), height);
|
||
lv_anim_set_start_cb(&anim, start_cb);
|
||
lv_anim_set_ready_cb(&anim, ready_cb);
|
||
lv_anim_set_deleted_cb(&anim, deleted_cb);
|
||
lv_anim_start(&anim);
|
||
}
|
||
|
||
void ui_img_zoom_animation(void * var, int32_t duration, int32_t delay, int32_t zoom, lv_anim_path_cb_t path_cb,
|
||
uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time, uint32_t playback_delay,
|
||
lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb)
|
||
{
|
||
lv_anim_t anim;
|
||
lv_anim_init(&anim);
|
||
lv_anim_set_var(&anim, var);
|
||
lv_anim_set_time(&anim, duration);
|
||
lv_anim_set_delay(&anim, delay);
|
||
lv_anim_set_exec_cb(&anim, (lv_anim_exec_xcb_t)lv_img_set_zoom);
|
||
lv_anim_set_values(&anim, lv_img_get_zoom(var), zoom);
|
||
lv_anim_set_path_cb(&anim, path_cb);
|
||
lv_anim_set_repeat_count(&anim, repeat_cnt);
|
||
lv_anim_set_repeat_delay(&anim, repeat_delay);
|
||
lv_anim_set_playback_time(&anim, playback_time);
|
||
lv_anim_set_playback_delay(&anim, playback_delay);
|
||
lv_anim_set_start_cb(&anim, start_cb);
|
||
lv_anim_set_ready_cb(&anim, ready_cb);
|
||
lv_anim_set_deleted_cb(&anim, deleted_cb);
|
||
lv_anim_start(&anim);
|
||
}
|
||
|
||
void ui_img_rotate_animation(void * var, int32_t duration, int32_t delay, lv_coord_t x, lv_coord_t y, int32_t rotate,
|
||
lv_anim_path_cb_t path_cb, uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time, uint32_t playback_delay,
|
||
lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb)
|
||
{
|
||
lv_anim_t anim;
|
||
lv_anim_init(&anim);
|
||
lv_anim_set_var(&anim, var);
|
||
lv_anim_set_time(&anim, duration);
|
||
lv_anim_set_delay(&anim, delay);
|
||
lv_img_set_pivot(var, x, y);
|
||
lv_anim_set_exec_cb(&anim, (lv_anim_exec_xcb_t)lv_img_set_angle);
|
||
lv_anim_set_values(&anim, 0, rotate*10);
|
||
lv_anim_set_path_cb(&anim, path_cb);
|
||
lv_anim_set_repeat_count(&anim, repeat_cnt);
|
||
lv_anim_set_repeat_delay(&anim, repeat_delay);
|
||
lv_anim_set_playback_time(&anim, playback_time);
|
||
lv_anim_set_playback_delay(&anim, playback_delay);
|
||
lv_anim_set_start_cb(&anim, start_cb);
|
||
lv_anim_set_ready_cb(&anim, ready_cb);
|
||
lv_anim_set_deleted_cb(&anim, deleted_cb);
|
||
lv_anim_start(&anim);
|
||
}
|
||
|
||
void init_scr_del_flag(lv_ui *ui)
|
||
{
|
||
ui->screen_main_del = true;
|
||
ui->setting_del = true;
|
||
ui->mianinfopage_del = true;
|
||
ui->langinfopage_del = true;
|
||
ui->displayinfopage_del = true;
|
||
ui->smartinfopage_del = true;
|
||
ui->firstinfopage_del = true;
|
||
ui->relayinfopage_del = true;
|
||
ui->scene_del = true;
|
||
ui->onoff_del = true;
|
||
ui->onoff1_del = true;
|
||
ui->onoff2_del = true;
|
||
ui->onoff3_del = true;
|
||
ui->onoff4_del = true;
|
||
ui->onofftime1_del = true;
|
||
ui->onofftime2_del = true;
|
||
ui->onofftime3_del = true;
|
||
ui->onofftime4_del = true;
|
||
ui->dimmer_del = true;
|
||
ui->dimmerinfo_del = true;
|
||
ui->curtain_del = true;
|
||
ui->device_del = true;
|
||
ui->dimmerinfo_del = true;
|
||
ui->curtaininfo_del = true;
|
||
ui->rollersinfo_del = true;
|
||
ui->screensaver_del = true;
|
||
ui->aircontrol_del = true;
|
||
ui->projectorcontrol_del = true;
|
||
}
|
||
|
||
void setup_ui(lv_ui *ui)
|
||
{
|
||
init_scr_del_flag(ui);
|
||
setup_scr_screen_main(ui);
|
||
lv_scr_load(ui->screen_main);
|
||
}
|
||
rt_thread_t monitor_thread = RT_NULL;
|
||
void print_custom_memory_info(void)
|
||
{
|
||
rt_size_t total,used,max_used;
|
||
rt_memory_info(&total,&used,&max_used); // 打印线程信息
|
||
rt_kprintf("Total memory: %d bytes\n", total);
|
||
rt_kprintf("Used memory: %d bytes\n", used);
|
||
rt_kprintf("max Used memory: %d bytes\n", max_used);
|
||
|
||
}
|
||
extern long list_thread(void);
|
||
void monitorTask(void *pvParameter)
|
||
{
|
||
// lv_mem_monitor_t mon;
|
||
|
||
while(1)
|
||
{
|
||
list_thread();
|
||
print_custom_memory_info();
|
||
rt_thread_mdelay(5000);//
|
||
//print_custom_memory_info();
|
||
|
||
}
|
||
}
|
||
#ifdef CONFIG_STARTUP_ANIMATION
|
||
lv_obj_t *startmain_container;
|
||
lv_anim_t startanim;
|
||
// bar对象动画回调函数
|
||
static void obj_bar_anim_exec_callback(void * bar, int32_t value)
|
||
{
|
||
if (bar != NULL)
|
||
{
|
||
lv_bar_set_value((lv_obj_t *)bar, value, LV_ANIM_ON); // 设置进度条对象的值
|
||
}
|
||
}
|
||
//Call the callback function at the end
|
||
static void obj_bar_anim_end_callback(lv_anim_t *anim)
|
||
{
|
||
printf("anim_end\r\n");
|
||
//删除动画 删除启动页
|
||
|
||
if(startmain_container)
|
||
{
|
||
lv_obj_del(startmain_container);
|
||
startmain_container=NULL;
|
||
}
|
||
|
||
setup_ui(&guider_ui);
|
||
events_init(&guider_ui);
|
||
custom_init(&guider_ui);//有custom_task任务调用初始化
|
||
|
||
zigbee_uart_int();
|
||
esp32Timeinit();
|
||
}
|
||
|
||
static void start_log_aimg_application(void)
|
||
{
|
||
lv_obj_t * startmain_container = lv_obj_create(lv_scr_act());
|
||
if ( startmain_container == NULL)
|
||
{
|
||
printf("[%s:%d] create startmain_container failed\n", __FUNCTION__, __LINE__);
|
||
return;
|
||
}
|
||
|
||
lv_obj_set_style_pad_all( startmain_container, 0, 0);
|
||
lv_obj_set_style_border_width( startmain_container, 0, 0);//边框宽
|
||
lv_obj_set_style_radius( startmain_container, 0, 0);//圆角大小
|
||
lv_obj_set_size( startmain_container, LV_PCT(100), LV_PCT(100)); // 设置尺寸
|
||
lv_obj_set_style_bg_opa( startmain_container, LV_OPA_100, 0); // 设置背景不透明度
|
||
lv_obj_set_style_bg_color( startmain_container, lv_color_hex(0), 0); // 设置背景颜色
|
||
lv_obj_center( startmain_container);
|
||
#if defined(CONFIG_CUSTOM_GOLDEN)//金安启动logo
|
||
#elif defined(CONFIG_CUSTOM_MOHAMMAD_SOHAIB)//
|
||
//Write codes screen_img_1
|
||
lv_obj_t *startlogo_img_1 = lv_img_create(startmain_container);
|
||
lv_obj_set_size(startlogo_img_1, 279, 75);
|
||
lv_obj_center( startlogo_img_1);
|
||
lv_img_set_src(startlogo_img_1, LVGL_PATH(mohammad_startlogo.png));
|
||
//Write style for startlogo_img_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
|
||
lv_obj_set_style_img_opa(startlogo_img_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
|
||
|
||
// static lv_style_t style_bg;
|
||
// lv_style_init(&style_bg);
|
||
// lv_style_reset(&style_bg);
|
||
// lv_style_set_border_color(&style_bg, lv_color_hex(0xFFFFFF)); // 设置边框颜色
|
||
// lv_style_set_border_width(&style_bg, 2); // 设置边框宽度
|
||
// lv_style_set_pad_all(&style_bg, 6);
|
||
// lv_style_set_radius(&style_bg, 6); // 设置圆角弧度
|
||
|
||
// static lv_style_t style_indic;
|
||
// lv_style_reset(&style_indic);
|
||
// lv_style_init(&style_indic);
|
||
// lv_style_set_bg_opa(&style_indic, LV_OPA_COVER); // 设置背景不透明度
|
||
// lv_style_set_bg_color(&style_indic, lv_color_hex(0xFFFFFF));
|
||
// lv_style_set_radius(&style_indic, 3);
|
||
static lv_style_t style_bg;
|
||
lv_style_init(&style_bg);
|
||
lv_style_reset(&style_bg);
|
||
lv_style_set_border_color(&style_bg, lv_color_hex(0x000000)); // 设置边框颜色
|
||
lv_style_set_border_width(&style_bg, 0); // 设置边框宽度
|
||
lv_style_set_pad_all(&style_bg, 6);
|
||
lv_style_set_radius(&style_bg, 6); // 设置圆角弧度
|
||
|
||
static lv_style_t style_indic;
|
||
lv_style_reset(&style_indic);
|
||
lv_style_init(&style_indic);
|
||
lv_style_set_bg_opa(&style_indic, LV_OPA_COVER); // 设置背景不透明度
|
||
lv_style_set_bg_color(&style_indic, lv_color_hex(0x000000));
|
||
lv_style_set_radius(&style_indic, 3);
|
||
lv_obj_t * obj_bar = lv_bar_create( startmain_container);
|
||
if (obj_bar != NULL)
|
||
{
|
||
lv_obj_remove_style_all(obj_bar); // 清除所有样式
|
||
lv_obj_add_style(obj_bar, &style_bg, 0);
|
||
lv_obj_add_style(obj_bar, &style_indic, LV_PART_INDICATOR);
|
||
lv_obj_set_size(obj_bar, 400, 20);
|
||
lv_obj_align(obj_bar, LV_ALIGN_CENTER, 0,200);
|
||
|
||
lv_anim_init(&startanim); // 初始化动画
|
||
lv_anim_set_exec_cb(&startanim, obj_bar_anim_exec_callback); // 添加回调函数
|
||
startanim.ready_cb=&obj_bar_anim_end_callback;//动画效果结束后的回调函数,可以根据需求自行填写,lvgl内部其余组件一般是用这个回调做一些收尾工作,比如释放内存
|
||
lv_anim_set_time(&startanim, 2000); // 设置动画时长
|
||
lv_anim_set_var(&startanim, obj_bar); // 动画绑定对象
|
||
lv_anim_set_values(&startanim, 0, 100); // 设置开始值和结束值
|
||
lv_anim_set_repeat_count(&startanim, 1); // 重复次数,默认值为1 LV_ANIM_REPEAT_INFINIT用于无限重复
|
||
lv_anim_start(&startanim); // 应用动画效果
|
||
}
|
||
#else
|
||
#endif
|
||
}
|
||
#endif
|
||
void gui_guider_init(void)
|
||
{
|
||
rt_kprintf("nvs_eepom_init\r\n");
|
||
#if 1
|
||
ui_font_load();//加载ttf字库及字号
|
||
|
||
// //Write codes dimmer_group1_templabel
|
||
// lv_obj_t *dimmer_group1_templabel = lv_label_create(lv_scr_act());
|
||
// //lv_obj_set_pos(dimmer_group1_templabel, 0, 38);
|
||
// lv_obj_set_size(dimmer_group1_templabel, 480, 50);
|
||
// lv_obj_set_align(dimmer_group1_templabel, LV_ALIGN_CENTER);
|
||
|
||
// lv_label_set_text(dimmer_group1_templabel, "гджзлмнр椭粟棘酣酥硝硫颊雳翘凿棠晰鼎喳遏晾畴跋跛蛔蜒");
|
||
|
||
// lv_obj_set_style_text_color(dimmer_group1_templabel, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
// lv_obj_set_style_text_font(dimmer_group1_templabel, &lv_font_DroidSansFallback_14, LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
|
||
nvs_eepom_init();
|
||
// rt_kprintf("gui_guider_init\r\n");
|
||
//Create a GUI-Guider app
|
||
memset(&guider_ui,0,sizeof(guider_ui));//统一置0
|
||
|
||
#if defined(CONFIG_STARTUP_ANIMATION)
|
||
start_log_aimg_application();
|
||
#else
|
||
setup_ui(&guider_ui);
|
||
events_init(&guider_ui);
|
||
custom_init(&guider_ui);//有custom_task任务调用初始化
|
||
|
||
zigbee_uart_int();
|
||
esp32Timeinit();
|
||
#endif
|
||
|
||
////speech_uart_int();
|
||
//上电设置亮度
|
||
disp_driver_backlight_set(GET_nvs_Sys_Info_backlight());
|
||
LOG_I("backlight:0x%d",GET_nvs_Sys_Info_backlight());
|
||
|
||
//创建任务 监控内存
|
||
monitor_thread = rt_thread_create("monitor", //名称
|
||
monitorTask, //线程代码
|
||
RT_NULL, //参数
|
||
4096, //栈大小
|
||
11, //优先级
|
||
10); //时间片
|
||
if (monitor_thread != RT_NULL)
|
||
{
|
||
rt_thread_startup(monitor_thread); //线程进入就绪态
|
||
}
|
||
else
|
||
{
|
||
LOG_I("monitor_thread create failure\n");
|
||
}
|
||
#else
|
||
// #define IMG_SWICH_test "L:/rodata/lvgl_data/test1.png"
|
||
|
||
lv_obj_t *testimg_obj=lv_img_create(lv_scr_act());
|
||
lv_obj_set_size(testimg_obj, 386, 128);
|
||
lv_obj_center(testimg_obj);
|
||
lv_img_set_src(testimg_obj, LVGL_PATH(dimmer_color_temp_info.png));
|
||
#endif
|
||
}
|
||
|
||
//亮度 0~100
|
||
void disp_driver_backlight_set(int brightness)
|
||
{
|
||
//turn on the LcD backlight
|
||
#if defined(KERNEL_RTTHREAD) && defined(AIC_PWM_BACKLIGHT_CHANNEL)
|
||
struct rt_device_pwm *pwm_dev;
|
||
|
||
pwm_dev = (struct rt_device_pwm *)rt_device_find("pwm");
|
||
/* pwm frequency: 1KHz = 1000000ns */
|
||
rt_pwm_set(pwm_dev, AIC_PWM_BACKLIGHT_CHANNEL,1000000, 10000 * brightness);
|
||
rt_pwm_enable(pwm_dev, AIC_PWM_BACKLIGHT_CHANNEL);
|
||
#endif
|
||
}
|