APP下载

基于Qt的嵌入式车辆远程监控报警系统图形界面设计

2018-01-17陈安郭文荣邓惟记

科技创新与应用 2018年34期
关键词:嵌入式车辆

陈安 郭文荣 邓惟记

摘 要:文章在对基于Linux的嵌入式车辆远程监控报警系统的功能进行分析的基础上,采用Qt软件设计了系统的图形界面,包括监控主窗口和各个子窗口。详细阐述了系统图形界面的设计方法以及功能实现方法,并对系统采用的关键编程技术进行了详细介绍。经系统运行测试,系统图形界面的设计和功能达到了预期设计需求。

关键词:嵌入式;车辆;远程监控报警;Qt;图形界面设计

中图分类号:TP319 文献标志码:A 文章编号:2095-2945(2018)34-0022-03

Abstract: On the basis of the analysis of the functions of the embedded vehicle remote monitoring and alarming system based on Linux, this paper designs the graphical interface of the system using Qt software, including the main monitoring window and each sub-window. The design method and function realization method of the system graphical interface are described in detail, and the key programming technology used in the system is introduced in detail. Through the system running test, the system graphical interface design and the function achieved the anticipated design demand.

Keywords: embedded; vehicle; remote monitoring and alarming; Qt; graphical interface design

1 概述

隨着嵌入式技术的快速发展和广泛应用,嵌入式技术也越来越多地应用于车载系统以便为用户提供更多样、便捷和实用的应用服务。在此背景下,针对当今愈发突出的车辆安全问题,开发了一套基于嵌入式Linux的车辆远程监控报警系统,以实现对车辆安全情况的实时监测和危险报警,方便车主或管理人员对车辆的远程监控和管理。

在车辆远程监控报警系统的设计开发中,为了使系统的界面设计美观、实用,同时保证系统的功能性、实时性等需求,选择一套合适的开发工具非常重要。Qt软件是一种跨平台、面向对象的C++应用程序图形界面设计软件,具有界面设计简捷、美观,设计的应用程序实时性和灵活性高等特点,在嵌入式系统GUI图形界面设计中有着广泛的应用,能够满足本系统的设计开发需求,因此选择其作为本系统的图形界面设计软件。

2 系统概述

本文所研究的车辆远程监控报警系统用于车主或管理人员对车辆的远程监控和报警,通过车载GPS模块、温度传感器、加速度传感器、振动传感器和热释电传感器实时采集车辆的位置、行驶状态以及非法入侵等信息,并将这些信息显示主控制器的监控界面中。主控制器对实时采集的车辆信息进行分析处理,若发生危险则通过GSM网络将报警信息和车辆信息发送给车主或管理者手机,从而实现车辆的快速报警处理。主控制器的功能包括车辆信息的实时显示与处理、监控短消息的收发与显示、GPS模块测试、GSM模块测试、报警设置、自动报警、手动报警等。

主控制器采用飞凌OK6410-A ARM11开发板,采用S3C6410处理器,4.3寸屏幕,运行Linux3.0.1嵌入式系统。各种车载传感器分别连接主控板的GPIO、I2C等接口。GPS模块和GSM/GPRS模块通过不同串口连接主控制器,实现车辆GPS信息的实时采集和监控报警短信息的收发。

3 主控制器图形界面设计

3.1 软件开发环境的搭建

主控制器程序的图形界面设计是在PC宿主机的Linux虚拟机上完成的,程序需要编译后下载到主控制器上运行。本文的PC宿主机采用Window7系统,安装Linux Ubuntu12.04虚拟机。在Ubuntu虚拟机上需完成主控制器qt-4.7.1应用开发工具包的编译、Qt Creator 2.4.1软件的安装。此外,还需安装arm-linux-gcc-4.3.2交叉编译器,以便编译在主控制器ARM板上运行的qt-4.7.1应用程序。在完成上述工作后,还需在Qt Creator 2.4.1软件中添加qt-4.7.1的qmake编译文件路径,并为其添加arm-linux-gcc-4.3.2交叉编译器路径,以实现主控制器程序的编译。

3.2 监控主窗口的设计与实现

监控主窗口是主控制器上显示的主界面,其功能是实时显示车辆状态信息、GPS定位信息、GSM远程监控报警短信息,以及GPS测试、GSM测试、报警设置、自动报警、手动报警等功能。

3.2.1 创建应用程序项目和监控主窗口

首先,在Qt Creator 2.4.1软件中创建车辆远程监控报警系统的应用程序项目(Project),项目类型为“Qt Widget Project”下的“Qt Gui Application”。随后,创建基于QDialog的对话框类,并自动生成无模式对话框,此对话框即监控主窗口。

3.2.2 监控主窗口设计

根据监控主窗口的功能需求,其界面设计包括四个部分:车辆信息显示、GPS信息显示、GSM远程监控报警信息显示以及各个功能按钮,如图1所示。窗口元素采用Qlabel标签显示静态文本信息、QlineEdit单行文本框显示内容简短的动态文本信息,各个功能按钮则利用QpushButton来实现。窗口文字采用简体中文“文泉驿字体”。窗口布局采用 QgridLayout网格布局形式,以便当窗口缩放时各窗口元素能够根据窗口大小自动进行缩放调整。

3.2.3 監控主窗口功能的实现

(1)车辆信息的实时动态显示

监控主窗口采用定时器每隔1秒钟读取各种车载传感器采集的温度、加速度、振动以及外人非法进入车辆等信息并显示在车辆信息显示界面中。具体实现方法如下:

首先,在监控主窗口源文件(.cpp)中包含定时器库文件“Qtimer”,创建定时器并设置定时器的超时时间为1秒。然后,通过Qt 的“信号——槽”机制将定时器超时信号与传感器的数据采集和显示程序相关联,从而实现定时器超时后自动执行传感器的数据采集和显示程序。

以车辆温度为例,关联定时器超时信号与温度采集和显示程序的代码如下:

connect(tempTimer,SIGNAL(timeout()),this,SLOT(show_Temprature()));

其中,“tempTimer”为发送信号的定时器对象指针,“SIGNAL(timeout())”为定时器发送的超时信号,“this”为接收信号的主窗口对象指针, “show_Temprature() ”为主窗口接收到定时器超时信号后自动执行的车辆温度采集和显示槽函数。

(2)GPS信息的实时动态显示

监控主窗口每隔一秒钟实时显示车辆的GPS经度和纬度定位信息,其GPS定位信息来自于GPS子窗口。当主控制器程序运行后,将创建监控主窗口、GPS子窗口以及其他子窗口。GPS子窗口采用定时器每隔一秒钟通过串口读取GPS模块接收的GPS定位信息,经解析处理后将GPS经度和纬度信息同步回传到主窗口进行显示。

GPS子窗口与主窗口之间通过Qt 带参数的“信号——槽”机制来实现数据的同步传递。GPS子窗口(GPSDialog)定时向主窗口发送sendGPSsignal(QString,QString)信号,将GPS经度和纬度数据通过两个Qstring参数发送给主窗口。主窗口接收到该信号后,将自动执行show_GPS(QString,QString)槽函数显示接收到的GPS经度和纬度数据。

主窗口和GPS子窗口的“信号——槽”关联代码如下:

connect(GPSDialog,SIGNAL(sendGPSsignal(QString,QString)),this,SLOT(show_GPS(QString,QString)));

(3)GSM监控短信息的实时动态显示

与GPS信息的显示方法类似,GSM监控短信息的实时显示也是利用带参数的“信号——槽”将GSM子窗口中实时接收的监控短信息同步回传到主窗口中进行显示,具体实现过程不再赘述。

(4)子窗口的显示

在监控主窗口中设置了GPS测试、GSM测试、报警设置等按钮,单击某按钮将打开相应的子窗口实现其功能。

以“GPS测试”按钮为例,单击该按钮将打开GPS子窗口。具体实现方法为:

在主窗口的“.cpp”文件中定义“GPS测试”按钮的鼠标单击槽函数,函数实现代码如下:

void JkDialog::on_Button_GPSTest_clicked()

{

GPSDialog->show(); // 显示GPS子窗口

}

3.3 GPS子窗口的设计与实现

除监控主窗口之外,主控制器程序还包括GPS、GSM、报警设置等子窗口,各自实现不同的系统功能。由于篇幅所限,本文仅以GPS子窗口为例说明其设计与实现方法。

3.3.1 创建GPS子窗口

在应用程序项目中,选择创建新的“Qt Designer Form Class”,然后选择窗体模板“Dialog without Buttons”,设置窗体类名,完成GPS对话框的创建,此对话框为无模式对话框。

3.3.2 GPS子窗口设计

GPS子窗口的功能是测试GPS模块状态、定时读取GPS模块所接收的原始GPS定位信息,并对信息进行解析处理,获得详细的GPS定位信息(包括经度、纬度、速度、航向、UTC时间等)并加以显示。此外,还会将车辆的GPS经纬度信息同步传送给主窗口进行显示。

根据GPS子窗口的功能需求,其界面设计包括:经度、纬度、速度、航向、UTC时间、GPS状态、GPS信息(GPS原始信息)等文本信息以及GPS测试和退出等按钮,如图2所示。界面元素采用Qlabel标签显示静态文本信息,采用QlineEdit单行文本框显示纬度、经度、速度、航向等简短动态文本信息,采用QtextBrower多行文本浏览框显示GPS模块接收的原始GPS信息,GPS测试和退出等按钮则采用QpushButton来实现。对话框窗口文字和窗口布局形式与监控主窗口相同。

3.3.3 GPS子窗口功能的实现

(1)GPS初始化设置

在GPS子窗口中,单击“GPS测试”按钮开始GPS模块的初始化和测试。具体实现方法如下:

程序首先打开GPS模块所连接的串口,若成功则设置串口的通信参数,本文的GPS串口的通信速率设置为9600KBps、8位数据位、无奇偶校验、1位停止位、无数据流控制。随后,创建并启动定时器,设置定时器的超时时间为1秒。然后,将定时器的超时信号与GPS信息接收和处理槽函数相关联,以实现定时读取GPS信息进行处理及显示。若串口打开失败,则显示提示信息。

(2)GPS信息的接收与处理

GPS信息接收和处理槽函数首先读取GPS串口所接收的GPS原始信息,并根据GPS 的NMEA0183通信标准, 对GPS原始信息中的“$GPRMC”部分进行解析处理,从而得到经度、纬度、速度、航向、UTC时间等详细信息。随后,将GPS原始信息和解析处理后的GPS定位信息显示在GPS子窗口中。若GPS信息中出现无效定位字符,则提示GPS定位失败。

(3)GPS子窗口向主窗口同步传送GPS数据

在GPS信息接收和处理槽函数中,当完成GPS信息的解析处理后,将向主窗口发送“sendGPSsignal(QString,

QString)”信号,将GPS经度和纬度数据作为参数传递给主窗口进行显示。发送该信号的代码如下:

emit sendGPSsignal(longtitude,latitude);

其中,参数longtitude和latitude分别为解析后得到的GPS经度和纬度数据。

4 结束语

本文采用Qt软件实现了基于Linux的嵌入式车辆远程监控报警系统的设计,完成了监控主窗口和各个子窗口的界面设计,实现了各窗口的功能和窗口之间的数据传递,界面简洁、实用,系统功能达到了车辆远程监控和自动报警的应用需求,提高了车辆的安全性,具有较高的实用性。

参考文献:

[1]田磊.嵌入式Linux系统中基于QT库的应用程序设计[J].实验室研究与探索,2014,33(5):84-86+115.

[2]孙弋,张晓刚.基于嵌入式Linux的车载终端的设计与实现[J].微计算机信息,2009,25(6-2):86-88.

[3]王存健,张建正.嵌入式Linux下Qt/Embedded的应用[J].计算机技术与发展,2006,16(11):179-181.

[4]成洁,路欣.嵌入式Linux平台的GPS数据采集研究[J].江西理工大学学报,2006,27(3):24-26.

[5]赵庆丽,魏东兴,郭永山.基于嵌入式LINUX的GPRS数据传输系统[J].信息技术,2004,28(3):1-4+19.

[6]张欢庆,高丽,宋承祥.基于ARM的嵌入式Linux交叉编译环境的研究与实现[J].计算机与数字工程,2012(2):151-153.

猜你喜欢

嵌入式车辆
德国车辆来波兰加油
车辆购置税法公布税率为10%
车辆
冬天路滑 远离车辆
多种基础设施辅助的VANET
嵌入式LINUX操作系统的研究
嵌入式的特点及发展机遇
嵌入式组件技术的研究及应用
基于嵌入式系统的游戏程序设计
“嵌入式系统概论”课程设计