基于WiFi的定位系统设计Word格式.docx

上传人:b****5 文档编号:18839772 上传时间:2023-01-01 格式:DOCX 页数:13 大小:466.18KB
下载 相关 举报
基于WiFi的定位系统设计Word格式.docx_第1页
第1页 / 共13页
基于WiFi的定位系统设计Word格式.docx_第2页
第2页 / 共13页
基于WiFi的定位系统设计Word格式.docx_第3页
第3页 / 共13页
基于WiFi的定位系统设计Word格式.docx_第4页
第4页 / 共13页
基于WiFi的定位系统设计Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于WiFi的定位系统设计Word格式.docx

《基于WiFi的定位系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于WiFi的定位系统设计Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

基于WiFi的定位系统设计Word格式.docx

2.1WiFi定位的网络成员与结构

IEEE802.11主要规定了两种不同类型的基本架构:

有基础架构的无线局域网络(InfrastructureWirelessLAN)和无基础架构的无线局域网络(AdHocWirelessLAN)。

在Wi-Fi定位中常用的架构是有基础架构,如下图2-1所示:

图2-1

2.2WiFi定位的流程

(1)首先通过编写程序用来获取该移动设备周边的WiFi的物理地址。

(2)提取WiFi的物理地址并进行相应的解析。

(3)通过使用了NativeWiFi,可以获取到当前WiFi信号的RSSI值,并将其记录便可连续采集当前网卡所采集到所有WiFi信号的RSSI。

(4)添加MAP.html文件将采集到的信息加载到XX地图。

图2-2定位流程图

三、过程论述

3.1界面设计(如下图)

图3-1界面设计图

3.2控件的设计

3.2.1Label的使用:

在工具箱中找到Label,拖放至设计界面中,如图3-2、图3-3所示,可以对其属性进行修改,以及在界面中移动其位置。

图3-2工具箱图3-3属性

3.2.2TextBox的使用:

在工具箱中找到TextBox,拖放至设计界面中,如图3-4、图3-5所示,可以对其属性进行修改,在界面中移动其位置。

图3-4TextBox工具图图3-5TextBox属性图

3.2.3Button的使用在工具箱中找到Buttton,拖放至设计界面中,如图3-6、图3-7所示,可以对其属性进行修改,以及在界面中移动其位置。

图3-6Button工具图图3-7Button属性图

3.2.4实现基于WebBrowser加载Baidu地图,如图3-8所示。

图3-8WebBrowser工具图

3.2.5在bin/Bebug路径下,新建文本文件,输入以下内容,并重命名为Map.html,保存并退出,如图3-9所示。

图3-9Map.html嵌入图

3.3功能设计

3.3.1加载XX地图的代码实例

新建一个txt文件,输入代码后将该文件改为Map.html,以下是代码:

<

html>

head>

<

metahttp-equiv="

Content-Type"

content="

text/html"

/>

metaname="

viewport"

initial-scale=1.0,user-scalable=no"

styletype="

text/css"

>

body,html{width:

100%;

height:

margin:

0;

font-family:

"

微软雅黑"

;

}

#allmap{height:

500px;

width:

100%;

#r-result{width:

font-size:

14px;

/style>

scripttype="

text/javascript"

src="

title>

城市名定位<

/title>

.anchorBL{

display:

none;

}

/head>

body>

divid="

allmap"

/div>

r-result"

经度:

inputid="

longitude"

type="

text"

style="

100px;

margin-right:

10px;

纬度:

latitude"

margin-right:

<

inputtype="

button"

value="

查询"

onclick="

theLocation()"

/body>

/html>

//XX地图API功能

varmap=newBMap.Map("

);

map.centerAndZoom(newBMap.Point(116.331398,39.897445),11);

map.enableScrollWheelZoom(true);

//用经纬度设置地图中心点

functiontheLocation(){

if(document.getElementById("

).value!

="

&

document.getElementById("

){

map.clearOverlays();

varnew_point=newBMap.Point(document.getElementById("

).value,document.getElementById("

).value);

varmarker=newBMap.Marker(new_point);

//创建标注

map.addOverlay(marker);

//将标注添加到地图中

map.panTo(new_point);

}

}

/script>

完成上述操作之后选中Form1,在事件选项中选择Load,并双击打开相应代码:

privatevoidForm1_Load(objectsender,EventArgse)

{

stringstr_url=Environment.CurrentDirectory+"

/Map.html"

Uriurl=newUri(str_url);

this.webBrowser1.Navigate(url);

此时运行程序界面上会出现加载到WebBrowser的XX地图。

3.3.2获取AP的相关信息

(1)下载ManagedWiFi:

加入到工程中并添加引用,如下图3-10所示

图3-10添加AP

并申请命名空间为:

usingNativeWifi;

(2)获取WIFI的名称以及MAC地址,代码如下:

privatevoidbutton3_Click(objectsender,EventArgse)

WlanClientclient=newWlanClient();

foreach(WlanClient.WlanInterfacewlanIfaceinclient.Interfaces)

Wlan.WlanBssEntry[]WBE=wlanIface.GetNetworkBssList();

for(inti=0;

i<

WBE.Length-1;

i++)

for(intj=i;

j<

j++)

Wlan.WlanBssEntryindex;

if(WBE[i].rssi<

=WBE[j].rssi)

index=WBE[i];

WBE[i]=WBE[j];

WBE[j]=index;

3;

STR[i]=newinfo(GetStringForMACAddress(WBE[i].dot11Bssid),WBE[i].rssi.ToString());

foreach(Wlan.WlanBssEntrysub_wbeinWBE)

stringSSID=GetStringForSSID(sub_wbe.dot11Ssid);

stringMAC=GetStringForMACAddress(sub_wbe.dot11Bssid);

stringRSSI=sub_wbe.rssi.ToString();

stringLinkQuality=sub_wbe.linkQuality.ToString();

textBox1.AppendText("

SSID:

+SSID+"

+"

MAC:

+MAC+"

RSSI:

+RSSI+"

LQ:

+LinkQuality+System.Environment.NewLine);

JavaScriptSerializerSerializer=newJavaScriptSerializer();

strings=Serializer.Serialize(STR);

StringS="

+s+"

type=1&

key=5888d456644a4d8eb92cf9bc92fa8c85"

textBox2.Text=S;

textBox2.Show();

3.3.3提取MAC地址

privatevoidbutton4_Click(objectsender,EventArgse)

string_StringURL=textBox2.Text;

try

HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(_StringURL);

request.Method="

GET"

request.Accept="

*/*"

request.KeepAlive=false;

HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();

StreamdataStream=response.GetResponseStream();

StreamReaderreader=newStreamReader(dataStream);

stringresponseFromServer=reader.ReadToEnd();

response.Close();

reader.Close();

dataStream.Close();

this.textBox2.Text=responseFromServer;

catch(Exceptionex)

MessageBox.Show(ex.ToString());

3.3.4解析MAC和SSID

privatestringGetStringForMACAddress(byte[]macAddr)

uintnum=(uint)macAddr.Length;

string[]array=newstring[num];

intnum2=0;

while((long)num2<

(long)((ulong)num))

array[num2]=macAddr[num2].ToString("

x2"

).ToUpper();

//ToString("

):

X为十六进制,2为每次都是两位数.

num2++;

returnstring.Join("

array);

//Join()方法:

串联数组里所有字符串,并用指定分隔符连接

privatestringGetStringForSSID(Wlan.Dot11Ssidssid)

returnEncoding.UTF8.GetString(ssid.SSID,0,(int)ssid.SSIDLength);

//0表示索引,ssid.SSIDlength表示解码字节数

3.3.5将解析的数据定位到XX地图

privatevoidbutton1_Click(objectsender,EventArgse)

HtmlElementHE_longitude=webBrowser1.Document.GetElementById("

HE_longitude.SetAttribute("

value"

location[0]);

HtmlElementHE_latitude=webBrowser1.Document.GetElementById("

HE_latitude.SetAttribute("

location[1]);

webBrowser1.Document.InvokeScript("

theLocation"

四、结果分析

4.1WiFi定位分析图如下图:

图4-1WiFi定位图

由上图可知通过用C#软件编写程序实现了WiFi的定位的基本功能,通过点击获取按钮搜索到周边的WiFi,点击请求和解析的按钮然后得到对应的具体地址。

然后点击定位按钮并能将其成功的定位到XX地图上。

尽管界面比较简单,但是基本上能获取WiFi定位条件下所需要的数据。

经过多次的测试,程序还是比较稳定的,每次都能顺利的运行。

总体来说,该WiFi定位系统还是相对完善的,是可执行的。

五、结论(或总结)

通过本次WiFi定位系统的课程设计,我们了解了WiFi定位的基本原理以及它的实现过程。

尽管遇到过很多的问题,但是最终都能够得到解决。

同时这也是对个人能力的锻炼,使我们以后能很好的把理论应用于实践。

除了个人能力得到很好的锻炼之外,同时我也意识到自己有很多的不足之处,比如编写代码能力还不是那么熟练,好多编程思想不够成熟,希望能够在今后的学习中多多去改善这些不足,努力把自己的编程水平提升上去。

同时感谢老师的耐心指导、细心讲解,希望以后的学习中老师能够多多纠正我们学习之中的不足。

第二部分:

参考文献

学生签名:

填表日期:

年月日

第四部分:

指导教师评语

第五部分:

成绩评定

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1