基于嵌入式Linux与QT的汽车虚拟仪表设计
3.2.2 后台处理程序
后台处理程序主要将系统下层采集的数据进行分析处理,将有用的数据传送至虚拟仪表面板显示,实现虚拟仪表的动态显示,同时以多线程的方式不断检测汽车各项状态,当某项状态出现异常或存在危险时驱动LCD和语音芯片向驾驶员报警,其中异常状态有超速、存油量过低、电池电量过低等。下面以报警子程序为例讲解后台处理子程序。
报警子程序在后台处理程序中新建一个线程,通过多线程的方式以轮询的方式查询各个传感器的状态,当发现某个状态存在危险时,驱动语音芯片发出相应的报警信息。其定义如下:

通过调用QObject对象的connect函数,将报警线程的sendData信号与主线程的槽函数Deal()关联,当报警侦听线程发射信号时,主线程槽函数及时被调用,驱动报警。
4 应用程序示例
将裁剪、编译过的内核与制作的带QT库的文件系统烧写到开发板。在开发环境内交叉编译编写的应用程序,得到可执行二进制文件,将此文件移植到开发板,即可实现应用程序的发布。重新开机,运行应用程序即显示虚拟仪表界面,如图5所示。本文引用地址:https://www.eepw.com.cn/article/149181.htm
通过汽车上的各种传感器采集数据,通过控制器和高速CAN总线传送到S3C6410硬件平台解析,应用程序得到解析后的数据后,即可动态的显示当前车辆的各种状态及报警情况。
5 结语
本文设计的汽车虚拟仪表,具有优良的跨平台性能;该设计方案使得仪表信息量增大,操作简单,易于维护,界面友好;采用开放源码设计,使得本系统开发成本降低;使用双缓冲技术消除了仪表显示页面的闪烁;采用多线程技术,使处理、显示与报警同时进行,提高了系统的实时性与灵敏度;将具体的虚拟仪表对象定义为抽象类,增强了虚拟仪表的扩展性。经实验测试,本虚拟仪表系统的所有功能模块均能正常运行,该系统的应用将对降低汽车的成本,缩短汽车仪表系统的研发周期,提供高友好度的人机界面具有重要的意义。
评论