硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3289|回复: 29
收起左侧

[ThreadX全家桶] GUIX学习笔记1 - 滑屏操作

  [复制链接]

24

主题

119

回帖

191

积分

初级会员

积分
191
发表于 2022-1-4 09:41:31 | 显示全部楼层 |阅读模式
起初移植GUIX缺乏动力。LVGL明摆着很热,NXP还提供了一套GUI GUIDER软件,上手很快。
后来发现并不是那么回事。测试过程中发现了一些问题与瓶颈,比如屏幕偶尔闪烁,CPU占用率高,JPG解码效率低下等。线程是否安全也是需要考虑的。
移植完threadx,netxduo,usbx,filex之后,全家桶就差guix了。这段时间测试一下GUIX开发的难度系数,并跟LVGL做个横向对比做到心中有数。毕竟threadx全家桶的稳定性是不需要怀疑的。

LVGL里面有现成的滑屏操作函数。可以设置滑动时间和延迟时间。测试过背景充满图片的滑屏操作,滑屏过程中图片最后几行会闪烁,且CPU占用率最高可达到80%以上(RT1052),
说明其效率不是很高,也或许是这种操作对MCU本就是很吃力的事。

现在在guix studio平台下做类似测试:两张图片,点击按钮来回滑屏。

a1

a1
                          

a2

a2


点击Screen Flow设置按钮响应的动画:

a4

a4
                          
滑屏操作需要两个动画事件,第1个事件:当前画面滑出,第2个事件:下一个画面滑入。一般是前进左滑,后退右滑。

配置很简单,烧入评估板测试。无论是快滑还是慢滑,显示均非常流畅也很稳定,感觉上比LVGL处理得好。

待解决的问题:
目前测试用的是工程内图片资源,理想情况下希望开始滑屏前能够预先读取jpg文件,解码后再提交给guix(如果guix自带的jpg解码够快那自然更好)。
希望guix已经考虑到了这一点,能够留个port接口可供用户自定义解码驱动。这是下一步学习需要留意的事。




a3

a3
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2022-1-5 10:26:59 | 显示全部楼层
你这样测基本是安慰心理,触摸滑动图片跟点动动画渲染完全不一样,再加上你加了动画过度,看起来才觉得好像是流畅,还有一点lvgl,你底层优化没做好,用1052,这种外挂内存,很明显测不了内部内存对比,而且lvgl在内部内存快和稳多很多。。然后再说一点,如果没硬解jpg就别渲染啥图片,白瞎占什么CPU占有率,还有目前mcu滑动 我是没看到不卡的,再说guix这东西用过一次,只有一个地方能用,就是窗口连接关系那个配置,其他都乱七八糟的,还有一个你说他安全,我只能说旧模块可能安全,新写出来的那些,bug也有的,lvgl的优势就是控件多,够好看,目前没看到一个gui能打得过的,touchgfx也不行,底层优化是个难点
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-1-5 10:33:38 | 显示全部楼层
cz123123 发表于 2022-1-5 10:26
你这样测基本是安慰心理,触摸滑动图片跟点动动画渲染完全不一样,再加上你加了动画过度,看起来才觉得好像 ...

MCU滑动早就不卡了,GUIX效果展示:



然后就是TouchGFX,大部分常用的驱动优化已经非常不错了,STM32G0刷新都嗷嗷的流畅。




回复

使用道具 举报

19

主题

129

回帖

186

积分

初级会员

积分
186
QQ
发表于 2022-1-5 12:52:57 | 显示全部楼层
cz123123 发表于 2022-1-5 10:26
你这样测基本是安慰心理,触摸滑动图片跟点动动画渲染完全不一样,再加上你加了动画过度,看起来才觉得好像 ...

有同感,感觉LVGL以外的其他UI极其不灵活,LVGL可以完全不需要任何UI设计器




回复

使用道具 举报

24

主题

119

回帖

191

积分

初级会员

积分
191
 楼主| 发表于 2022-1-5 12:56:20 | 显示全部楼层
第二天就放弃guix了。
不好整虽然知道回调方式灵活,紧耦合threadx操作系统。
但测试了一下jpg,png解码,还是决定放弃了,回归lvgl。
至于解码速度慢的问题,lvgl主要是处于兼容性考虑属于逐行解码。自己开了个独立的解码线程,分担一部分lvgl负荷,效果还不错虽然比不得硬件解码。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-1-5 13:36:45 | 显示全部楼层
lovelessing... 发表于 2022-1-5 12:52
有同感,感觉LVGL以外的其他UI极其不灵活,LVGL可以完全不需要任何UI设计器

弄个单片机上的跟我这个PK
100帧波形刷新速度800*480分辨率,丝滑顺畅滑动效果展示,欢迎在线PK:






回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-1-5 13:38:49 | 显示全部楼层
yxydoctor 发表于 2022-1-5 12:56
第二天就放弃guix了。
不好整虽然知道回调方式灵活,紧耦合threadx操作系统。
但测试了一下jpg,png解码 ...

玩起来了就好了,效果杠杠的。
回复

使用道具 举报

2

主题

180

回帖

186

积分

初级会员

积分
186
发表于 2022-1-5 13:45:31 | 显示全部楼层
eric2013 发表于 2022-1-5 13:36
弄个单片机上的跟我这个PK
100帧波形刷新速度,在线PK:


回复

使用道具 举报

2

主题

180

回帖

186

积分

初级会员

积分
186
发表于 2022-1-5 13:46:09 | 显示全部楼层
eric2013 发表于 2022-1-5 13:36
弄个单片机上的跟我这个PK
100帧波形刷新速度,在线PK:

https://www.youtube.com/results?search_query=lvgl 不是一个级别的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-1-5 13:52:34 | 显示全部楼层

这种的跟我三楼做的G0展示一个级别吧(仅说界面展示),跟我那个比较差距太大了。
我那个是800*480分辨率的100帧哦,完全都不是一档的。

再来,PC和显示屏同时刷新的技术流畅感,单片机刷的哦,欢迎继续PK

显示屏和远程桌面访问同时运行的极致流畅感





回复

使用道具 举报

2

主题

180

回帖

186

积分

初级会员

积分
186
发表于 2022-1-5 13:59:45 | 显示全部楼层
eric2013 发表于 2022-1-5 13:52
这种的跟我三楼做的G0展示一个级别吧(仅说界面展示),跟我那个比较差距太大了。
我那个是800*480分辨 ...

做出来的东西效果不是一个level的,追求死快随便上pc/linux成本还低 效果好几十倍,低资源好效果lvgl 随便玩,GUIX那滑动那动画又不是没移植过,lvgl加东西还方便提pr效果好随便过 TouchGFX鬼用stm32现在那成本都双核a7了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-1-5 14:03:02 | 显示全部楼层
qq57379550 发表于 2022-1-5 13:59
做出来的东西效果不是一个level的,追求死快随便上pc/linux成本还低 效果好几十倍,低资源好效果l ...

跑题了,欢迎继续PK界面流畅度,我们就在单片机平台上PK界面流畅度。这样这个讨论话题才能更新的讨论下去
回复

使用道具 举报

19

主题

129

回帖

186

积分

初级会员

积分
186
QQ
发表于 2022-1-5 16:55:36 | 显示全部楼层
eric2013 发表于 2022-1-5 14:03
跑题了,欢迎继续PK界面流畅度,我们就在单片机平台上PK界面流畅度。这样这个讨论话题才能更新的讨论下去 ...

只刷波形的话速度固然快,但是不用GUI更快(订制优化刷),LVGL可以以极小的内存运行起来大页面,哪怕没有SDRAM,不是RGB,而且极其灵活,灵活到根本不需要设计器,完全不需要
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-1-5 17:07:49 | 显示全部楼层
lovelessing... 发表于 2022-1-5 16:55
只刷波形的话速度固然快,但是不用GUI更快(订制优化刷),LVGL可以以极小的内存运行起来大页面,哪怕没 ...

裸机很麻烦,我早期不会GUI的时候就是玩的裸机方案,但是功能复杂后玩起来很麻烦,大家可以尝试用裸机实现下我10楼的效果。

非RGB接口,没有SDRAM这种的,基本都是外置控制器的,像RAxxx,ilixxx等系列,所以说速度完全不是问题,内存需求极小,跟裸机没区别,就像三楼贴的那个G0就是,效果完美。

本来单片机UI的设计就不要设计器,10年前,UCGUI时代不都是这么过来的,就是纯刷API,这个跟灵活性没关系,只是这两年卷的比较厉害,没有强劲的GUIBuilder不好混了(像Qt for MCU,都逃不过让各种组件都支持单片机配置)。就像ST的STM32CubeMX图形化外设配置,现在哪家还没有个图形化配置功能。都在搞图形化,一键生成。

个人的一些看法,欢迎交流
回复

使用道具 举报

24

主题

119

回帖

191

积分

初级会员

积分
191
 楼主| 发表于 2022-1-5 18:08:13 来自手机 | 显示全部楼层
guix资料太匮乏了。其它的都是小问题。常用的列表框,组合框,表格,进度条这些,似乎是官方都开放跟用户自己做细化了,其意思也明白,但咋做呢?慢慢摸索
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-1-6 08:35:58 | 显示全部楼层
yxydoctor 发表于 2022-1-5 18:08
guix资料太匮乏了。其它的都是小问题。常用的列表框,组合框,表格,进度条这些,似乎是官方都开放跟用户自 ...

所以我现在开始逐步推出结合硬件的各种应用。
回复

使用道具 举报

7

主题

15

回帖

36

积分

新手上路

积分
36
发表于 2022-1-6 11:51:29 | 显示全部楼层
yxydoctor 发表于 2022-1-5 12:56
第二天就放弃guix了。
不好整虽然知道回调方式灵活,紧耦合threadx操作系统。
但测试了一下jpg,png解码 ...

请问,LVGL从lwip移植到threadx需要修改哪些地方
回复

使用道具 举报

76

主题

208

回帖

436

积分

高级会员

积分
436
发表于 2022-1-7 10:12:06 | 显示全部楼层
大佬们继续,我还在观望,还在用emwin v5.4的,
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2022-1-10 15:20:43 | 显示全部楼层
eric2013 发表于 2022-1-5 10:33
MCU滑动早就不卡了,GUIX效果展示:

我说的滑动是整屏划,,跟手机那种。。touchgfx我觉得他底层优化不错,,2d加速用的最好,在这几个GUI里面
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2022-1-10 15:24:41 | 显示全部楼层
yxydoctor 发表于 2022-1-5 18:08
guix资料太匮乏了。其它的都是小问题。常用的列表框,组合框,表格,进度条这些,似乎是官方都开放跟用户自 ...

硬汉哥用的是emwin刷的,,不差,就是丑了点,也算折中,需要自己重绘各类控件,在这几个GUI里面,emwin是除了lvgl控件最多,控件可重绘,优化不差的一个,缺点也就是丑
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-1-10 15:32:06 | 显示全部楼层
cz123123 发表于 2022-1-10 15:24
硬汉哥用的是emwin刷的,,不差,就是丑了点,也算折中,需要自己重绘各类控件,在这几个GUI里面,emwin ...

也不卡啊,H7系列刷整屏早就流畅的起飞了,现在的单片机强的一批,此贴我做的整的整屏切换例子。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

对应例子800*480滑动:V7-2028_Window Sliding(only 800x480)

操作手感和Pad没区别。带背景图:

QQ截图20220110153518.png

QQ截图20220110153346.png



回复

使用道具 举报

24

主题

119

回帖

191

积分

初级会员

积分
191
 楼主| 发表于 2022-1-10 16:21:26 来自手机 | 显示全部楼层
guix的窗体可以自由设置尺寸,配合模板,理论上怎么滑窗都能实现。反正是在gui guider下面实现不了,而lvgl过于细化的gui细节设计其实会耽误很多事
回复

使用道具 举报

2

主题

9

回帖

15

积分

新手上路

积分
15
发表于 2022-1-12 11:58:40 | 显示全部楼层
硬汉哥,请教个问题啊,

       我想用一个可以前后滑动的触控滑条来做屏幕之间的切换,但是一直没找到这个滑动信号要怎么和UI关联起来,
例程里都是窗口里面的某个控件被点击,产生事件来触发窗口切换。

怎样才能把触控信号给到UI响应呢?
回复

使用道具 举报

2

主题

9

回帖

15

积分

新手上路

积分
15
发表于 2022-1-12 15:22:50 | 显示全部楼层
flyflyfly001 发表于 2022-1-12 11:58
硬汉哥,请教个问题啊,

       我想用一个可以前后滑动的触控滑条来做屏幕之间的切换,但是一直没找到 ...

知道了,通过 gx_system_event_send 函数来发送用户event
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2022-7-3 15:03:41 | 显示全部楼层
eric2013 发表于 2022-1-5 13:36
弄个单片机上的跟我这个PK
100帧波形刷新速度800*480分辨率,丝滑顺畅滑动效果展示,欢迎在线PK:

...

牛逼,能不能开个专题做个技术解析啊
回复

使用道具 举报

609

主题

3050

回帖

4897

积分

至尊会员

积分
4897
发表于 2022-7-5 09:13:07 | 显示全部楼层
eric2013 发表于 2022-1-10 15:32
也不卡啊,H7系列刷整屏早就流畅的起飞了,现在的单片机强的一批,此贴我做的整的整屏切换例子。
https: ...

貌似 guix ,如果不使用 guix 计算器的话,进行界面切换 还是非常的麻烦的,除此之外貌似其他的都还可以,

界面切换 在不使用计算器配置的情况下,这块我现在好久都没有折腾了,貌似 guix 有提供相关的例程,但是看起来比较复杂,再加上目前也木有那么的时间与精力捣鼓了,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-7-6 10:02:06 | 显示全部楼层
hpdell 发表于 2022-7-5 09:13
貌似 guix ,如果不使用 guix 计算器的话,进行界面切换 还是非常的麻烦的,除此之外貌似其他的都还可以 ...

你说的GUIX 计算器是指的GUIX Studio吧。很多东西还是在GUIX Studio上设置更方便。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-7-6 10:02:23 | 显示全部楼层
FUJIFU 发表于 2022-7-3 15:03
牛逼,能不能开个专题做个技术解析啊

有专题,等后面三代示波器发布了。
回复

使用道具 举报

4

主题

61

回帖

73

积分

初级会员

积分
73
QQ
发表于 2022-7-8 13:55:59 | 显示全部楼层
GUIX用了几个月确实有BUG(动画太多的时候会出现,折腾了好几天也没找到问题初步认为是BUG)
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-1-15 18:32:33 | 显示全部楼层
本帖最后由 xuxin1967 于 2024-1-15 20:23 编辑
eric2013 发表于 2022-1-10 15:32
也不卡啊,H7系列刷整屏早就流畅的起飞了,现在的单片机强的一批,此贴我做的整的整屏切换例子。
https: ...

我移植这个 demo,送了触摸事件, UI 无法响应滑动,怎么排查?

slide_win_event_process 事件正常进的。如果只加载第一个窗口,手动加一个按键,也可以正常影响按键事件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 04:50 , Processed in 0.315151 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表