EDN China > 设计实例 > 嵌入式系统 > 参考设计 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

半导体激光器驱动电源的嵌入式GUI开发

王雪丽?? 娄小平?? 刘锋?? 张荫民?? 北京信息科技大学 现代电子技术?? 2015年06月15日 ?? 收藏1

3 程序的移植和发布

安装了交叉工具链以及经过交叉编译的Qt/E 库后,就可以将前面编辑好的应用程序进行交叉编译生成可执行二进制文件,然后发布到嵌入式控制板中。另外,在发布之前需要先移植tslib和Qt/E 库,tslib是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。解压根文件系统到home路径下,复制编译好的tslib、Qt/E库文件到根文件系统中,最后导出相应的环境变量。应该程序可以以界面图标的形式运行,这时,就需要自己制作启动器文件,在for-linx/web/lighttpd/webpages/apps目录下新建current.desk-top文件,然后编辑该文件:

#!/usr/bin/env xdg-open

[Desktop Entry]

Name=Serial

GenericName=Demo App

Icon=/forlinx/web/lighttpd/webpages/apps/images/current.png

Exec=/forlinx/web/lighttpd/webpages/shell/current.sh

Type=Application

ProgramType=gui

current.png是一个32×32的PNG 图标文件,可根据自己的需要制作并存于相应路径下。交叉编译生成的二进制文件current放于forlinx/qt/bin目录中。current.sh是编写的shell脚本,当用户点击界面图标时会自动执行脚本文件里的命令:

#!/bin/sh

if test -e /dev/fb0;

then

width=′fbset | grep ′geometry′ | awk ′{print $2}′′

height=′fbset | grep ′geometry′ | awk ′{print $3}′′

let height=height-38

geo=′echo $width\x$height+0+0′

fi

pidof matrix_gui > /dev/null 2>&1

if [ $? == 0 ]

then /forlinx/qt/bin/serial -geometry $geo$*

else

export TSLIB_TSDEVICE=/dev/input/touchscreen0

export QWS_MOUSE_PROTO=Tslib:/dev/input/touchscreen0

/forlinx/qt/bin/current -qws -geometry $geo$*

fi

如果需要开机自动运行程序,可以编辑启动时的执行文件/etc/init.d/rcS,将启动程序路径和可执行应用程序名添加到这里,就可以实现系统启动时程序的自动运行,在嵌入式主板上运行效果如图5所示。

4 结语

嵌入式系统的实时性、高可靠性以及友好高效的GUI被广泛用于工业控制当中。基于Qt/Embedded设计的嵌入式控制界面实现了与单片机的串口通信、文字的编辑、控件的载入和显示、数据的保存记忆、软键盘的调用等功能。本文根据光纤激光器泵浦源的特点,以设计泵浦源驱动的人机交互界面为前提,结合用户需求和Qt/Embedded 特点来开发嵌入式控制面板。详细介绍了基于Qt/Embedded的嵌入式应用程序的开发过程,并成功移植到嵌入板中控制LD正常工作。

图5 在主板上的运行效果图
图5 在主板上的运行效果图

【分页导航】


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

Qt/Embedded? 光纤激光器? 半导体?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈