From a1c20889f122535b648176000e689b47096f7ea9 Mon Sep 17 00:00:00 2001 From: ShallowGreen123 <67771110+ShallowGreen123@users.noreply.github.com> Date: Tue, 21 Feb 2023 11:52:43 +0800 Subject: [PATCH] Add explanatory document --- .../data/Pasted image 20230221105527.png | Bin 0 -> 5789 bytes .../data/Pasted image 20230221112554.png | Bin 0 -> 19983 bytes .../lvgl_mydemo/data/Screen Management.md | 168 ++++++++++++++++++ 3 files changed, 168 insertions(+) create mode 100644 LVGL.Simulator/lvgl_mydemo/data/Pasted image 20230221105527.png create mode 100644 LVGL.Simulator/lvgl_mydemo/data/Pasted image 20230221112554.png create mode 100644 LVGL.Simulator/lvgl_mydemo/data/Screen Management.md diff --git a/LVGL.Simulator/lvgl_mydemo/data/Pasted image 20230221105527.png b/LVGL.Simulator/lvgl_mydemo/data/Pasted image 20230221105527.png new file mode 100644 index 0000000000000000000000000000000000000000..a51ed3174e393456485af2f58e510755f2f601ab GIT binary patch literal 5789 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 V7*d8az;=d6ipz=p5PA3YKLBW&C(Qr= literal 0 HcmV?d00001 diff --git a/LVGL.Simulator/lvgl_mydemo/data/Pasted image 20230221112554.png b/LVGL.Simulator/lvgl_mydemo/data/Pasted image 20230221112554.png new file mode 100644 index 0000000000000000000000000000000000000000..787c3ea7e559c6027096f4df944b11991927dd76 GIT binary patch literal 19983 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 j7)8m(Cix^ literal 0 HcmV?d00001 diff --git a/LVGL.Simulator/lvgl_mydemo/data/Screen Management.md b/LVGL.Simulator/lvgl_mydemo/data/Screen Management.md new file mode 100644 index 0000000..f7f0b41 --- /dev/null +++ b/LVGL.Simulator/lvgl_mydemo/data/Screen Management.md @@ -0,0 +1,168 @@ + +# 1、简介 +LVGL 虽然提供了 30+ 的组件,和上百种的样式,还支持之定义组件,但是没有界面切换的接口。在用户与屏幕交互的过程中,用户与屏幕的交互并不总是在同一位置开始,而是经常以不确定的方式开始。例如,如果您从主屏幕打开电子邮件应用,可能会看到电子邮件列表,如果您通过社交媒体应用启动电子邮件应用,则可能会直接进入电子邮件应用的邮件撰写界面。 + +例如如下图,当前屏幕在 scr4,用户返回是要做一个判断到底是返回到 scr2呢,还是返回到 scr3 呢,当界面关系比较复杂的时候,这样的判断就显得很鸡肋了。 + + ![[Pasted image 20230221105527.png]] + +假设从 scr1 -> scr3 -> scr4 到达当前屏幕 scr4,当想返回 scr1 时,是按照 scr4 -> scr3 -> scr1 的顺序依次退出,直到回到 scr1。这样先进后出的特性与栈的特性非常相似,所以可以使用栈结构来实现界面管理的功能。 + + +# 2、实现 +运用栈的原理,定义界面生命周期,定义界面处理结构体 handle。 + +## 2.1 界面的生命周期 +单个界面 ==**scr_handle**== 的定义如下,创建界面,进入界面,更新界面布局,退出界面,销毁界面。 +~~~c +struct scr_handle { +    uint32_t ScrId; +    lv_obj_t *(*ScrCreate)(lv_obj_t *parent); +    void (*ScrEnter)(void); +    void (*ScrExit)(void); +    void (*ScrDestroy)(void); +} +~~~ + +~~~ +create -> entry -> layout -> exit -> destory + ^ | + |___________________| +~~~ + +==**需要注意的是,create 和 destroy、entry 和 exit 为对称结构,也就是说,再create申请的资源需要在 destroy 中释放,同样的在 entry 中申请的资源需要在 exit 中释放。**== + +| interface | Description | +| ----------- | ----------- | +| Create | 界面 obj 的创建、各种组件的创建、定时器创建 | +| Entry | 为组件添加事件,开启定时器,注册监听器 | +| Layout | 对界面进行布局,界面处于活跃状态 | +| Exit | 屏蔽组件事件,暂停定时器,注销监听器 | +| Destroy | 销毁组件、销毁定时器、销毁界面 | + +## 2.2 界面状态 +单个界面状态 ==**scr_state**== 的定义如下,空闲态,销毁态,创建态,非活跃态,活跃态。 + +| State | Description | +| ----------- | ----------- | +| idle | Not in use | +| destory | Not active and having been destroyed | +| create | Created | +| inactive | Not active | +| activebg | Active but at the background | +| active | Active and at the foreground | + +## 2.3 界面 list 和 stack + +==**Scr_List**== 是一个全局变量,每添加一个界面需要在 Scr_List 注册一下;==**Scr_Stack**== 记录在界面的跳转关系,与简介上面的例子一样,当想回到 scr1,只需要依次退出 scr4、scr3 就可以回到 scr1了。这样的好处就是:当界面很多时,也能过维持这样先进后出的关系。 + +![[Pasted image 20230221112554.png]] +==**Scr_Stack**== 的定义如下 +~~~c +struct Scr_Stack{ + struct scr_handle scr_handel; + lv_obj_t *Obj; + uint32_t state; + struct Scr_Stack *pnext; +} +~~~ + +# 3、API + +~~~c +/* config */ +#define scr_switch_time 500 /* 动画持续时间 */ +#define scr_switch_anim_delay 0 /* 动画播放前的延时 */ +#define scr_switch_anim LV_SCR_LOAD_ANIM_MOVE_LEFT /* 界面切换动画 */ + +/* function */ +void ScrMgeInit(void);/* 初始化Screen List 和Screen Stack */ +int ScrMgeSwitchTo(uint32_t id, bool anim);/* 切换当前界面到第 id 个界面上*/ +int ScrMgePush(uint32_t id, bool anim); /* 向栈顶插入一个界面 */ +int ScrMgePop(bool anim); /* 弹出栈顶界面 */ +int ScrMgePopNScr(uint32_t n, bool anim); /* 弹出n个界面 */ +int ScrMgePopToRoot(bool anim); /* 弹出到栈底 */ +~~~ + +# 4、例子 + +下面例子列举了两个界面,scr1 和 scr2 界面应按如下方式定义;下面例子的功能为,scr1为主界面,点击界面上的按键,进入 scr2 界面,然后再 scr2 点击按键退回到 scr1。 +~~~c +/*** screen1.c ***/ +static obj_event_cb2(lv_event_t *e){ + if(event == btn){ + ScrMgePush(ID_SCREEN2, true); // 跳转到 Screen2 + } +} + +lv_obj_t *CreateScr1(lv_obj_t *parent){ + lv_obj_t *Obj = lv_obj_craete(parent); + /* User code */ + lv_obj_t *btn = lv_btn_create(Obj); + ... + /* User code end */ + return Obj; +} +static void EntryScr1(void){/* User code */} +static void LayoutScr1(void){/* User code */} +static void ExitScr1(void){/* User code */} +static void DestoryScr1(void){/* User code */} + +const scr_handle scr1_item = { +    .ScrId      = ID_SCREEN1, +    .ScrCreate  = CreateScr1, +    .ScrEnter   = EntryScr1, +    .ScrExit    = LayoutScr1, +    .ScrDestroy = DestoryScr1, +}; + +/*** screen2.c ***/ +static obj_event_cb2(lv_event_t *e){ + if(event == btn){ + ScrMgePop(true); // 回退到 Screen1 + } +} + +lv_obj_t *CreateScr2(lv_obj_t *parent){ + lv_obj_t *Obj = lv_obj_craete(parent); + /* User code */ + lv_obj_t *btn = lv_btn_create(Obj); + ... + /* User code end */ + return Obj; +} +static void EntryScr2(void){/* User code */} +static void LayoutScr2(void){/* User code */} +static void ExitScr2(void){/* User code */} +static void DestoryScr2(void){/* User code */} + +const scr_handle scr2_item = { +    .ScrId      = ID_SCREEN2, +    .ScrCreate  = CreateScr2, +    .ScrEnter   = EntryScr2, +    .ScrExit    = LayoutScr2, +    .ScrDestroy = DestoryScr2, +}; + +/*** scr_mge.c ***/ +static const scr_list_item *Scr_List= { +       &scr1_item, +       &scr2_item, +}; + +/*** scr_mge.h ***/ +enum{ + ID_SCREEN1 = 1, + ID_SCREEN2, +} +extern const scr_handle scr1_item; +extern const scr_handle scr2_item; + +/*** main.c ***/ +int main(){ + ScrMgeInit(); + ScrMgeSwitchTo(ID_SCREEN1, true); /* 第一调用该函数为设置主界面, */ + /* 因为 Scr_Stack 至少要有一个元素 */ +} +~~~ +