2021年5月12日

智能导览系统的设计与实现

作者 讲解员

随着人民物质文化生活的日益丰富,传统的导游导览模式已经不能满足游客参观游览的需求,基于物联网、无线通讯技术的新型智能导览系统已成为研究热点。本文通过了解相关背景及国内外研究现状,分析导游导览研究领域相关技术的优缺点,针对新型智能导览系统的应用场景及功能需求,设计合理的系统总体结构和框架,实现了集介绍、导览为一体的智能导览系统。该导览系统由智能移动终端、服务器管理软件以及两者间的数据链路组成。其中智能移动终端为手持移动设备,直接为游客提供导览服务。服务器管理软件是展馆内所有展品信息的数据维护平台。服务器端与智能移动终端间的数据交互通过数据链路实现。该系统能为游客提供智能导览服务,满足游客自主游览的需求,具有一定的理论创新和实践意义。

一、绪论

1.1课题研究的背景和意义
科普展览作为人民生活的重要组成部分肩负着普及科学文化知识、破除封建迷信思想、提高国民文化素质的重要任务,同时也是一个民族、一个国家对外宣传物质文明和精神文明的窗口。现今,伴随着科学技术的飞速发展,展览的新功能、新方式、新形态、新内容层出不穷。人们生活水平不断提高,在物质生活得到满足的同时也有丰富的精神追求,参观学习已经成为普通百姓日常生活的重要组成部分,而参观各类科普展览已成为人们节假日出行的热门选项。人们集中出行、展馆人流量大、人工讲解员不足、游客体验效果不理想等问题已日益凸显。目前,很多科普展览中仍在大量使用传统的导览终端如语音导览器、立式多媒体导览机。语音导览器具有小巧轻便,易于携带,经济实惠,维护成本低廉的优点,但仍存在存储空间有限、互动性不足、功能单一等不足。立式多媒体导览机展示内容为已经制作好的flash动画或视频,游客通过观看视频或触摸屏幕来了解相关内容。由于其位置固定,且同一时间只能让一位游客操作,降低了游客体验的随意性和自主性,这些问题影响着展馆的正常运作。本文结合游客强调导览系统个性化自主化的需求,设计并实现一个能集介绍、导览为一体的智能导览系统。该系统集成了物联网技术、计算机技术以及无线定位技术,能够根据参观者的位置展示相关展品信息,实现智能导览功能,满足游客自主游览的需求。
1.2国内外研究现状
二十世纪以来,无线通信技术得到了突飞猛进的发展,智能掌上设备的大规模普及以及无线网络的广泛应用,都为智能导览系统的研究与开发提供了有利条件。在国外,专家学者的不断研究使得基于智能终端的导览系统趋于成熟应用,尤其在欧美国家,很多展馆景点都使用这类系统进行导览。2004年,Li.D一41等人就开发了一个多媒体博物馆导览系统,该导览系统以PDA为平台,实现了识别展品标识,自动展示相关多媒体讲解信息的功能。2005年,Adriano
Albertit51等人实现了基于视觉的博物馆导览系统,识别算法通过比较图像上色相、亮度的差异对博物馆中的绘画展品进行识别。2007年,Bruns等人设计实现了名为“PhoneGuide”的博物馆导览系统,该系统通过运行在手机上的神经网络算法对博物馆中的展品进行识别,能有效提高识别速度。2010年7月美国自然历史博物馆推出了美国自然历史博物馆探索者(American Museum ofNatural History Explorer),这是一款基于ios苹果操作系统的博物馆导览系统。由于其功能强大,界面友好,推出之后得到了广泛的关注和用户的极大好评。这套导览系统不仅能帮助游客确定当前所在位置,同时具有路线导航功能。意大利的威尼斯和法国的特华都配备了由全球著名GPS生产厂商宇达电通公司推出的HOPPY导游系统,展区出租导览设备供游客使用。澳大利亚的墨尔本大学、加拿大的多伦多大学都实现了功能完备的虚拟校园导览系统。目前,国内展览行业的发展程度同国外相比仍有一定差距,很多景区的导览仍然单纯依靠人工完成,只有少数展馆景区配备了导览设备。针对游客体验效果不理想、导览设备落后等问题许多专家学者也在进行着不断的探索和创新。2008年杭州电子科技大学的章坚武教授实现了基于智能终端$3C2410的嵌入式GIS应用系统。通过结合嵌入式数据库Berkeley DB、QT/Embedded禾l数据挖掘等前沿技术完成了系统应用程序的编写,并最终实现了嵌入景区地理信息式导览服务。2010年北京科技大学孙黎明对基于二维码的展馆便携式游客导览系统进行研究,通过获取和识别各个展位的二维码基础信息,来实现游客的自行定位、路径诱导以及查询获取相关展位信息等功能。2011年北京民族大学完成了基于$3C2440A的校园导航系统,校外来访者通过该系统能快速浏览、平移、缩放地理信息,规划两地之间最佳路径方案,为校外来访者提供了方便、快捷的智能导航服务。
1.3主要研究内容
本文结合当前智能导览技术的发展情况,分析目标用户的功能需求,设计出一个适用于室内展馆的智能导览系统结构框架。开发智能移动终端实现展品标识自动识别、展示展品讲解信息功能。服务器端管理软件方便展馆工作人员对整个系统进行管理。完成数据链路的搭建,实现服务器与移动终端间的高速数据传输。

二、智能导览系统的总体设计

2.1智能导览系统的设计原则
在导览活动中,参观者占主体地位,智能导览系统的设计应以参观者的需求为主,同时兼顾系统经济实用性。本智能导览系统遵循了以下几个设计原则
(1)易操作性。参观者通过与导览设备交互,自主地选择自己感兴趣的展馆展厅进行参观,简单易学、易于掌握的智能导览设备对于该系统的推广至关重要。
(2)可靠稳定性。一套智能导览系统投入运行以后,可能被众多游客使用。而游客的认知程度不同,在使用过程中会出现许多不可避免的误操作。可靠稳定的智能导览系统能处理游客的误操作,保证系统的正常进行。
(3)美观性。当今时代,人们在追求功能实现的同时也逐渐重视审美需求,一部外形时尚美观、软件界面简单友好的导览设备能够更好的被大众接受。
(4)可扩展性。伴随着旅游业的迅猛发展,展馆展区的规模也在不断扩大。传统意义上的导览系统只针对单一需求实现,不能进行更新和扩展。具有扩展性的智能导览系统有更大的经济效益。
(5)低功耗。在实际系统应用中,系统设备功耗低,经济实用,提高了移动终端的续航能力,保证了整个游览过程的连续性。
(6)实时性。系统要求移动终端能够根据游客位置实时地提供展品讲解内容,方便游客了解当前展品信息。
2.2智能导览系统需求分析
结合智能导览系统的设计原则,分析用户提出的系统需求,确定智能导览系统所应具备的功能需求和性能需求。本系统的应用测试场所为省内某室内展馆,展馆内有无线局域网络用于数据传输,展厅内展品间距较大。展馆的日均客流量约为500人次,游客参观整个展馆需要一个半小时。用户需求设计实现一套智能导览系统应用于展馆的日常导览,该系统通过定位技术能够实现展品识别,自动讲解相关展品内容,在紧急情况下向导览终端发布预报警信息。

2.2.1功能需求
(1)自动识别功能。智能导览系统移动终端能够通过定位技术,确定游客当前位置,展示相应展品信息。
(2)管理配置功能。在本系统中,工作人员通过管理软件对下设的智能导览终端进行监控和数据传输,同时维护展馆内所有展品信息。
(3)讲解介绍功能。移动终端展示的展品讲解信息包括音频、图片以及文字说明,形成多感官立体式导览,使讲解过程更加生动形象。
(4)接收展品信息。移动终端通过数据链路动态实时接收服务器端发送的展品信息。
(5)保存展品信息。为了满足导览系统实时性的要求,移动终端本地文件系统保存部分展品讲解内容,省去网络数据传输所带来的延迟,提高访问速度。
(6)预报警发布功能。展馆的管理工作人员可以通过服务器管理软件向移动终端发送预报警信息,告知紧急情况或提供找人服务。
(7)自启动功能。智能移动终端开机启动后,功能模块自动加载识别展品标识。
(8)安全保密。防止源代码泄露,维护开发者知识产权。
2.2.2性能需求
(1)展品信息在数据链路中的传输速率大于500K/S,实现高速传输。
(2)移动终端存储空间大于4G,方便保存展品信息。
(3)移动终端使用电池供电,一次充电可使用2小时。
(4)显示屏的分辨率为800*480,合理设计用户界面。
(5)展品的日均客流量约为500人次,智能导览系统同时在线200个终端。
2.3智能导览系统架构设计
智能导览系统采用传统的客户端.服务器结构

系统由服务器端、客户端及数据链路组成。客户端为智能导览手持设备,从展品电子标签上读取标识信息,由本地或服务器端获取展品信息进行自动讲解或展示,具体功能实现由底层内核程序和上层应用软件完成。为了满足系统安全保密的功能需求,底层内核程序运行在内核空间,当系统启动后,从串口设备文件获取展品标识信息并保存为系统内核变量,上层应用软件通过访问该变量来检索展示展品信息。内核程序随操作系统自启动运行,为了满足与串口设备文件加载的时间匹配需求,本文设计并使用时间定时器完成中断等待。为了提高展示速度,客户端一般从本地展品信息数据库提取展示信息,当信息不全时,以点对点的方式访问服务器端数据库。为了达到易操作、实时性、低功耗的设计目标,客户端硬件拟采用嵌入式系统,操作系统拟采用现在比较流行的Android系统,其内核为开源Linux,方便程序员的开发和使用,具有很强的发展潜力。同时Android操作系统依靠其人性化的操作和友好的用户界面在当今移动操作系统领域占据了很大的市场。选用Android作为操作系统也提高了软件的通用性,便于移植到其他Android设备上,增加了软件的经济效益。服务器端软件主要功能包括预警信息发布、展馆管理、展品信息管理及展品信息推送,由两部分组成:管理软件和展品信息数据库。展品信息数据库中分级保存着展馆内的展品信息,方便检索访问。系统管理软件是馆内展品信息录入保存管理的平台,具有展品信息添加、修改、删除等功能。当出现紧急情况时,展馆工作人员通过管理软件发布预报警信息,引导游客撤离危险区域。管理软件分四个子功能模块实现:展品信息添加模块、展品信息修改模块、展品信息删除模块以及预报警信息发布模块。

服务器端与客户端之间的数据传输通过数据链路实现,初始数据传输分以下三步完成:
(1)服务器端管理软件将展品讲解信息分组打包,通过UDP协议广播发送给客户端。
(2)客户端重组数据包,记录在传输过程中丢失的数据包,通过TCP协议将丢失的数据包信息发送给服务器端,要求服务器端重传丢失数据包。
(3)服务器端根据各个智能移动终端反馈的信息将丢失的数据包通过有连接的TCP协议重传,客户端接收并重组TCP回传数据包,还原成原展品讲解文件。点对点临时数据传输只用到了TCP协议。

3 智能导览系统终端的设计与实现
智能导览系统移动终端作为直接同用户交互的导览设备,应该具备易操作性和美观性的特点,同时应实现自动识别展品标识、讲解介绍的功能。智能导览终端由底层硬件、系统内核程序及上层应用软件组成。系统内核程序通过定位模块获取RFID电子标签上的展品标识,并保存到系统内核变量。上层软件通过内核变量读取模块读取系统内核变量,由展示展品信息模块完成展品信息的检索和展示。移动终端通过WIFI模块建立与服务器端展品数据库间的数据链路,以实现数据交百。

3.1智能终端硬件
为满足用户需求,本智能导览系统的硬件设计着重体现系统的可靠稳定性,器件选型突出低功耗。

(1)主控芯片CPU:智能移动终端的主控芯片CPU选用全志A10处理器,该处理器具有高性价比、高集成度、高性能、低功耗等特点。在移动处理器市场有很大的发展前景和竞争力,现在市面上的主流国产平板电脑大多搭载有AIO处理器。全志A10处理器采用55nm工艺,内核为Cortex.A8(32KB instruction,32KB ata cachesand 256K L2 caches),采用441pin 0.8mm pitch BGA封装,芯片体积小、低功耗、低发热并集成了多项领先技术。该芯片主要应用于智能电视一体机、网络机顶盒、智能手机、平板电脑、高清播放器等领域。
(2)电源管理单元(PMU):移动终端电源管理单元选用高集成度的AXP209芯片,它集成了一个具有白适应能力的USB—Compatible PWM充电器,五路线性稳压器,两路降压转换器,多路12.BitADC及四路可配置的GPIO接口。这些电源电路能够保证整个电源系统的安全稳定和有效运转。AXP209同时提供了一个可供应用处理器访问的两线串行通讯接口:Two WireInterface(TWI),应用处理器通过这个接口可以打开或者关闭某些电源输出,访问内部寄存器的电量。该芯片的智能电能平衡电路能在USB及外部交流适配器、锂电池盒应用系统负载之间安全透明的分配电能,并且能够保证应用系统在没有外部输入电源的情况下正常工作使用。该芯片为CPU CORE提供1.25V稳定电压,输出1.2V电压供给CPUINTERLOGIC。
(3)无线射频模块:本系统选用2.4GHz的CC2500芯片作为射频芯片,这是Chipcon公司针对工业、科研和医疗以及短距离无线通信设备领域开发的单片无线收发一体芯片。CC2500只有20个引脚,采用QLP封装,具有体积小,外围元器件简单,功耗低,灵敏度高的特点。能够保证很低的功耗工作在2.4GHz,且CC2500的灵敏度高于其他同类芯片。在接收到数据时,能够实现地址检测、缓冲处理、CRC校验、信息长度分析等功能。
现在CC2500被广泛的应用于无线传感网络、家庭和楼宇自动化、无线计量、无线报警安全系统、高级抄表架构等实际应用中。
(4)WIFI模块:该模块实现无线网络数据接收和发送。本文采用的芯片是TPLINK的TL—WN560G,该网卡是一款minipci网卡,兼容IEEE 802.1lg、IEEE 802.1lb标准,无线传输速率高达54Mbps,并且采用TP.LINK“域展”无线传输技术,传输距离是普通llb、119产品的2~3倍,传输范围扩展到4~9倍;支持64/128/152位WEP数据加密,同时支持WPA、IEEE 802.1X、TKIP、AES等加密与安全机制。
(5)串口:UART0提供标准的RX、TX两线串口,默认波特率为115200。
(6)TTL LCD:板载一个50pin FPC插座,可直接插入5寸800*480高清触摸LCD屏,用于显示展品讲解信息。
(7)USB HOST:该接口完全兼容2.0规范,能够支持high-speed(480-Mbps),提供VBUS输出时能,使用标准的A型USB插座。
(8)NAND Flash:选用4G Bytes MLC 64bit ECC NAND Flash,使用了4个CE信号和2RB信号,存储系统相关展品信息。
(9)DRAM:4片2G Bit 16位DDR3,构成32位1024M Bytes DRAM。

3.2定位模块
为了确定定位模块的设计方案,这里首先分析两大主流定位技术GPS和RFID的优缺点。GPS(Global Positioning System),是全球定位系统的简称。20世纪70年代,美国三军联合研制出了第一代卫星定位系统,主要应用于军事目的如情报侦测、核爆监测和应急通讯等。现在GPS系统已经被广泛的应用于车辆定位、防盗、行驶路线监控等应用领
域。GPS全球定位系统由空间卫星部分、地面部分、用户接受部分组成。该系统的定位原理是由运行在地球表面上空的24颗人造卫星持续不断的向地球表

面发射已经经过编码的无线电信号,这些信号中携带有发射卫星的星历信息和发出时间。地面用户移动手持设备上搭载有GPS接收模块,模块中的处理软件将分析和处理这些无线电信号计算出卫星与地面用户的相对距离,从而确定出地面用户的准确位置,实现定位。GPS导览系统最早应用于民用是在汽车上作为车载导航,实现车辆定位、车辆跟踪、交通管理等功能。现在GPS导航仪被广泛的应用于飞机、轮船等交通工到。同时基于GPS移动定位的导览系统在旅游业中也得到了广泛的应用,手持导览设备通过GPS定位可以实现地图查询、路线规划、自动导航等功能。RFID(Radio Frequency Identification)Jeer:简称射频识别,作为一种非接触式自动识别技术,可以通过无线电讯号不直接接触特定目标实现准确识别。十九世纪四十年代RFID诞生之后研究人员对这项技术进行了不断的创新和探索,到上世纪八十年代出现了最早的RFID应用。现在在生产装配、邮件包裹处理、文档查询追踪、图书馆管理、物流管理、电子门票、门禁系统中都应用了这项技术。RFID基本系统由电子标签、信号识别器和应用软件三部分组成‘。根据电子标签的不同分成两大类,被动无源型RFID和主动有源型RFID。
(1)被动无源型RFID:该RFID系统无法在电子标签与信号识别器之间实现数据信息双向交互。信号识别器发出射频信号,电子标签凭借感应电流所得到的能量向外发送存储的产品信息或相关数据。再由信号识别器接收读取并进行解码。

(2)主动有源型RFID:主动有源标签会主动地按照某一频率向外发送数据信号,其内部需要有电源供应能量。信号识别器可以通过射频信号向主动标签写入标识信息。

RFID技术主要应用在以下几个领域中:
(1)车辆管理。对持有有效电子标签的车辆不停车放行,使小区或停车场的管理更加智能化、人性化。
(2)物流管理。产品在进出仓库、交通运输的过程中可以自动采集读取电子标签上的标识,了解产品的流向,便于管理。
(3)电子门票。博物馆中参观者持有内嵌RFID标签的门票进入场馆,并随身携带。主办方可以通过多媒体终端了解每个参观者的位置。分析现在已经投入使用的GPS、RFID定位系统用户反馈,总结各自的优缺点如下:
GPS定位系统的优缺点:
(1)采用GPS作为定位技术,不需要架设其他外部设备,只使用GPS用户接受器就能完成定位工作,用户携带方便。
(2)GPS定位技术从军用到民用,已经发展成熟,应用领域广泛,在开发过程中有很多实例可以借鉴和参考;同时GPS定位技术的开发成本相对低廉,有利于大规模推广。
GPS定位技术存在这些优点的同时,也存在着应用的局限性和不足之处。当GPS定位系统应用于室内场景时,由于房屋的阻隔卫星信号减弱,这必然对GPS定位的精确度造成影响,定位效果降低‘201。
RFID技术在无线定位领域中的优缺点:
(1)低功耗,,电子标签无需保养,可长期使用。
(2)由于电子标签中的数据特征标识是唯一的,理论上RFID技术的标识识别正确率为100%。由于环境中存在电磁信号,RFID射频信号可能受到干扰,在这种情况下识别正确率也能稳定保持在95%以上。

但在实际应用中,当两个电子标签间的距离过近时,就会出现射频信号重叠的现象,导致射频接收器不能准确地识别出物品标识。本智能导览系统的目标场景为室内展馆,设定该系统的有效使用年限10年以上,同时展馆内展品间距较大。因此导览系统定位技术使用RFID更为实用。
3.3 内核模块
本系统设计中将程序关键代码编译成内核模块加载至0Android操作系统内核中,实现了对关键代码的隐藏。
3.3.1内核模块功能实现
本智能导览系统设计中,定位模块会将展品标识通过与之相连接的串口传递给内核模块。内核模块的主要功能是读取串口设备文件,获取并处理当前展品标识,写入系统内核变量方便上层应用程序访问。针对所要实现的主要功能,本文设计开发了包含初始化模块、读功能模块、展品标识处理模块以及写功能模块等四个子模块的内核模块。
(1)初始化模块
初始化模块在内核空间为其他功能模块创建运行环境,初始化中断等待队列,创建各线程,设置时间定时器等待操作系统设备文件加载。

(2)读功能模块
为了读取展品标识,这里设置了读线程thread read function(void*data),这个线程的工作是读取串口设备文件上的展品标识,对展品标识进行预处理,唤醒展品标识处理线 程 。 读 线 程 启 动 后 中 断 等 待 被 唤 醒wait_event_interruptible(thread_wait_queue,thread_wait:true)。当设备文件加载成功后,串口上的数据会被保存在设备文件中,使用内核读文件函数vfsreadO读取该设备文件里的内容,展品标识信息被保存在file buf new数组中,唤醒展品标识处理线程。
(3)展品标识处理模块
展品标识处理模块负责处理file buf new数组中的展品标识,并将处理后的数据写入系统内核变量,I扫openbrower线程完成。贴在展品上的RFID芯片按照一定频率持续不断地向外发射展品标识信号,这里通过比对前后两次接收到的展品标识来避免程序不必要的重复运行。因在内核空间中无法对系统内核变量重复赋值,当监测接收到新的展品标识后,程序将原有系统内核变量卸载,同时注册新自定义系统变量并用新展品标识为其赋值,实现修改自定义系统内核变量的功能。
(4)写功能模块
本智能导览系统的需求分析中并不需要通过串口对电子标签进行数据写入,但为了满足系统的可扩展性,添加写功能模块,为系统后续的功能丰富奠定基础。写线程thread write 的主要功能是向所使用的串口设备文件写入新的展品标_function(void*data)识数据,串口与射频接收器相连接,写入的展品标识直接传递给射频接收器,由射频接收器发送给电子标签,实现修改电子标签标识信息的功能。使用内核写文件函数vfs_writeO实现写入功能,中断等待写进程等待队YlJlog_wait_queue,当写入字符串准备好后,唤醒写线程,将展品标识写入串口设备文件。

3.3.2技术难点
在开发内核模块时,遇到三个问题:
(1)内核模块在用户空间开发,但运行在系统内核空间,由于平台环境不同,对开发编译以及调试功能造成困难。
(2)根据用户需求,内核模块要随Android操作系统启动自动加载,但其运行在Linux内核空间,启动加载不易实现。
(3)运行在用户空间的应用程序不能直接访问内核空间,不能实现内核模块与上层应用软件间的数据传输,为此需要使用系统功能实现交互。本人经过反复尝试与努力解决了上述问题,这里分编译内核模块、加载内核模块、内核模块自启动、内核空间与用户空间的交互等四部分内容介绍如下:
(1)编译内核模块
编译内核模块要使用Linux内核源代码、交叉编译链、内核文件及相对应的Makefile内核编译配置文件。其中Linux内核源代码和交叉编译链的下载及使用方法网上有很多可以借鉴,这里不做赘述。重点说明编写内核程序和内核编译配置文件的使用。KERNRLDIR配置编译过程中使用的LinuxI为核源码,ARCH指该程序的运行平台,CROSS COMPILE是交叉编译链的路径,这些参数的配置都与内核程序的编译密切相关。通过shell终端在包含内核程序和Makefile文件的目录下输入make命令,就会在相同目录下生成编译成功的内核模块木.ko文件。
(2)加载内核模块
开发内核模块的一般流程为:在用户空间编译内核程序,动态加载内核模块,以便调试功能并及时修改。程序功能完备后,静态加载内核模块,实现跨平台程序开发。将编程好的内核模块导入运行平台,如手机或模拟器,在目录下键入insmod木.ko实现动态的加载内核模块,调试其功能。静态加载内核模块时,在Linux t勾核源代码drivers目录里创建白定义目录test,该目录包含三个文件,分别是test.C、Kconfig、Makefile。其qbtest.C为内核程序文件,Makefile
是编译配置文件,Kconfig是内核配置文件。

(3)内核模块自启动
根据本智能导览系统的需求,移动终端要随开机自动加载内核模块,识别电子标签。Android操作系统启动开机流程:
A)载入BIOS信息,并取得第一个开机装置的代号
B)读取第一个开机装置的MBR(Master Boot Record)主引导记录中的Boot Loader(grub)开机信息
C)载入操作系统内核信息,解压内核,尝试驱动硬件启动
D)内核开始执行init程序并同时获得run.1evel信息
E)Init程序执行/etc/rc.d/rc.sysinit
F)启动内核外挂模块(/etc/modprobe.conf)
G)Init程序执行run.1evel中的各种Scripts,启动所有相关服务
H)Init程序执行/etc/rc.d/rc.10cal
I)执行/bin/login,等待用户登录

J)登录后进入Shell终端

3.4上层软件
本文利用eclipse开发环境编写了客户端上层软件,eclipse开发环境是一款开源的、基于java的n–J”扩展开发平台。在这一开发平台上下载Android的sDK进行开发,方便易行。同时eclipse还集成了可以配置使用的模拟器用于软件调试,可以根据自己的需要建立模拟器,对于没有硬件设备支持的项目尤为重要。智能移动终端上层软件负责读取用户自定义的系统内核变量,实现对内核空间的访问,根据访问得到的标识信息确定相应展品,将相关的展品讲解信息呈现给参观者,实现智能导览的功能。
3.4.1图形界面设计
智能移动终端上层软件基于Android浏览器开发㈣,展品讲解信息为html文件,每个展品都对应一个index.html文件,在html文件中嵌入图像或者声音文件实现多感官全方位导览,方便实用。上层软件的图形界面作为最终将展品讲解信息呈现给游客的窗口,应具备简单美观的特点,本系统上层软件界面设计使用一个webview控件作为窗体显示展品讲解信,自,html文件,html中内嵌flash文件,图像语音讲解内容通过flash展现,实现导览功能。

3.4.2软件功能实现
移动终端上层软件的功能是读取已经保存成自定义系统内核变量的展品信息标识,通过识别展品信息标识,调用相应的展品信息展现在浏览器的WebView里面,这样参观者就能从终端的屏幕上了解到展品的相关信息,同时也可以从耳机中听到展品的语言讲解,实现智能导览的功能。

4 智能导览系统服务器端的设计与实现
智能导览系统服务器端运行管理软件,该软件作为馆内展品信息录入保存管理的平台,具有展品信息添加、修改、删除等功能。当出现紧急情况时,展馆工作人员通过管理软件发布预报警信息,引导游客撤离危险区域。
4.1服务器端展品信息文件系统设计
为了快速准确检索展品信息,需要在服务器端建立展品信息文件系统,这里分别介绍展品信息文件系统结构、展品目录命名原则、描述信息的主要内容等三个方面。智能导览系统服务器端文件系统设计为四层结构,分别是t展层、展厅、展区和展品。层级之间属于包含关系,例如一个展层包含多个展厅,在服务器端硬盘空间表现为目录,一个展层目录下存在多个展厅目录,以此类推。软件界面上,展品信息文件系统使用树形结构表示,每个展品目录在软件界面上都与一个树形节点相对应。管理软件初次架设或初始化后在展品信息文件系统中只有展馆一个节点,管理员不断添加新的下层展品信息节点完成对整个展馆展品信息的录入保存。

4.2服务器管理软件的功能实现
如前所述,管理软件中展品信息文件系统层级使用树形结构表示,展馆工作人员右击树形节点弹出右击菜单,选择相应选项进行展品信息的添加、修改和删除,每个操作都伴随着相关树形节点的添加、修改和删除。微软在MFC中已经提供了关于树形结构的相关操作函数,当需要不同的功能时调用相应函数完成,简单方便。该软件的主要功能包括添加、修改、删除展品节点以及发布预报警信息。
4.2.1展品信息修改模块
代码如图4.3所示,修改展品讲解信息在OnModifytreeitem()函数中实现。MFC中已经包含了对树形节点的一系列操、作。HTREEITEM hltem=Tree Ctr.GetSelectedltem0函数获取当前树形节点句柄。自定义函数GetFullPath()返回该树形节点所对应的硬盘空间文件夹路径。将新展品信,ghtml文件、flash文件重新添加在硬盘空间的对应文件夹里面,覆盖掉之前的文件。并更新展品的修改时间,生成新的展品信息描述文件,完成展品信息的修改和更新功能。

4.2.2展品信息添加模块
展馆工作人员点击管理软件中的树形节点向其下层添加新节点。例如点击某展层,向该展层添加内部展厅。由于展品信息文件系统分四层,不能向展品节点下层添加新节点。获取树形节点句柄判断当前节点是否为最底层的展品节点,如果是则提示无法创建新节点。反之,获取新节点在展品信息文件系统中的添加路径,同时在上层目录的描述文件中添加新节点的标识,通过SaveFile函数将html文件、flash文件、节点描述文件保存到服务器端的文件系统中。

4.2.3展品信息删除模块
展品在移除、损坏、返库等情况下,相应信息需要从文件系统中删除,以保证服务器端文件系统的稳定安全。

4.2.4预报警信息发布模块
在实际应用中,往往会遇到游客找不到同伴,某一展区发生火灾等突发事件,需要展馆工作人员通过管理软件向智能移动终端发布预警信息或找人信息。展馆工作人员在上层管理软件操作界面中输入要发送的预报警字符串,点击预报警信息发送按钮,实现对所有下设智能移动终端发送信息的功能。管理软件使用UDP的广播通信对下设所有智能移动终端发送预报警消息。

5 智能导览系统数据链路的设计与实现
本智能导览系统智能移动终端与服务器管理软件处在同一无线局域网中,通过无线网络实现数据传输。
5.1数据链路总体设计
为了满足用户需求,这里在研究TCP协议、UDP协议技术特点及分析其应用领域和适用场景的基础上,确定合适数据链路设计方案。
5.1.1 TCP与UDP的对比分析
TCP(Transmission Control Protoc01)传输控制协议,是一种面向连接的、基于字节流的可靠传输协议。在因特网协议族中,TCP层位于应用层和IP层之间。数据传输时,可靠的应用层要将用于传送的数据流发送给TCP层,TCP层将接收到的数据流根据自身网络数据链路层的最大传送单元或用户设定的长度组成报文段。这些报文段被传送给IP层,最终由IP层发送给目标主机接收端。TCP协议是一种可靠的、有连接的的传输控制协议。在传输数据前要先建立连接,连接建立好后才能进行数据传输。同时TCP的通信方式还有以下几个特点:
(1)在链路状况不理想的情况下,能够减少因重传所带来的带宽开销。
(2)通信的连接是建立在两点上的,这样就不必考虑在整个数据传输过程中的中间节点情况。
(3)TCP协议时基于数据流的传输模式。为了实现这些目的,TCP协议做出许多规定来制约在链路中传递的数据流,这其中包括以下内容:
(1)数据排序:通过链路传递的数据包在传递过程中可能会打乱原来的顺序,TCP协议能够根据数据包上的序号进行重新排序,将排序好的数据传递给上层的应用层。
(2)数据校验:TCP协议将数据校验码和有效数据一同发送出去,目的是为了防止在传输过程中有效数据出现差错,接收端在接收到数据包时要根据有效数据计算出数据校验码,若与发送的数据校验码不相同,则认定这个包发送错误,丢弃此包,要求重传。
(3)滑动窗口:TCP接收端在接收数据时首先要将接收到的数据放在接收缓冲区,接受缓冲区的大小固定,接收端只能接纳固定大小的数据。传输速度过快会导致接收缓冲区溢出,造成数据丢失。TCP发送端使用滑动窗口机制,一方面控制链路中数据流量,另一方面也会防止接收缓冲区溢出。UDP(User Datagram Protoc01)用户数据包协议,是一种面向无连接的非可靠传输层协议,提供的是面向事务的无序、无流量控制的简单信息传送服务,同样位于应用层和IP层之间。在实际数据传输中,虽然UDP不提供数据包的分组、按序组装、排序等功能。但是,在众多B/S模式网络应用中都使用UDP协议,它仍然是一种非常实用且用途广泛的传输层协议。UDP是一种不可靠、无连接的协议,因此在数据传送的过程中,在源地址与目的地址之间不存在逻辑连接,所以UDP具有以下几个特点:
(1)数据传送的过程是以报文投递的形式发送,不存在像TCP那样的流的概念。
(2)UDP在传输时由于其头部字节较少,所以在实际传输时UDP的传输效率高。
(3)UDP能很好的达到分发信息的效果,在广播通信的传输模式下,UDP能很好的将数据发送给每个接受者,同时不给自身主机造成很大的资源消耗。
(4)UDP不需要使用连接,不用像TCP那样进行连接的建立,连接的维护,在一定程度上提高了效率。TCP和UDP都是工作在传输层的协议,但是两者之间还是存在着许多的不同点,各自的适用场景也不同。

 

智慧展馆里智慧讲解的标配:导览系统  自动讲解器  分区讲解系统