首页 >> >> 滚动 >> 正文
基于Wi-Fi的旅游团脱团预警系统的设计与实现
通信世界网
作者:       2016年11月8日 13:46
Wi-Fi 无线传输技术 旅游团

(3)数据接收。数据接收子模块根据应用层发来的参数,决定是否接收驱动层发送上来的数据,以及接收数据后,将数据以怎样的格式打印到控制台。数据接收子模块是连接驱动和应用层的一个核心模块,需要实时监听驱动层送来的探针数据,又可以接收用户设定的参数,将一些参数通过数据广播子模块设定进内核并驱动。该模块目前接收两个主要的用户设置参数,一是监听探测数据,二是设置RSSI的值。

2.数据处理模块数据处理模块调用数据侦听模块,获取数据侦听模块打印到控制台的数据,通过脚本将需要的探测帧的数据过滤出来,为每条数据打上时间戳,并进行简单的加密处理,最后将处理好的数据写入本地文件,保存在固定路径中。

客户端将每隔一定时间请求路由器端的数据,通过FTP登录路由器,下载指定路径中的文件,对文件进行解析后获得所需的数据。

关键技术

1.利用Wi-Fi探针监测获取原始数据 802.11协议可以支持利用Wi-Fi探针实现监测周围终端的功能。协议要求每个AP(Access Point)每隔一定时间(几十毫秒到几秒不等)向周围的终端广播beacon帧,告知周围终端自己的信息,并通知终端可以连接。每个终端除了监听周边AP发送的beacon帧以外,还会发送probe帧,告知AP自己的MAC地址,并请求连接。

一般的无线路由器信号强度在-30dbm~-120dbm,有效距离大概是50~100米。利用路由能够搜索周围终端的MAC地址。路由收到探测帧后,将MAC地址记录下来,生成“MAC地址-信号强度-时间”格式的原始数据,将其保存成文本文件,等待服务器定时下载,进行处理分析。

2.通过处理原始数据进行脱团预警在本文的监控系统中,脱团预警是通过比对原始数据与白名单中的数据实现的。在智能路由器端,每隔一定时间刷新一次原始数据并写入文件保存;在客户端,每隔一定时间下载一次原始数据文件,并与白名单中的数据进行比对,如果发现白名单中的某个MAC地址没有在原始数据文件中出现,则发出警告。

由于原始数据量较为庞大,而白名单通常只有十几个到几十个,因此我们采取的比对算法如下:

(1)将客户端本地保存的白名单复制到哈希表中,以MAC地址为key;

(2)遍历原始数据,每条MAC地址均在哈希表中查找,如果找到该条地址,则将该条地址从哈希表中移除;

(3)如果哈希表长度变为0,说明所有白名单中的地址均在原始数据中出现,比对结束;

(4)如果原始数据遍历完毕,则哈希表中剩余的地址为未出现的地址,发出脱团预警。

在白名单长度不太长的情况下,哈希表的性能不会有太大降低,可近似认为每次查找的时间复杂度为O(1),总的比对过程时间复杂度为O(n),较为高效。

结束语:本文基于旅游团的实际需求出发,设计了一套完整的脱团预警监控系统,并基于Android系统、Play框架和OpenWrt平台进行了实现。该套系统在测试和实际使用中均取得了良好的效果,同时也为Wi-Fi探针技术的应用做出了有益的探索,为基于Wi-Fi面向不同情景应用系统的开发提供了一些参考价值。通信世界网

[1]  [2]  
相关阅读
热门文章
蓝戈沙龙