Qt开发平台的搭建与应用

2012-04-20 00:44菊,庆,
制导与引信 2012年2期
关键词:源码程序开发串口

施 菊, 张 庆, 赵 冰

(上海无线电设备研究所,上海200090)

0 引 言

Qt是一个跨平台的C++应用构架,拥有直观、强大的API(应用程序编程接口),在通信控制器、自动化电路设计系统、金融服务等方面应用广泛。Qt支持以下平台:MS/Widows、UNIX/X11-Linux、HP-UX、Digital Unix 等。目前在商业领域,Qt是目前最通用流行的Gui,与其它Gui相比,具有良好的封装机制,结构小巧,模块化程度高,可重用性较好,无论在移植性、应用程序,还是技术支持等方面都略胜一筹。

Qt在工业领域控制界面方面占有越来越重要的地位。本文结合深圳华天正公司Real6410的ARM11开发套件,详细介绍了Linux环境为前提的Qt Gui开发环境的搭建,软件开发过程及其如何移植等问题。与传统控制界面设计方式相比,Qt Gui还具有系统可靠性增强、开发时间缩短、系统升级维护方便等优势,具有强大的发展潜力。

1 开发平台的搭建

1.1 硬件平台的搭建

本文介绍的Qt 开发硬件环境包括了ARM11开发套件、PC机一台。选择在Windows操作系统下通过VMware虚拟机安装Linux操作系统,并配置NFS等服务功能。目前Linux操作系统版本较多,主要有Ubuntu和RedHat等,相比较而言,Ubuntu操作界面更为人性化、库升级方便,因此采用Ubuntu 10版本。

1.2 软件平台的搭建

进行Qt应用程序的开发,首先需要准备好arm-none-linux-gnueabi交叉编译器、QtCreator和最新的Qt源码包。在Linux 平台下,安装交叉编译器为开发板编译内核。Qt应用程序也需要交叉编译后,才能移植到ARM 平台上。

Qt Creator是NOKIA 公司最新推出的Qt开发工具,与Qt Desiger等相比,它功能集成度更高,无须再单独安装qvfb、zlib等配套软件,程序开发和交叉编译功能自成一体,交叉编译完成后可直接下载到ARM。Qt针对不同的开发对象提供很多种源码包,如Qtopia、Qt/Embedded等,本文并不需要开发图形系统,只是针对特定工业控制要求开发相应的控制界面,因此采用Qt/everywhere源码包,对源码包进行交叉编译后即可进行使用。

ARM 开发套件主要准备工作流程如图1所示,可以根据需要对内核进行定制,对文件系统进行裁减。

图1 准备工作流程图

2 Qt界面开发

2.1 Qt程序开发流程

平台搭建完成后,就可以根据需要开发嵌入式GUI程序,使用Qt Creator开发流程简单高效,具体流程图如图2所示。

图2 Qt程序开发流程

在开发过程中,设置Qt Creator交叉编译工具,将gcc改为arm-linux-gcc,选择交叉编译后的qmake,将交叉编译后生成文件的地址选择为ARM 可直接挂载地址。于是开发中可以省略在PC机上交叉编译运行这一流程,直接对编写的代码进行交叉编译。裁减掉ARM 文件系统中不需要的部分内容,同时使其不要上电加载Qtopia等应用程序。这样便可以将交叉编译后的应用程序下载到ARM 实时调试,不用在本机编译与交叉编译中不断切换,也不用手动编写Makefile文件,缩短开发流程。

2.2 Qt用户图形界面设计

Qt提供了一款专门用于用户图形界面设计的工具Qt Creator,具有强大的布局功能,既可以专门设计GUI,又可以利用它提供的集成功能,用于整个程序的开发。Qt的界面既可以通过GUI窗口中现有部件的选择排列而成,也可以通过C++编写完成。按照Qt开发流程,设计了一款用于实时监控的GUI界面,界面框架如图3所示。

图3 界面程序框架图

串口1为调试串口,串口2为RS232,串口3为GPS串口,串口4待用;另外还在本界面上开通了网络模块、键盘模块、定时器、音频和影像播放模块等。

信号和槽机制是Qt的核心机制,是一种功能强大的对象间通信机制,极为灵活,完全面向对象,为对象之间的通信提供了便利条件。槽用于接收信号,一个槽并不知道是否有信号与自己相连。可以将任意一个信号与任意一个槽相连接,甚至于将一个信号与另一个信号相连。信号与槽构造了一个强大的部件编程机制,取代了以往老旧的、缺乏安全性的回调技术。通过信号与槽,实现了各个模块之间的有效通信。

将开发完成的程序交叉编译后下载至ARM开发板,运行程序,如图4所示。

图4界面为串口接收数据页面,当open按钮按下时,ARM 上所有端口被打开。可接入键盘对ARM 进行操作,也可以通过触摸屏对ARM进行控制,此界面同时具有实时存储数据功能,把数据存储到文件系统根目录下,为以后进行数据分析提供依据。界面右侧为端口数据显示界面,主要用于实时监测各个端口数据,点击Net按钮进入网络数据接收页面,点击GPS按钮进入GPS数据接收页面,点击Local按钮进入本地数据页面,点击Help 进入本界面使用说明页面。左侧为图形数据界面,根据接收数据实时绘制图形,并将某些数据在图形上滚动显示。如果端口数据出现错误,此Qt GUI还可根据错误的种类给ARM发出不同的警告信息,ARM 发出相应的报警声。

图4 QT 界面图

3 总结

本文讲述了Qt开发环境的搭建和应用。使用Qt开发GUI,能快速的开发应用程序,连接数据库也非常方便快捷,界面控件元素十分丰富,能满足各种应用需求。Qt一直以来为开发人员提供完整的文档和工具,提供最为完整的平台支持。因此,Qt在GUI程序开发领域有着良好的应用前景。

[1] Jasmin Blanchette,Mark Summerfield.C++ GUI Programming with Qt4,Second Edition[M].2008.

[2] 李朱峰.Linux2.6 嵌入式系统开发与实践[M].北京:北京航空航天大学出版社,2010.

[3] 刘淼.嵌入式系统接口设计与Linux驱动程序开发[M].北京:北京航空航天大学出版社,2006.

[4] 穆煜.嵌入式应用程序设计[M].北京:人民邮电出版社,2009.

猜你喜欢
源码程序开发串口
螺旋管传热与阻力特性实验研究及热工水力分析程序开发
GUI 源码自动生成研究综述
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
基于词嵌入的源码相似度研究
国内一站式工程设备租赁平台众能联合完成C2、C3两轮融资
浅析大学生在兼职小程序开发中遇到的问题
企业如何保护源码
基于EM9000工控板高性能双串口通信模型设计与实现
APP应用程序开发模式探究
船舶电子设备串口数据的软件共享方法