HMI-66-【MeterDisplay for Arm Linux】液晶仪表Arm Linxu迁移

简介: 先说结论,虽然移植成功,但是显示效果不理想,可以直接看和面的视频。先说说做了什么吧。

HMI-66-【MeterDisplay for Arm Linux】液晶仪表Arm Linxu迁移

[toc]

关键字: MeterDisplayLinuxDebianQtArm

摘要

先说结论,虽然移植成功,但是显示效果不理想,可以直接看和面的视频。先说说做了什么吧。

修改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性能,这个也是,基本没有啥大规模使用过,也是得边摸索边写。结果看天意。

重大说明

这个项目开始的日期是在19年吧,那时的自己年少无知,也没有实际的硬件测试,在代码好多方面,都没有一个明确的构架,以及在开发过程中,尽管尽量写了笔记,但是还是不能很好的描述具体的工作。

今天做了实机移植测试,但是效果并不理想,所以目前这个项目暂停更新,感兴趣的小伙伴,可以尝试使用属性动画和QGraphics来修改测试一下。不过工作量应该不会小,所以对于我来说,这个项目的目的已经达到,后面可能会有其他相关的内容输出到这个项目专栏里面,但是界面相关的代码应该不会再更新了。

不过最新的HMI项目已经在考虑了,到时会全面拥抱QML。敬请期待吧。

©说明:

☑ 本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计吉利汽车HMI项目

☑ 多媒体部分是来自吉利博瑞2017旗舰版界面所有权和解释权都归吉利汽车所有。

☑ 设计图的所有权和解释权都归吉利汽车所有。

☑ 本项目所有资源文件均由打不死的小海复刻制作。

☑ 本项目代码暂时不会开源,有需要的源码的可与我联系(博文结尾有我微信)。

☑ 本项目仅限学习交流、禁止商业使用。


博客签名2021

相关文章
|
6月前
|
Linux
Linux(1)arm64根目录扩容
Linux(1)arm64根目录扩容
78 0
|
3月前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
755 3
|
6月前
|
传感器 Linux 数据处理
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用(二)
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
118 1
|
1月前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
3月前
|
Linux 网络安全 开发工具
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
本文介绍了如何基于Linux Kernel 5.15.102版本和BusyBox创建一个自定义的迷你Linux ARM系统,并使用QEMU进行启动和调试,包括内核和BusyBox的编译配置、根文件系统的制作以及运行QEMU时的命令和参数设置。
260 0
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
|
3月前
|
Linux 数据安全/隐私保护
在Linux中,如何进行文件系统的迁移和升级?
在Linux中,如何进行文件系统的迁移和升级?
|
3月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
102 3
|
4月前
|
弹性计算 Linux 云计算
云服务器 ECS产品使用问题之如何从Linux迁移存档到Windows
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
3月前
|
Linux KVM 虚拟化
在Linux中,如何进行虚拟机和容器的备份和迁移?
在Linux中,如何进行虚拟机和容器的备份和迁移?
|
5月前
|
存储 数据管理 Linux
Linux - 记录问题:docker 迁移 更改镜像默认位置的注意事项
Linux - 记录问题:docker 迁移 更改镜像默认位置的注意事项
102 0