网站首页  词典首页

请输入您要查询的论文:

 

标题 基于Qt的手持式炮长终端界面设计与实现
范文 雷雨能等



摘 要: 为了实现对火炮表尺、方向等参数的实时可视显示和有效控制,设计一种基于嵌入式Linux系统Qt/Embedded的手持炮长终端应用界面软件。首先在工作计算机平台中塔建嵌入式Qt开发环境,再针对键盘模块、CAN总线通信模块和图形显示模块进行软件模块设计,最后将程序移植至Freescale i.MX53处理器平台中运行。该程序解决了对火炮的有效控制和可视显示,大大提高了火炮的作战效率。实验结果表明,基于Qt/Embedded的手持炮长终端界面响应速度快,运行稳定,满足性能要求。
关键词: Qt; 嵌入式Linux; CAN总线; 炮长终端
中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2015)18?0036?03
Abstract: In order to achieve the real?time visual display and effective control for artillery hindsight and orientation, a Qt/Embedded?based application interface software of handheld gunner terminal was designed. At first, embedded Qt exploitation environment was built in the computers, and then software module was designed on the basis of keyboard module, CAN?bus communication module and graphic module. In the end, this program was transplanted to Freescale i.MX53 processor platform to operate, with which the effective control and visual display for artillery were realized, and the fighting efficiency was improved greatly. The test results show that the handheld gunner terminal based on Qt/Embedded has the advantages of rapid response speed and stable operation so that it can satisfy performance requirements.
Keywords: Qt; embedded Linux; CAN; gunner terminal
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/Embedded(ARM)三个版本的Qt SDK,并安装配置Qt Creator开发工具。Qt/X11版本主要用于产生Qt开发工具,最重要的是可以得到QVFB工具[4]。QVFB可以不需要实际的开发板,在工作计算机上开发Qt/Embedded应用程序,然后进行调试,再下载到目标硬件平台上。Qt/Embedded版本主要应用于嵌入式Linux系统的版本;
(3) 根据目标硬件平台的需要,交叉编译Qt/Embedded库文件;
(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/Embedded(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],开发起来更加方便。经过现场调试和测试,炮长终端界面友好,运行稳定,响应速度快,可满足实时性要求。
参考文献
[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.
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/10 21:00:15