梁郁君
摘要:在各種知識(shí)搶答競(jìng)賽中,通常會(huì)遇到這樣的一個(gè)問題:人工搶答容易犯錯(cuò)造成爭(zhēng)議,輔助的搶答系統(tǒng)使用成本高、配置復(fù)雜、擴(kuò)展性差等。市場(chǎng)急需一種使用成本較低,簡(jiǎn)單易用的搶答系統(tǒng)。該文設(shè)計(jì)和實(shí)現(xiàn)的現(xiàn)場(chǎng)搶答系統(tǒng)基于Android平臺(tái)開發(fā),利用無(wú)線直連(Wi-Fi Direct)技術(shù),可以把各種無(wú)線智能設(shè)備接入系統(tǒng)。由于Android的流行和Wi-Fi設(shè)備的普及,系統(tǒng)除了保證搶答的準(zhǔn)確性,易用性和通用性也優(yōu)于各種有線的搶答系統(tǒng)。本系統(tǒng)可以兼容各種主流的Android智能設(shè)備,無(wú)需專門的硬件支持,使用成本比專門的硬件搶答系統(tǒng)更低。
關(guān)鍵詞:搶答系統(tǒng);Android;無(wú)線直連;Wi-Fi設(shè)備;Wi-Fi P2P
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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
傳統(tǒng)的搶答競(jìng)賽采用的搶答系統(tǒng)一般采用專用的硬件設(shè)備[1]或者基于網(wǎng)絡(luò)[2],不同的競(jìng)賽有不同的比賽需求,一般需要專門定制一套搶答系統(tǒng)。不同的搶答系統(tǒng)互不兼容,可重用性不高,需要專門的維護(hù)人員安裝,配置和維護(hù)復(fù)雜,使用成本很高。導(dǎo)致現(xiàn)在很多一般性的比賽參賽者舉手搶答,主持人人工判斷結(jié)果,在競(jìng)爭(zhēng)激烈的環(huán)節(jié)容易造成爭(zhēng)議甚至影響競(jìng)賽的結(jié)果。因此急需一款容易使用、低成本的搶答系統(tǒng),應(yīng)用到日益增多的各種搶答競(jìng)賽中。
1 技術(shù)介紹
Android系統(tǒng)是目前市場(chǎng)上占有率最大的移動(dòng)操作系統(tǒng),幾乎所有的Android設(shè)備都配置Wi-Fi模塊。本系統(tǒng)基于Android平臺(tái)開發(fā)[3],采用Wi-Fi Direct[4]技術(shù)實(shí)現(xiàn)設(shè)備之間的互聯(lián),能適用于各種Android設(shè)備,提高系統(tǒng)的通用性,降低使用成本和難度。
1.1 Wi-Fi Direct技術(shù)
Wi-Fi(無(wú)線保真)是一種能夠?qū)€(gè)人電腦、移動(dòng)設(shè)備等終端以無(wú)線方式互相連接的技術(shù),屬于目前無(wú)線局域網(wǎng)(WLAN)的成熟技術(shù),設(shè)備普及率很高。當(dāng)前移動(dòng)設(shè)備間通信和傳輸一般還是采用各自先加入到同一個(gè)無(wú)線路由器接入點(diǎn)(即AP:Access Point)下的局域網(wǎng)中,獲取相應(yīng)的動(dòng)態(tài)IP 地址,然后兩者之間可像在有線局域網(wǎng)下一樣通信和傳輸數(shù)據(jù)。
Wi-Fi Direct標(biāo)準(zhǔn)在2010年首次由Wi-Fi聯(lián)盟提出,是一種Peer- to-Peer (P2P)技術(shù)[5]。Android 4.0及以上的版本集成了Wi-Fi Direct接口。使用 Wi-Fi Direct,可以將 Wi-Fi 設(shè)備繞開AP進(jìn)行直接連接。讓用戶使用一種更加簡(jiǎn)便的方式來完成設(shè)備間的通信和交互,設(shè)備不需要再接入傳統(tǒng)網(wǎng)絡(luò)、受限于Access Point的限制。Wi-Fi Direct 設(shè)備可以使用一對(duì)一方式來連接,也可以采取一對(duì)多的方式連接。經(jīng)過Wi-Fi Direct 連接的設(shè)備,再斷開后可以根據(jù)記憶功能實(shí)現(xiàn)快速的重新連接。使用Wi-Fi Direct連接的雙方只需一方支持Wi-Fi Direct即可實(shí)現(xiàn)無(wú)線互聯(lián),可以同時(shí)支持基礎(chǔ)設(shè)施網(wǎng)絡(luò)和P2P網(wǎng)絡(luò)。另外,至少符合802.11g協(xié)議的設(shè)備才可以通過Wi-Fi Direct CERTIFIED 驗(yàn)證。
在一對(duì)多的連接方式下,其中一臺(tái)Wi-Fi Direct設(shè)備會(huì)作為 “群主”(GO:Group Owner),其他設(shè)備當(dāng)作客戶端設(shè)備(Group Client)??蛻舳嗽O(shè)備既可以是傳統(tǒng)設(shè)備也可以是支持Wi-Fi Direct的設(shè)備, Group Owner設(shè)備對(duì)于傳統(tǒng)設(shè)備而言就是一個(gè)AP,一對(duì)一可以看作是一對(duì)多的特殊形式。圖1展示了傳統(tǒng)的Wi-Fi連接、一對(duì)一和一對(duì)多的Wi-Fi Direct的網(wǎng)絡(luò)拓?fù)浔容^圖。
1.2 開發(fā)平臺(tái)
系統(tǒng)基于Android 4.0以上的系統(tǒng),采用Java語(yǔ)言開發(fā),通信協(xié)議采用TCP/IP協(xié)議。Wi-Fi Direct 設(shè)備采用 WPS(Wi-Fi Protected Setup?)方式保證通信的安全性[6],同時(shí)也簡(jiǎn)化設(shè)備連接的過程,用戶可以選擇使用 PBC 方式或者 PIN 方式來創(chuàng)建安全的連接。
2 需求分析
系統(tǒng)的用戶包括主持人和參賽者,結(jié)合系統(tǒng)的設(shè)計(jì)目標(biāo),本系統(tǒng)分為管理模塊和客戶端模塊。其中管理模塊提供主持人所需要的所有功能,客戶端提供參賽者所需要的功能。為了簡(jiǎn)化配置,管理模塊和客戶端模塊集成在同一個(gè)Android應(yīng)用中,不同用戶在啟動(dòng)界面選擇不同的功能入口。另外,運(yùn)行管理模塊的Android設(shè)備必須支持Wi-Fi Direct,作為Group Owner管理整個(gè)群組。
2.1 管理模塊
比賽開始前,主持人需要接入一定數(shù)量的參賽者(設(shè)備),每臺(tái)參賽者設(shè)備有唯一的標(biāo)識(shí)符(可以手工輸入或者自動(dòng)生成)。主持人可以根據(jù)實(shí)際情況指定接入?yún)①愓叩臄?shù)量,一般來說系統(tǒng)可以容納的最大數(shù)量遠(yuǎn)遠(yuǎn)大于實(shí)際所需要的數(shù)量。
2.2 客戶端模塊
客戶端使用者為參賽者,人工搶答的一般流程為:1. 主持人宣布搶答開始; 2. 舉手應(yīng)答;3. 主持人決定第一個(gè)搶答人;4. 回答并評(píng)定。把流程轉(zhuǎn)到搶答系統(tǒng)后,可以整理成如下步驟:1. 主持人宣布搶答開始并啟動(dòng)搶答功能;2. 參賽者點(diǎn)擊按鈕進(jìn)行搶答;3. 系統(tǒng)把搶答的順序公布顯示出來。主持人和參賽者需要的功能用例圖如圖2所示:
3 設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)基本工作流程如下:
1)主持人啟動(dòng)管理模塊,啟動(dòng)Wi-Fi Direct發(fā)現(xiàn)服務(wù),建立群組
2)參賽者啟動(dòng)搶答模塊,加入(1)所建立的群組,直到所有參賽者接入完畢
3)主持人向參賽者設(shè)備發(fā)出指令,啟動(dòng)搶答功能
4)參賽者點(diǎn)擊按鈕,向管理模塊發(fā)送搶答請(qǐng)求
5)系統(tǒng)接收到搶答請(qǐng)求后,確定當(dāng)前請(qǐng)求的順序,并發(fā)回給參賽者,同時(shí)把所有順序顯示在管理界面
搶答系統(tǒng)分為管理模塊(主持人端)和搶答模塊(參賽者端),整體系統(tǒng)部署拓?fù)鋱D如圖3所示:
3.1 系統(tǒng)初始化/用戶接入
系統(tǒng)采用Wi-Fi Direct的一對(duì)多模型,主持人作為Group Owner,其他所有參賽者作為客戶端。系統(tǒng)初始化的任務(wù)是把所有用戶都接入進(jìn)來,主要分為兩大步驟:參賽者設(shè)備(Group Client)發(fā)現(xiàn)并連接到Group Owner; Group Owner和參賽者進(jìn)行握手操作,完成系統(tǒng)初始化。發(fā)現(xiàn)并連接的流程如下[7]:(1)掃描周圍的Wi-Fi Direct設(shè)備,找到Group Owner;(2)發(fā)送P2P邀請(qǐng),協(xié)商連接模式;設(shè)備建立連接。
Group Client和Group Owner建立連接后, 接著進(jìn)行握手操作:(1)Group Owner啟動(dòng)Socket服務(wù)器,監(jiān)聽特定端口;(2)Group Client連接到Socket服務(wù)器并發(fā)送加入請(qǐng)求;(3)Group Owner根據(jù)請(qǐng)求,為Group Client分配標(biāo)識(shí)符(ID),并發(fā)送給客戶端;(4)Group Client接收ID并保存,進(jìn)入就緒狀態(tài)。
3.2 搶答環(huán)節(jié)
當(dāng)參賽者準(zhǔn)備就緒,主持人可以啟動(dòng)搶答功能。該功能實(shí)現(xiàn)思路為:管理模塊通過TCP連接向所有參賽者客戶端發(fā)送特定的加密指令;客戶端接收到指令后解密并確認(rèn)無(wú)誤后,將搶答按鈕轉(zhuǎn)為激活狀態(tài);參賽者搶答的時(shí)候只需要點(diǎn)擊按鈕,客戶端向管理模塊發(fā)送搶答請(qǐng)求;管理模塊接收到客戶端的搶答請(qǐng)求后,同步顯示到屏幕,并把當(dāng)前順序發(fā)送給所有客戶端??蛻舳嗽趽尨痖_始后,可以多次點(diǎn)擊搶答按鈕,管理模塊只會(huì)保留最早發(fā)送過來的請(qǐng)求結(jié)果,后續(xù)的同一客戶端同一次搶答的請(qǐng)求將會(huì)被忽略。當(dāng)一次請(qǐng)求完畢后,主持人應(yīng)該將搶答復(fù)位,所有客戶端接收到指令后恢復(fù)初始狀態(tài)。一次完整的搶答時(shí)序圖如圖5所示。
3.3 通信協(xié)議
系統(tǒng)通信底層基于TCP/IP協(xié)議,為了簡(jiǎn)化操作,應(yīng)用層的消息格式采用簡(jiǎn)單的JSON格式,具體定義為:{“type”:“消息類型”,”from”:”客戶端/管理模塊”,”id”:”客戶端標(biāo)識(shí)符”,”data”:”其他數(shù)據(jù)”}。表1是具體的消息類型:
4 系統(tǒng)測(cè)試結(jié)果和分析
實(shí)驗(yàn)在2臺(tái)Android 4.0.3,一臺(tái)Android 4.4的手機(jī)上進(jìn)行測(cè)試,4.4版本的手機(jī)充當(dāng)Group Owner,另外兩臺(tái)手機(jī)作為客戶端接入,測(cè)試距離在10米以上,比藍(lán)牙的傳輸距離更大[8]。測(cè)試項(xiàng)目包括功能和性能。實(shí)驗(yàn)中3臺(tái)手機(jī)接入后通信正常,圖6是參賽者和主持人端的情況截圖。性能方面,通信指令的時(shí)間延時(shí)在50毫秒以內(nèi),人工感覺不到延遲的現(xiàn)象,沒有出現(xiàn)信息丟失的現(xiàn)象。另外在測(cè)試中需要保持手機(jī)屏幕常亮,搶答功能才能正常使用。
5 總結(jié)
Wi-Fi Direct標(biāo)準(zhǔn)出現(xiàn)不久,很多配套的標(biāo)準(zhǔn)和服務(wù)不完善,目前的大部分應(yīng)用限于短距離分享文件,應(yīng)用普及程度落后于其競(jìng)爭(zhēng)對(duì)手藍(lán)牙[9]。本系統(tǒng)利用Wi-Fi Direct構(gòu)建一個(gè)簡(jiǎn)單且易用的現(xiàn)場(chǎng)搶答系統(tǒng),和傳統(tǒng)的Wi-Fi網(wǎng)絡(luò)相比,可以避免AP的限制;和傳統(tǒng)的基于電子電路的搶答器相比,無(wú)論是配置管理還是成本上有有著相當(dāng)?shù)膬?yōu)勢(shì)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)完全能滿足各種現(xiàn)場(chǎng)搶答活動(dòng)的需求,在傳輸?shù)木嚯x和速率上比藍(lán)牙更有優(yōu)勢(shì)。另外, 隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,智能手機(jī)的進(jìn)一步普及,各種現(xiàn)場(chǎng)搶答競(jìng)賽的開展,本系統(tǒng)的優(yōu)勢(shì)會(huì)進(jìn)一步體現(xiàn)。
參考文獻(xiàn):
[1] 梁燕菲.基于PLC控制和LED數(shù)碼顯示的六路搶答器系統(tǒng)設(shè)計(jì)[J].機(jī)電工程技術(shù),2013(8):75-77.
[2] 李軍,王斌,王東,周昶太.多功能搶答器設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2013(11):113-114.
[3] Android開發(fā)者網(wǎng)站[EB/OL]. http://developer.android.com/index.html.
[4] 李新苗.Wi-Fi點(diǎn)對(duì)點(diǎn)新技術(shù)支持設(shè)備直連[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直連的移動(dòng)P2P聯(lián)網(wǎng)及其應(yīng)用[D]. 成都:電子科技大學(xué),2012.
[8] 許翠蘋.Wi-Fi Direct與藍(lán)牙的狹路相逢[J].通訊世界,2010(12):44-47.
[9] IT168無(wú)線組網(wǎng)頻道.Wi-Fi與藍(lán)牙4.0對(duì)決:一場(chǎng)無(wú)硝煙戰(zhàn)爭(zhēng)[EB/OL]. http://wireless.it168.com/a2010/1029/1119/000001119703_all.shtml.