基于Android的智能导览系统设计与实现
目前在博物馆浏览展品或在大商场购物,人们对于展品或产品信息的了解主要通过服务人员或者静态标牌指示,但这些已经满足不了人们多方面便捷浏览的需求,因此提出了基于Android的智能导览系统。该系统的设计采用了节点上传数据的过滤、数据解码以及再合成、临近新节点时提示返回等技术。实验结果表明,该导览系统实现了对展品或产品信息的便捷浏览,具有很强的实用性。
随着物联网技术和人工智能的大发展,人类社会从工业化向信息化过渡的趋势越来越明显,人们对信息化生活的意识和追求愿望越来越强。通过智能终端应用软件,可以很容易的查询和浏览信息资源,然而在日常生活中,不管是在博物馆浏览展品还是在大商场购物,人们对于展品或产品的信息缺乏自主或直观的了解,大多还是靠服务人员或静态的标牌指示,这不能满足人们多方面的便捷阅览需求,大大影响了浏览效率。试想未来的商场只要配发你一张存储卡,安装在智能移动平台上通过智能导览的应用软件就能自主的浏览选择适合自己的产品那是件多么惬意的事。“智能导览”是基于物联网发展和人工智能发展的理念之上,平台上的 Android 应用软件是结合硬件系统的应用程序,该程序接受底层硬件(自由组网的ID节点)上传数据进行解码处理,自动分析ID节点位置的关系及远近信息,然后根据解码后的数据显示最近ID节点信息(信息动态更新),然后可以启动对应媒体阅览功能。
一、 系统总体结构与设计
1.1 系统需求分析
系统主要分为界面显示和数据处理两大部分。
1.2 系统处理流程设计
系统的核心是界面显示和数据处理两部分,下面以它们所对应的功能模块为主线来描述整个系统的主要运行流程。
二、 主要技术的实现
系统运用了智能终端平台开发中的技术,如节点上传数据的过滤、数据解码,以及再合成、临近新节点时提示返回等方面:
⑴ 节点上传数据的过滤,这里的过滤主要是对信号强度而言的,节点反馈的数据帧包含信号强度值。由于硬件或其他外界干扰节点反馈的信号强度不稳定,例如偶尔远的节点信号反而比近的节点信号要强,所以不能用绝对过滤的方法。经过测试,较远节点的信号强度从宏观时间段来看小于较近节点,仅偶尔出现异常。所以这里利用相对比较过滤法,即不断的将所有节点的 RSSI 值进行比较,保留最大值。与此同时,保留绝对过滤法,由于数据动态变化,两种过滤法结合后基本上就剔除了异常。
⑵ 数据解码以及再合成,上传的数据是按照特定协议组成的数据帧,数据帧包含了所有节点的相关信息(节点类型、节点状态、节点 ID 号以及 RSSI 值等),程序要对这些数据进行分解处理,分解处理结束还需要再次合成可供显示的列表信息。数据的分解不能有一位出错,而且解码的同时要做数据类型的转换,解码后进行 RSSI 过滤,过滤后的再次合成所有信息必须不失同步性。这里建立一个数据库类,数据读取进来解码后把每一个节点的所有信息整体存入数据库,过滤时动态更新数据库。
⑶ 临近新节点时提示返回,移动终端平台的位置是不断变化的,当用户靠近新的节点时正在浏览原节点的媒体信息,需要给予信息提示,考虑到程序的稳定性和内存暂用,不可能在每一个 Activity 中都新建一个串口数据读取的线程,这里利用 Android 的广播(Broadcast)与接受功能,在主界面串口数据读取处理的同时发送广播信息,在图文和视频界面实现程序中仅需要接受这个广播信息和原节点ID号比较,然后根据判断结果提示返回
三、 实施效果表述分析
系统的特点在于能够以智能的方式查询和浏览模块名称数据帧读取模块数据解码模块数据过滤模块数据转换模块滚动字幕模块图片加载模块图片处理模块视频处理模块反向控制模块退出应用模块列表建立模块主界面显示模块图文显示模块视频欣赏模块标识符Serial PortZigbee PackageRssi_maxConvert HelperMarquee TextImage AdapterGallery FlowMedisplayCommand Builderon Key DownBuild ListIntelligent BroswingAllshowAllmovie模块描述读取串口数据帧分解出数据帧包含的各类节点信息过滤出最近节点数据提供各类数据类型的相互转换实现Allshow界面的滚动字幕从SDcard加载图片文件实现图片拨动浏览以及美化显示效果从SDcard加载视频文件并做控制处理实现智能插座的开关控制处于主界面时点击返回或Home键时提示退出主程序建立信息列表,为信息显示做准备动态刷新并显示出节点图标实现点击主界面图标后出现文字和图片浏览界面,不同的节点对应不同的浏览信息实现点击 Allshow 界面的纪录片图标后呈现视频欣赏界面,不同节点对应不同视频信息。
3.1 富交互页面的关键技术
在线课程的前端基于Bootstrap框架等,服务端基于Node.js,关键技术如下。⑴ 基于Ace Editor的高度定制编辑器:ACEEditor 是一款开源的强大的 Web 端代码编辑器,提供丰富的编辑特性、配置选项及控制接口。⑵ 基于 SVG(可缩放矢量图形)的可交互动态图:图形化逐步演示动态执行过程(如图 1 右侧)正是基于SVG的强大绘制功能,用户交互时可实时绘制。⑶ 远程编译执行:在线运行代码时将代码上传到服务端,服务端提供远程编译功能,支持并发编译,并提供一系列安全检查控制机制,保证远程执行安全。⑷ 用户访问数据分析:记录学生的完成情况并进行统计分析,将评估结果反馈给学生,并基于评估结果推荐练习题目。
四、结束语
目前,富交互型 C 语言在线课程的设计思路相对成熟,表现形式基本稳定,部分实现技术已经模块化。在线课程部署到云主机后,经过近几年的运营,获得了学生的好评,成为学生课余学习的有力助手。富交互型在线课程需要深入挖掘课程的知识点,以合适的形式在线呈现给初学者去体验,这对课程的策划及制作提出了较高的要求。下一步将进行平台化建设,扩充课程形成体系,开发 Java、Fortran、C#等初学者入门编程语言在线课程,开发数据结构、图形学、游戏开发等交互特性突出的在线课程,继续在富交互型在线课程的制作上进行探索。