当前位置:首页 > 触控技术 > 触摸屏论文
触摸屏论文

触摸屏自助点菜终端人机交互界面设计与实现

触摸屏自助点菜终端的设计与实现
颜泽球,廖晓东,涂钦
(福建师范大学物理与光电信息科技学院福建福州350007)

摘要:设计并实现了一种自助点菜终端,采用8寸液晶触摸屏作为人机交互界面,提供图文并茂的电子菜单。针对嵌入式系统存储空间的局限性,提出一种应用层软件与底层软件分离的存储运行方式。解决了大容量数据的存储与更新问题。采用开放源代码的图形用户接口软件Nano—X窗口系统,详细探讨了其配置与移植的方法。系统具有交互界面良好,易于生产维护的特点。

关键词:点菜系统;分离式存储;NaDO—X;GUI移植;嵌入式系统

中圈分类号:TP311.5 文献标识码:A 文章编号:1004—373X(2010)05—125—03

0 引言

    电子点菜系统,是随着餐饮业的智能化、信息化发展而出现的新一代产品。相对于传统的点菜服务方式,电子点菜具有高效、舒适的特点,有效地节省了人力资源,提高了服务的质量。一个典型的点菜系统由点菜终端、收银台管理系统和数据调度管理系统组成。根据应用场合的不同,目前较为流行的点菜终端主要分为两种。第一种采用单片机和无线模块实现,成本低,但是功能和界面较为简单,通信距离也较短,使用者一般是服务员。另外一种采用商业PDA和无线网卡实现,功能强大,界面华丽,操作方面,但成本较高,一般作为消费者自助点菜的终端,应用于中高档酒店。

    自助点菜终端给客户提供每道菜肴的名称、插图、介绍和价格等各种相关信息,这些信息随着菜单的变化实时更新。由于嵌入式系统的存储空间有限,大量的图片存储和实时更新成了点菜终端设计的一个难题。本文给出了一种自助点菜终端的软硬件实现方案,通过应用层与底层软件的分离存储设计,解决了大容量数据的存储更新问题,提高了批量生产升级效率。同时,采用开放源代码的自由软件开发,降低了系统成本。

1 系统结构

    终端的核心处理器采用ARM920T核的$3C2440芯片,其主频可达到400 MHz,外接64 MB SDRAM和64 MB FLASH。终端的硬件结构图如图1所示。其中,显示接口采用8寸TFT液晶屏LQ080V3DG01,像素640X480,为用户提供友好的电子菜单。用户通过触摸屏进行各种操作。系统首次启动时进行触摸屏的校准,管理员也可以通过长按校准按键进入校准模式。SD卡存放应用程序、相关的图片和字体等资源,系统支持的最大的SD卡容量为32 GB,可以很好地满足点菜终端的存储容量要求。终端与服务器的各种交互数据通过无线网卡传输。

 

图1硬件结构图
图1硬件结构图
 

    系统采用c/s模式设计,点菜终端作为客户端。数据调度管理中心为服务器。采用开放源代码的各层软件构成终端软件平台,节省了开发成本,软件结构如图2所示。Linux具有开放源代码、协议栈较完善、运行稳定和易于移植的优势,在嵌入式领域得到了广泛的应用。终端以嵌入式Linux作为操作系统,管理系统软硬件资源。Linux 2.6.29是2009年3月份发布的稳定的内核版本。根文件系统采用日志结构的文件系统JFFS2,用户可以对文件进行读写操作,在意外掉电时仍然可以保持数据的完整性,而不会丢失数据。

 

图2软件结构图
图2软件结构图
 

2 应用层与底层软件分离的存储管理策略

    每个终端设备都有自己的配置信息(设备ID号,IP地址,终端设备对应的餐桌的位置信息等),在系统正常工作前必须手动配置这些信息。一种解决的方案是,在终端安装完首次运行时,通过触摸屏手动配置这些信息。然而,在批量安装、升级或者重新规划终端设备的布局时,这种解决方式将大大降低工作效率。

    本文将应用程序以及相关的配置信息、图片及字体资源都存放于SD卡中,实现应用层软件与其底层软件的离存储。终端设备的系统目录结构如图3所示,/mnt/sdcard为SD卡的挂载点,terminal为交叉编译产生的应用程序文件。ipconfig为配置终端设备IP地址的Shell脚本,在系统启动时调用执行。devinfo文件存储设备的相关信息(餐馆的名称,包厢号,餐桌号等),由应用程序运行时读取。log.ini文件记录终端软件运行时的各种信息(启动、关闭的时间,异常状态的记录等)。终端的固件差异仅在于SD卡中ipconfig文件和devinfo文件,而这两个文件可以通过上位机软件批量生成。

图3文件系统目录结构
图3文件系统目录结构
 


    Linux启动时会加载启动配置文件/ete/init.d/rcS,可以通过修改该文件使系统启动时设置系统IP并加载应用程序。根据点菜终端的目录结构设置,在reS文件后添加如下两行:

/mnt/sdcard/ipconfig #配置终端IP
/mnt/sdcard/terminal& #启动应用程序

3 Nano—X的定制与移植

3.1 Nano~X介绍

    Nano—X是一个著名的开放源码的图形用户接(GUI)软件,原名microwindows,由于和微软的win—dows注册商标存在冲突,从2005年1月起改名为Nano—X Window System,其目的是把图形视窗环境引入到嵌入式平台和小型设备上。Nano—X采用C语言设计,有很好的可移植性,根据用户配置,其占用的内存资源在100~600 KB左右。Nano—X能在宿主机上仿真目标机,用户可以在普通个人电脑上开发和调试应用程序,大大提高了开发效率u州。

3.2 Nano~X的定制

    Nano—X的定制主要通过修改其源代码根目录下的config文件来实现。主要包括处理器平台、输入输出平台、图片支持和字体支持等选项。

    (1)处理器平台选项。Nano—X窗口系统支持X86,ARM,MIPS,PowerPC等多种处理器平,通过配置“ARCH—LINUX—ARM”和“ARMTOOLSPRE—FIX=arm—linux一”选择ARM处理器平台及其所使用的编译器。

    (2)输入输出驱动配置选项,包括显示驱动平台,屏幕大小和触摸屏支持,具体如下:Nano—X支持多种触摸屏设备,点菜终端的触摸屏设备为“/dev/h3600tsraw”,对应的Nano—X驱动接口类型为IPAQ—MOUSE。修改config文件的相关配置如下:

SCREEN—WIDTH -----640 #屏幕大小为640×480
SCREEN HElGHT 一480
FRAMEBUFFER=Y
#使用Linux的framebuffer作为图形引擎
IPAQMOUSE=Y #触摸屏驱动类型为Compaq iPAQ

    (3)图像支持选项。可支持bmp,gif,xpm,jPg,png和tiff格式的图片解码。如果要使用后三种格式的图片,需要额外添加相应的解码库。本系统的界面和菜肴的插图均采用24位bmp格式的图片,图像支持选项配置为“HAVE BMP SUPPORT=Y”。

    (4)字体支持选项。Nano—X自身支持12×12和16×16的中文点阵字体,但不包含对truetype矢量字体的解码支持,所以如果要使用其他样式的字体,或者使用可伸缩矢量字体,需要移植freetype解码库程序。

    修改config文件的相关配置如下:

HAVE—FREETYPE一2一SUPPoRT—Y
#使用Freetype2解码Truetype字体
INCFT2LIB=lib/libfreetype/include
#freetype头文件路径
LIBFT2LIB=Iib/libfreetype/Iib/libfreetype.a
#编译freetype生成的静态库文件
HAVE—HZK—SUPPORT=Y #支持HZK点阵汉字
HZK—FONT—DIR=’7fonts/chinese"
#字体文件的存放路径

    (5)应用程序的编译和运行方式。Nano—X是基于设备无关的图形引擎,使用Client/Server模式,客户端程序和服务器端程序时同一个设备上的两个不同进程,既可以分别编译成各自的应用程序文件,也可以通过修改配置选项“LINK APP INTO SERVER—Y”将客户端程序与服务器端程序直接链接成一个单独的应用程序。本文采用后者的编译和运行方式。

4通信协议

    点菜终端与服务器之间的通信过程如图4所示。

 

图4 系统通信流程
图4 系统通信流程
 

    终端首先向服务器发起会话连接请求,待服务器回应后建立连接。数据交互过程中,服务器回应终端每个数据包的接收处理状态。两者的通信在TCP/IP协议的基
础上,采用自定义传输层和应用层通信协议进行数据交互。应用层把各种业务数据组成消息包,把一个或者多个消息包组成应用包,并把应用包发送给传输层发送,或从传输层接收应用包,把应用包拆分成消息包,并处理各消息包数据。本系统采用一个消息包对应一个应用包,不对消息包进行组包。

    传输层的帧格式如图5所示。帧标识符包含会话建立请求标志,会话结束请求标志和应用包结束标志。

 

图5传榆帧格式
图5传榆帧格式
 

    终端对接收区数据的解释分为服务器应答用户消息包,服务器应答心跳消息包和终端软件升级命令消息包。系统每隔一段时间检测网络的连接情况,文中称该段时间为心跳间隔时间。当终端发送心跳给服务器,服务器会回应心跳,当终端在一定时间内未收到任何命令(包括心跳回应),终端可认为断线,主动断开连接,并根据自身的参数设置来决定是否重连。发送区由命令编码、菜肴的类别号、索引号和数量组成,描述用户的各种操作信息。

5 应用程序流程

    应用程序流程如图6所示。

 

图6软件流程图

图6软件流程图

6  结语

    电子点菜系统可以改善餐馆的经营策略、管理效率和服务质量,随着信息化的发展,将得到更为广泛的应用,有着广阔的前景。本文设计的自助点菜终端,具有通信速度快、可操作性强和便于维护特点,采用开放源代码软件设计,使系统的成本降低,更具有市场竞争力。

参考文献

[1]李剑.基于Linux的嵌入式点菜系统终端l-D].杭州:浙江大学,2006.
[2]王琳,余震虹,李鑫,等.基于ARM的嵌入式电子点菜系统的设计[J].微计算机信息,2009,25(5):105—107.
[3]孙建梅,曹新.基于Qt4的嵌入式点菜系统的设计与实现[J].微计算机信息,2009,25(11):101—108.
[4]郭元颖,梁清华,郭爽.基于无线局域网餐饮服务点菜系统的研究[J].辽宁工业大学学报:自然科学版。2009,29(1):21—23,29.
[5]李忠成,高惠燕.基于nRF24E1的无线点菜系统架构EJ].单片机与嵌入式系统应用,2007(4):61—63.
[6]王景景.无线点菜系统的设计与实现EJ].海南大学学报:自然科学版。2009,27(1):65—68,72.
[7]李振坤,蓝芳华.基于PDA的无线餐饮点菜应用系统的设计与实现[J].计算机应用研究,2006(2):189—190,
[8]吴升艳,岳春生,胡冰.嵌入式Linux系统下Microwindows的应用[J].单片机与嵌入式系统应用,2003(6):68—71.
[9]吴明晖.基于ARM的嵌入式系统开发与应用[M].北京:人民邮电出版社,2004.


相关文章
精彩评论:
0  相关评论