HMI-66-【MeterDisplay for Arm Linux】液晶仪表Arm Linxu迁移
文章目录
- HMI-66-【MeterDisplay for Arm Linux】液晶仪表Arm Linxu迁移
- 摘要
- 修改Pro文件
- 设置CPU亲缘性
- 后面的解决思路
- 1 只用大量属性动画,替换部分效果,现在使用了定时器
- 2 使用新的框架,就是那个QGraphics
- ◕目前项目进展
- Linux 实机测试
- ▶第三阶段 液晶仪表节能模式
- ▶第二阶段 液晶仪表运动模式
- ▶第一阶段 HUD和液晶仪表舒适模式
- 重大说明
- ©说明:
关键字:
MeterDisplay
、Linux
、Debian
、Qt
、Arm
摘要
先说结论,虽然移植成功,但是显示效果不理想,可以直接看和面的视频。先说说做了什么吧。
修改Pro文件
因为之前我的Pro文件是自己手撸的,所以好多Qt默认的都没有写,开始在Win平台下是没有问题的,但是在Linux 下,确实可以编译,但是不可以运行,这明显就是链接不到库文件,所以应该是程序默认的路径没有搞好,于是在Linx下新建了一个工程,对比一下,需要在Pro文件中加入以下代码
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
这样可以保证程序可以编译,并且在板子上运行了。但是呢,很卡。
设置CPU亲缘性
根据之前的经验,可以尝试手动控制程序中每个线程使用对应的CPU内核,所以在这个项目中,任然直接尝试手动控制内核。代码如下,
注意,这个代码智能在Linux下编译通过,每个平台设置内核绑定的接口不一样,所以要对应平台。
cpu_set_t mask;CPU_ZERO(&mask);CPU_SET(5,&mask);if(sched_setaffinity(0,sizeof(cpu_set_t),&mask) < 0)qDebug() << "False:" << "sched_setaffinity(0,sizeof(cpu_set_t),&mask)";
完成了以上尝试,发现还是很卡,真的很卡,可以看视频,暂时呢,无解了。
后面的解决思路
因为我的代码里面会有大量的painter函数,这会浪费大量CPU资源,所以我会尝试一下两个路子。
1 只用大量属性动画,替换部分效果,现在使用了定时器
属性动画用的基本很好,属于边写边摸索,所以进度不能保证,下一篇啥时候出来,完全看天意。
2 使用新的框架,就是那个QGraphics
据说这个可是使用GPU,从而解放CPU性能,这个也是,基本没有啥大规模使用过,也是得边摸索边写。结果看天意。
◕目前项目进展
Linux 实机测试
基于Qt的汽车仪表-Linux迁移最近进展
▶第三阶段 液晶仪表节能模式
✈B站链接:https://www.bilibili.com/video/BV1WS4y137y1/
▶第二阶段 液晶仪表运动模式
✈B站链接:https://www.bilibili.com/video/BV1aq4y1t7H7/
▶第一阶段 HUD和液晶仪表舒适模式
✈B站链接:https://www.bilibili.com/video/BV1qJ411X7Gs/
重大说明
这个项目开始的日期是在19年吧,那时的自己年少无知,也没有实际的硬件测试,在代码好多方面,都没有一个明确的构架,以及在开发过程中,尽管尽量写了笔记,但是还是不能很好的描述具体的工作。
今天做了实机移植测试,但是效果并不理想,所以目前这个项目暂停更新,感兴趣的小伙伴,可以尝试使用属性动画和QGraphics来修改测试一下。不过工作量应该不会小,所以对于我来说,这个项目的目的已经达到,后面可能会有其他相关的内容输出到这个项目专栏里面,但是界面相关的代码应该不会再更新了。
不过最新的HMI项目已经在考虑了,到时会全面拥抱QML。敬请期待吧。
©说明:
☑ 本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计、吉利汽车HMI项目。
☑ 多媒体部分是来自吉利博瑞2017旗舰版界面所有权和解释权都归吉利汽车所有。
☑ 设计图的所有权和解释权都归吉利汽车所有。
☑ 本项目所有资源文件均由**打不死的小海**复刻制作。
☑ 本项目代码暂时不会开源,有需要的源码的可与我联系(博文结尾有我微信)。
☑ 本项目仅限学习交流、禁止商业使用。