论文网
首页 理科毕业电气毕业正文

基于Qt的手持式炮长终端界面设计与实现

  • 投稿研究
  • 更新时间2015-09-11
  • 阅读量390次
  • 评分4
  • 69
  • 0

雷雨能1,赖文娟1,曾刊1,刁中凯2,高洁1

(1.中国兵器工业第五八研究所军品部,四川绵阳621000;2.中国人民解放军驻157厂军事代表室,四川成都611930)

摘要:为了实现对火炮表尺、方向等参数的实时可视显示和有效控制,设计一种基于嵌入式Linux系统Qt/Embedded的手持炮长终端应用界面软件。首先在工作计算机平台中塔建嵌入式Qt开发环境,再针对键盘模块、CAN总线通信模块和图形显示模块进行软件模块设计,最后将程序移植至Freescale i.MX53处理器平台中运行。该程序解决了对火炮的有效控制和可视显示,大大提高了火炮的作战效率。实验结果表明,基于Qt/Embedded的手持炮长终端界面响应速度快,运行稳定,满足性能要求。

教育期刊网 http://www.jyqkw.com
关键词 :Qt;嵌入式Linux;CAN总线;炮长终端

中图分类号:TN911?34 文献标识码:A 文章编号:1004?373X(2015)18?0036?03

收稿日期:2015?03?25

0 引言

当前,嵌入式系统是目前最流行的计算机应用技术之一,而嵌入式Linux系统却是其中发展最快的也是应用最广的嵌入式操作系统[1]。

Qt是一种基于C++的包含了跨平台开发工具和国际化支持工具的GUI系统[2],由于其具有C++图形类库强大、跨平台移植方便、丰富的多线程支持和很高的响应速度等优点,目前已经越来越多地应用于嵌入式系统界面设计中。

现代火炮系统作为局部地面战争中陆军装备的主力军,面临着智能化和信息化的发展趋势。炮长手持终端作为一种PDA 设备,主要用于有效显示和控制火炮的各种参数,便于火炮对目标的精确打击,大大提高了部队的信息化作战能力。

本系统基于Freescale i.MX53 处理器和Linux 操作系统,硬件接口包含串口总线、CAN总线、网口、LCD和触摸屏;界面设计包括键盘模块、CAN 通信模块、图形显示模块。

1 嵌入式Qt 开发流程

Linux系统下Qt/Embedded开发详细流程如下:

(1)选定嵌入式Linux硬件平台;

(2)塔建Qt开发环境。在工作计算机上安装Linux 操作系统,安装Qt/X11[3],Qt/Embedded(X86),Qt/Embed?ded(ARM)三个版本的Qt SDK,并安装配置Qt Creator开发工具。Qt/X11 版本主要用于产生Qt开发工具,最重要的是可以得到QVFB 工具[4]。QVFB 可以不需要实际的开发板,在工作计算机上开发Qt/Embedded应用程序,然后进行调试,再下载到目标硬件平台上。Qt/Em?bedded版本主要应用于嵌入式Linux系统的版本;

(3)根据目标硬件平台的需要,交叉编译Qt/Em?bedded库文件;

(4)在工作计算机上使用Qt Creator开发工具进行应用程序的编辑和调试。在设计调试阶段,为方便调试,编辑编译成Qt/Embedded(X86)版本的程序,使用QVFB工具,将调试输出结果显示在一个仿真嵌入式设备显示终端的模拟器上。如果仿真测试正确无误,再编译成Qt/Embedded(ARM)版本应用程序;

(5)移植Qt/Embedded(ARM)版本应用程序到目标硬件平台;

(6)在目标硬件平台运行Qt/Embedded(ARM)版本应用程序。

2 嵌入式Qt 环境塔建

工作计算机操作系统为Fedora Core 14。

2.1 准备的开发工具包

Qt creator开发工具包:

qt?creator?linux?x86?opensource?2.5.1.bin

Qt SDK包:

qt?everywhere?opensource?src?4.8.2.tar.gz

Qt库包:

tslib?qt.tar.bz2

交叉编译工具:

gcc?4.4.4?glibc?2.11.1?multilib?1.0.tar.bz2

2.2 安装Qt/X11版

执行如下操作:

#cd /usr/local/Trolltech/PC

#tar –jxvf qt?everywhere?opensource?src?4.8.2.tar.gz

# ./configure

#gmake

#gmake install

2.3 安装Qt/Embedded(X86)版

执行如下操作:

#cd /usr/local/Trolltech/X86

#tar –jxvf qt?everywhere?opensource?src?4.8.2.tar.gz

#./configure ?embeddedx86?qt?gfx?qvfb ?qt?kbd?qvfb ?qt?mouse?

qvfb

#gmake

#gmake install

# cd /usr/local/Trolltech/PC/tools/ qvfb

#make

#cp?rf/usr/local/Trolltech/PC/bin/qvfb/usr/local/Trolltech/X86/bin

2.4 安装Qt/Embedded(ARM)版

编译Qt库并修改环境变量,执行以下命令:

#cd /usr/local/arm/

#tar –jxvf tslib?qt.tar.bz2

#./autogen.sh

#./configure??host=arm?none?linux?gnueabi??prefix=/qts/tslib ??enable?debug=no

#make

#make install

#export PATH=/usr/local/arm/gcc?4.4.4?glibc?2.11.1?multilib?1.0/arm?fsl?linux?

gnueabi/bin:$PATH

最后,配置和编译Qt ,执行如下命令:

# ./configure ?prefix /usr/local/Trolltech/ARM ?opensource ?confirm?license ?release ?shared ?embedded arm ?xplatformqws/linux?arm?g++ ?depths16,18,24 ?fast ?optimized?qmake ?pch ?qt?sql?sqlite ?qt?libjpeg ?qt?zlib ?qt?libpng ?qt?freetype ?little?endian ?host?little?endian ?no?qt3support ?no?libtiff ?no?libmng ?no?opengl ?no?mmx ?no?sse ?no?sse2 ?no?3dnow ?no?openssl ?no?webkit ?no?qvfb ?no?phonon ?no?nis ?no?opengl ?no?cups ?no?glib ?no?xcursor ?no?xfixes ?no?xrandr ?no?xrender \ ?no?separate?debug?info ?nomake examples ?nomake tools ?nomake docs ?D__ARM_ARCH_5TEJ__ ?qt?mouse?tslib ?I/ /qts/tslib/include ?L/ /qts/tslib/lib

#make

#make insatll

2.5 安装Qt creator开发工具

执行如下命令:

#./chmod +x qt?creator?linux?x86?opensource?2.5.1.bin

# ./qt?creator?linux?x86?opensource?2.5.1.bin

3 炮长终端界面设计与实现

炮长终端应用软件包含软键盘、CAN通信、图形显示界面和各个模块的整合,其主界面显示如图1所示。

(1)键盘模块的实现

软键盘作为输入设备,能够对火炮各参数进行设定,类似于电脑键盘的数字小键盘,采取了将所有按键做成一个类,类名为Keyboard,每个按键信号都和对应槽函数进行一一相连。软键盘显示如图2所示。

(2)CAN总线通信模块的实现

CAN是一种控制器局域网,一个串行的、异步的、多主机的通信协议,属于全数字化,双向的现场总线[5]。本文通过开辟2个线程分别用来接收和发送各参数数据,并进行数据显示、存储和处理。该模块主要包括CAN参数设置初始化程序、数据接收处理程序和数据发送处理程序。在CAN初始化程序中,主要设置CAN波特率、端口号、滤波器、协议类型、数据格式、ID等参数。在数据接收和数据发送处理程序中,主要针对火炮基准射向、射击修正、装定表尺和当前表尺等参数进行处理和显示。

(3)图形界面的实现

图形以2个直方图来表示(见图3):左边直方图代表火炮的装定表尺和当前方表尺的差值;下边直方图代表火炮的装定方向和当前方向的差值。该图形使炮长能够直观而准确地感知火炮的到位情况,以便能够快速有效地控制火炮的到位。显示图形界面显示如图3所示。图3 中,装定表尺为100,当前表尺为200,差值为100,炮长需要对表尺向左继续摇动火炮2 圈才能到位。装定方向为0,当前方向为200,差值为200,炮长需要对方向向右继续摇动火炮才能到位。

4 移植与运行

使用Qt Creator 工具编辑程序并编译成Qt/Embed?ded(ARM)版本可执行文件,文件名为gunV0。通过安装配置NFS服务器,挂载网络文件系统,移植可执行文件,执行操作:

# mount ?t nfs 192.168.1.5:/nfsroot /mnt/nfs/ ?o nolock

#cp /mnt/nfs/gunV0 /root/tmp

由于Qt没有自带中文字体库,在此须添加文泉字库的支持,把文泉字库wenquanyi.ta解压后放到目标硬件平台Qt安装目录下。最后运行可执行程序,执行:

#./gunV0 ?qws ?font unifont &

5 结语

相对基于MiniGUI 的界面开发,基于Qt 的界面设计,其C++开发类更加完整,功能更加全面,设置控件和属性更加简单,而且提供了免费的开发工具,开发成本较低[6],开发起来更加方便。经过现场调试和测试,炮长终端界面友好,运行稳定,响应速度快,可满足实时性要求。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 弓雷.ARM嵌入式Linux系统开发详解[M].北京:清华大学出版社,2010.

[2] 黄超.基于Qt的嵌入式GUI的研究与实现[D].长春:吉林大学,2011.

[3] 李艳民.基于Qt 跨平台的人机交互界面的研究与应用[D].重庆:重庆大学,2007.

[4] 张冬,丁金华.基于Qt/E的A/D数据采集系统的设计[J].大连工业大学学报,2008,27(4):374?375.

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

[6] 孙建中.基于ARM 嵌入式Linux平台的CAN总线仪表的研制[D].长春:吉林大学,2007.

作者简介:雷雨能(1982—),男,广西人,硕士。研究方向为嵌入式软件开发。