基于Android 无线直连的抢答系统

2014-04-29 17:14梁郁君
电脑知识与技术 2014年10期
关键词:参赛者客户端主持人

梁郁君

摘要:在各种知识抢答竞赛中,通常会遇到这样的一个问题:人工抢答容易犯错造成争议,辅助的抢答系统使用成本高、配置复杂、扩展性差等。市场急需一种使用成本较低,简单易用的抢答系统。该文设计和实现的现场抢答系统基于Android平台开发,利用无线直连(Wi-Fi Direct)技术,可以把各种无线智能设备接入系统。由于Android的流行和Wi-Fi设备的普及,系统除了保证抢答的准确性,易用性和通用性也优于各种有线的抢答系统。本系统可以兼容各种主流的Android智能设备,无需专门的硬件支持,使用成本比专门的硬件抢答系统更低。

关键词:抢答系统;Android;无线直连;Wi-Fi设备;Wi-Fi P2P

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)10-2253-04

Abstract: There are some usual problems on all kinds of knowledge contest: it's prone to error that determining the order of responder by manual; some Responder Systems are expensive、hard to deploy and extend。It's necessary to find some systems with low cost and easy to use. In this paper, a new Responder System is designed and implemented which based on Android operation system. It can connect all kinds of wireless smart devices with the help of Wi-Fi Direct technology. Duo to the popularity of Android and Wi-Fi the system is easier to be used and deployed than other wired Responder system in addition to ensure the accuracy of the order of responder. The system is compatible with a variety of Android start devices. It's cost less than other Responder System with dedicated hardware.

Key words:Responder System;Android;Wi-Fi Direct;Wi-Fi Devices;Wi-Fi P2P

传统的抢答竞赛采用的抢答系统一般采用专用的硬件设备[1]或者基于网络[2],不同的竞赛有不同的比赛需求,一般需要专门定制一套抢答系统。不同的抢答系统互不兼容,可重用性不高,需要专门的维护人员安装,配置和维护复杂,使用成本很高。导致现在很多一般性的比赛参赛者举手抢答,主持人人工判断结果,在竞争激烈的环节容易造成争议甚至影响竞赛的结果。因此急需一款容易使用、低成本的抢答系统,应用到日益增多的各种抢答竞赛中。

1 技术介绍

Android系统是目前市场上占有率最大的移动操作系统,几乎所有的Android设备都配置Wi-Fi模块。本系统基于Android平台开发[3],采用Wi-Fi Direct[4]技术实现设备之间的互联,能适用于各种Android设备,提高系统的通用性,降低使用成本和难度。

1.1 Wi-Fi Direct技术

Wi-Fi(无线保真)是一种能够将个人电脑、移动设备等终端以无线方式互相连接的技术,属于目前无线局域网(WLAN)的成熟技术,设备普及率很高。当前移动设备间通信和传输一般还是采用各自先加入到同一个无线路由器接入点(即AP:Access Point)下的局域网中,获取相应的动态IP 地址,然后两者之间可像在有线局域网下一样通信和传输数据。

Wi-Fi Direct标准在2010年首次由Wi-Fi联盟提出,是一种Peer- to-Peer (P2P)技术[5]。Android 4.0及以上的版本集成了Wi-Fi Direct接口。使用 Wi-Fi Direct,可以将 Wi-Fi 设备绕开AP进行直接连接。让用户使用一种更加简便的方式来完成设备间的通信和交互,设备不需要再接入传统网络、受限于Access Point的限制。Wi-Fi Direct 设备可以使用一对一方式来连接,也可以采取一对多的方式连接。经过Wi-Fi Direct 连接的设备,再断开后可以根据记忆功能实现快速的重新连接。使用Wi-Fi Direct连接的双方只需一方支持Wi-Fi Direct即可实现无线互联,可以同时支持基础设施网络和P2P网络。另外,至少符合802.11g协议的设备才可以通过Wi-Fi Direct CERTIFIED 验证。

在一对多的连接方式下,其中一台Wi-Fi Direct设备会作为 “群主”(GO:Group Owner),其他设备当作客户端设备(Group Client)。客户端设备既可以是传统设备也可以是支持Wi-Fi Direct的设备, Group Owner设备对于传统设备而言就是一个AP,一对一可以看作是一对多的特殊形式。图1展示了传统的Wi-Fi连接、一对一和一对多的Wi-Fi Direct的网络拓扑比较图。

1.2 开发平台

系统基于Android 4.0以上的系统,采用Java语言开发,通信协议采用TCP/IP协议。Wi-Fi Direct 设备采用 WPS(Wi-Fi Protected Setup?)方式保证通信的安全性[6],同时也简化设备连接的过程,用户可以选择使用 PBC 方式或者 PIN 方式来创建安全的连接。

2 需求分析

系统的用户包括主持人和参赛者,结合系统的设计目标,本系统分为管理模块和客户端模块。其中管理模块提供主持人所需要的所有功能,客户端提供参赛者所需要的功能。为了简化配置,管理模块和客户端模块集成在同一个Android应用中,不同用户在启动界面选择不同的功能入口。另外,运行管理模块的Android设备必须支持Wi-Fi Direct,作为Group Owner管理整个群组。

2.1 管理模块

比赛开始前,主持人需要接入一定数量的参赛者(设备),每台参赛者设备有唯一的标识符(可以手工输入或者自动生成)。主持人可以根据实际情况指定接入参赛者的数量,一般来说系统可以容纳的最大数量远远大于实际所需要的数量。

2.2 客户端模块

客户端使用者为参赛者,人工抢答的一般流程为:1. 主持人宣布抢答开始; 2. 举手应答;3. 主持人决定第一个抢答人;4. 回答并评定。把流程转到抢答系统后,可以整理成如下步骤:1. 主持人宣布抢答开始并启动抢答功能;2. 参赛者点击按钮进行抢答;3. 系统把抢答的顺序公布显示出来。主持人和参赛者需要的功能用例图如图2所示:

3 设计与实现

系统基本工作流程如下:

1)主持人启动管理模块,启动Wi-Fi Direct发现服务,建立群组

2)参赛者启动抢答模块,加入(1)所建立的群组,直到所有参赛者接入完毕

3)主持人向参赛者设备发出指令,启动抢答功能

4)参赛者点击按钮,向管理模块发送抢答请求

5)系统接收到抢答请求后,确定当前请求的顺序,并发回给参赛者,同时把所有顺序显示在管理界面

抢答系统分为管理模块(主持人端)和抢答模块(参赛者端),整体系统部署拓扑图如图3所示:

3.1 系统初始化/用户接入

系统采用Wi-Fi Direct的一对多模型,主持人作为Group Owner,其他所有参赛者作为客户端。系统初始化的任务是把所有用户都接入进来,主要分为两大步骤:参赛者设备(Group Client)发现并连接到Group Owner; Group Owner和参赛者进行握手操作,完成系统初始化。发现并连接的流程如下[7]:(1)扫描周围的Wi-Fi Direct设备,找到Group Owner;(2)发送P2P邀请,协商连接模式;设备建立连接。

Group Client和Group Owner建立连接后, 接着进行握手操作:(1)Group Owner启动Socket服务器,监听特定端口;(2)Group Client连接到Socket服务器并发送加入请求;(3)Group Owner根据请求,为Group Client分配标识符(ID),并发送给客户端;(4)Group Client接收ID并保存,进入就绪状态。

3.2 抢答环节

当参赛者准备就绪,主持人可以启动抢答功能。该功能实现思路为:管理模块通过TCP连接向所有参赛者客户端发送特定的加密指令;客户端接收到指令后解密并确认无误后,将抢答按钮转为激活状态;参赛者抢答的时候只需要点击按钮,客户端向管理模块发送抢答请求;管理模块接收到客户端的抢答请求后,同步显示到屏幕,并把当前顺序发送给所有客户端。客户端在抢答开始后,可以多次点击抢答按钮,管理模块只会保留最早发送过来的请求结果,后续的同一客户端同一次抢答的请求将会被忽略。当一次请求完毕后,主持人应该将抢答复位,所有客户端接收到指令后恢复初始状态。一次完整的抢答时序图如图5所示。

3.3 通信协议

系统通信底层基于TCP/IP协议,为了简化操作,应用层的消息格式采用简单的JSON格式,具体定义为:{“type”:“消息类型”,”from”:”客户端/管理模块”,”id”:”客户端标识符”,”data”:”其他数据”}。表1是具体的消息类型:

4 系统测试结果和分析

实验在2台Android 4.0.3,一台Android 4.4的手机上进行测试,4.4版本的手机充当Group Owner,另外两台手机作为客户端接入,测试距离在10米以上,比蓝牙的传输距离更大[8]。测试项目包括功能和性能。实验中3台手机接入后通信正常,图6是参赛者和主持人端的情况截图。性能方面,通信指令的时间延时在50毫秒以内,人工感觉不到延迟的现象,没有出现信息丢失的现象。另外在测试中需要保持手机屏幕常亮,抢答功能才能正常使用。

5 总结

Wi-Fi Direct标准出现不久,很多配套的标准和服务不完善,目前的大部分应用限于短距离分享文件,应用普及程度落后于其竞争对手蓝牙[9]。本系统利用Wi-Fi Direct构建一个简单且易用的现场抢答系统,和传统的Wi-Fi网络相比,可以避免AP的限制;和传统的基于电子电路的抢答器相比,无论是配置管理还是成本上有有着相当的优势。实验结果表明,系统完全能满足各种现场抢答活动的需求,在传输的距离和速率上比蓝牙更有优势。另外, 随着移动互联网的发展,智能手机的进一步普及,各种现场抢答竞赛的开展,本系统的优势会进一步体现。

参考文献:

[1] 梁燕菲.基于PLC控制和LED数码显示的六路抢答器系统设计[J].机电工程技术,2013(8):75-77.

[2] 李军,王斌,王东,周昶太.多功能抢答器设计与实现[J].软件导刊,2013(11):113-114.

[3] Android开发者网站[EB/OL]. http://developer.android.com/index.html.

[4] 李新苗.Wi-Fi点对点新技术支持设备直连[J].通信世界,2010,11(4):29.

[5] Wi-Fi Alliance. Wi-Fi Direct[EB/OL]. https://www.wi-fi.org/discover-wi-fi/wi-fi-direct.

[6] Wi-Fi Alliance. Wi-Fi Protected Setup[EB/OL]. https://www.wi-fi.org/discover-wi-fi/wi-fi-protected-setup.

[7] 曹硕.基于Wi-Fi直连的移动P2P联网及其应用[D]. 成都:电子科技大学,2012.

[8] 许翠苹.Wi-Fi Direct与蓝牙的狭路相逢[J].通讯世界,2010(12):44-47.

[9] IT168无线组网频道.Wi-Fi与蓝牙4.0对决:一场无硝烟战争[EB/OL]. http://wireless.it168.com/a2010/1029/1119/000001119703_all.shtml.

猜你喜欢
参赛者客户端主持人
主持人语
主持人语
主持人语
主持人语
劝退马拉松参赛者
害我受伤的小石头
追光花园
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现