基于Qt/Embedded的机房环境监控系统

时间:2022-10-03 06:13:27

基于Qt/Embedded的机房环境监控系统

摘要: 为了实现机房环境监控系统实时性,可控性和可预警性,在软硬件资源受限的嵌入式环境中,采用Qt/Embedded在嵌入式Linux系统下开发出友好的GUI界面,可以提供实验室环境参数的查询和设置,从而实现实时监控。通过结合Qt/Embedded的特点和优点,提出用Qt/Embedded实现实验室环境监控系统的图形用户界面的设计思路,并对Qt/Embedded图形系统应用开发过程中的一些关键问题进行了深入研究。

关键词: Qt/Embedded; 嵌入式GUI; 嵌入式Linux; 控制界面

中图分类号: TN911⁃34; TP311 文献标识码: A文章编号: 1004⁃373X(2014)08⁃0038⁃02

Qt/Embedded⁃based environment monitoring system for laboratory

LIU Zhong⁃qing

(Chengdu Sport University, Chengdu 610041, China)

Abstract: To achieve the real⁃time performance, controllability and early warning of computer room environment monitoring system, Qt/Embedded is adopted in the embedded Linux system to realize friendly GUI, which makes query and set of the laboratory environment parameters possible in the hardware and software resource⁃constrained embedded environment. In consideration of the characteristics and advantages of Qt/Embedded, Qt/Embedded is used to realize the GUI of remote monitoring system for the environment in the laboratory. Some key problems existing in the process of developing the GUI based on Qt/Embedded is deeply discussed in this paper.

Keywords: Qt/Embedded; embedded GUI; embedded Linux; control interface

0引言

智能监控是当前自动控制领域研究的热点问题,在软硬件资源受限的嵌入式环境中,将32位高性能微处理器和Qt/Embedded结合,应用到现实控制场合具有一定的可行性和前瞻性。

随着自动化设备现场环境更加注重实效性,高精度,且对人体健康影响小等方面,目前,国内高等院校的实验室已不能完全满足要求,因此,研究开发具有高效实时监控,精密远程控制,可靠安全预警等功能的的智能实验室环境监控系统具有重要的实践意义[1]。本文重点研究基于Qt/Embedded智能实验室监控系统开发过程和应用难点。

1系统硬件架构图

本系统主控制器以三星公司的S3C2410 ARM微处理器作为嵌入式前端机,通过MEGA8传感器扩展板完成数据的采集,存储,显示和前端机的通信。以固定IP计算机为中层监控主机,通过以太网接入Internet。监控主机通过监控软件实时掌握被监控点的环境参数,根据预设参数(阈值)逻辑判断状态,达到条件启动异常警告[2],并将相关数据或报警信息传送给远程监控。远程监控包括手机,固定电话,普通PC或移动PC等,他们通过GSM,PSTN,TCP/IP与监控中心相连见图1。

系统功能流程为:软件轮询接收传感器的状态数据,同时发送中断请求,前端机根据串口通信协议发送控制命令给单片机,单片机根据控制命令向指定传感器的返回状态或数据。前端机的触摸屏呈现的友好的GUI界面是在嵌入式Linux系统下用Qt开发的,具备提供实验室环境参数的查询和设置等功能。

2Qt/Embedded系统平台

2.1Qt/Embedded系统移植

Qt/Embedde系统是专为小型设备提供图形用户界面的应用框架和窗口系统,作为要移植的GUI,具体安装移植参见文献[3⁃4]。

图1 系统硬件架构图

2.2中文显示支持

监控系统使用中文字体显示可以方便用户操作。采用Qt/Embedded开发的监控界面需要完成在编译库中加入对中文的支持和在程序中指定一个中文字体即可实现对中文支持[5]。

2.3Qt/Embedded程序开发流程

(1) 注册环境变量,进入Qt/Embedded系统开发环境,PC机上使用Qt⁃x11.2.3.2的设计工具designer设计可视化界面,使用uic代码自动生成工具把demo.ui生成C++代码:demo.h和demo.cpp,并编写main.cpp主程序,建立工程,然后编译,生成可执行文件,使用qvfb工具运行此可执行文件查看仿真效果。

(2) 使用交叉编译工具编译源程序,编译生成可在ARM⁃Linux系统中运行的可执行文件,将该可执行文件复制到ARM⁃Linux系统中,在ARM⁃Linux系统中运行该可执行文件,得到应用程序的实际效果[6]。

3GUI设计

3.1图形用户界面程序框架

用户与嵌入式前端机的接口是图形用户界面,用户可以根据图形用户界面所显示的信息,结合触摸屏选择响应的菜单,查询所需要的信息。图形用户界面主要模块有:状态设置,数据通信,数据采集,故障诊断,温度管理示即实时管理机房的温度变化曲线, 湿度管理,即实时管理机房的湿度变化曲线。如图2所示。

3.2图形用户界面程序设计

3.2.1头文件和源文件的生成

以下为使用QtDesigner开发温度显示界面,湿度管理及其他界面类似。使用uic工具,用temperature.ui界面文件生成temperature..h头文件和源文件。

uic ⁃otemperature.htemperature.ui

uic ⁃otemperature.cpp ⁃impltemperature.htemperature.ui

图2 图形用户界面程序基本架构

温度管理界面要实现查询当前或某个历史时刻的温度,在temperature.cpp文件里添加温度曲线生成的代码实现生成温度曲线的功能。在文件temperature.cpp中定义一个temperature类的查询当前或某个历史时刻的温度成员函数:

void temperature::searchtempSlot()

定义编辑生成温度曲线成员函数:

void temperature::edittempSlot()

温度管理窗口界面的2个按钮的Signal⁃Slot的connect()代码:

connect(searchtemp. SIGNAL(clicked()),this.SLOT(searchtempSlot)));

connect(edittemp. SIGNAL(clicked()),this.SLOT(edittempSlot)));

3.2.2main主函数文件编写

为了生成main.cpp文件,必须先生成QApplication类的实例,定义窗口类实例,把窗口类实例作为程序的主窗口,设置mainwindow部件,调用show()和exec()方法,使温度管理界面作为主窗口。以下是temperature的主函数文件main.cpp的主要代码:

int main(int argc,char **argv)

{

QApplication temperature(argc,argv);

temperature *mainwindow=new temperature;

app.setMainWidget((&mainwindow);

mainwindow⁃>show();

retrun temperature.exec();

}

3.2.3编译调试

先生成.pro工程文件,采用progen方法为:$TMAKEDIR/bin/progen⁃T.app.t⁃otemperature.pro。用tmake命令生成Makefile文件,方法为:$TMAKEDIR/bin/tmake⁃oMakefiletemperature.pro,用make命令对整个工程进行编译链接。调试过程中,先在开发机上用Qt/Embedded提供的模拟环境qvfb即Qt/Embedded的虚拟仿真窗口中进行测试[7]。

3.2.4移植程序到目标机

重新编译程序,复制Qt/Embedded二进制库和应用程序的二进制代码到某个目录下,把该目录制成某种类型的根文件系统,最后将该根文件系统烧写到S3C410的FLASH存储器上[8]。

4结语

高性能的监控系统需要一个高性能,高可靠性的用户界面的支持,基于Qt/Embedded的人机界面的设计,开发和维护成本低,人机交互信息丰富,丰富的API接口和基于组件的编程模型使得嵌入式应用程序开发更加便捷[9]。本文设计了基于S3C2410ARM微处理器和嵌入式Linux系统的实验室环境监控系统,对基于Qt/Embedded开发嵌入式GUI,及Qt/Embedded编程的关键技术问题做了较详细的论述。

参考文献

[1] 杨柳,岳坤,庞和明,等.Qt/Embedded及嵌入式Linux在智能监控系统控制中的应用[J].计算机应用,2010,30(1):289⁃291.

[2] 杨柳,庞和明,姜琳颖,等.嵌入式Linux及SQLite数据库在智能监控中的应用研究[J].微计算机信息,2010,26(24):65⁃67.

[3] 郭海涛,王进华.基于Qt支持库的嵌入式系统中GUI分析与设计[J].江苏电气,2008(10):8⁃10.

[4] 张亚君,孔帅.基于Qt/Embedded和Qtopia的嵌入式GUI移植开发[J].天津职业大学学报,2010,19(1):78⁃82.

[5] 赵毅,游有鹏.基于Qt/Embedded的嵌入式数控系统人机界面设计与开发[J].工业控制计算机,2008,21(4):68⁃71.

[6] 孙巍,冯伟兴.Qt/Embedded应用程序在ARM⁃Linux系统中开发与应用[J].计算机应用,2011,30(8):9⁃12.

[7] 陈鲲,陈云秋,刘信新.基于Qt/Embedded的嵌入式Linux应用程序的设计[J].计算机与数字工程,2009,37(1):156⁃158.

[8] 刘胜玉,张志新.基于Qt/Embedded的嵌入式监测系统人机界面[J].工业控制计算机,2009,22(9):17⁃18.

[9] 连照亮,徐世国.基于Qt/Embedde在嵌入式Linux下的应用研究[J].微计算机信息,2010,26(12):81⁃83.

上一篇:基于T⁃S模糊模型的机器人轨迹跟踪控制 下一篇:基于安卓平台的井控信息处理系统的设计实现