專利名稱:基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位跟蹤顯示系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位結(jié)果顯示方法,屬于電通信技術(shù)領(lǐng)域。
背景技術(shù):
在WIFI無(wú)線網(wǎng)絡(luò)中,通常包含一定數(shù)量的WIFI接入點(diǎn)(Access Point,AP節(jié)點(diǎn)), 由于這些AP節(jié)點(diǎn)是不可移動(dòng)的,因此一般把這些AP節(jié)點(diǎn)視為已知自身物理位置信息的固定位置的錨節(jié)點(diǎn)(固定節(jié)點(diǎn))。為了實(shí)現(xiàn)對(duì)人員的定位,要求每個(gè)人員攜帶一個(gè)定位標(biāo)簽, 由于人員的移動(dòng)所以可以把每個(gè)定位標(biāo)簽視為移動(dòng)節(jié)點(diǎn)。一般為了考慮成本因素,采用的定位標(biāo)簽只具有周期發(fā)送探測(cè)幀的能力,而不具有發(fā)送自定義數(shù)據(jù)幀的功能?,F(xiàn)實(shí)中有很多環(huán)境都可近似為線性環(huán)境,例如公路系統(tǒng),礦井下的巷道。在線性環(huán)境下對(duì)定位標(biāo)簽進(jìn)行定位只需要把定位標(biāo)簽定位到具體的線段上的某個(gè)位置,而不需要定位到非線段外的位置。例如
圖1中的線性環(huán)境,定位標(biāo)簽只會(huì)在線段AB,AC和AD上活動(dòng), 并不會(huì)在這三條線段之外的其他區(qū)域活動(dòng),因此可以確定定位標(biāo)簽的位置定位在線段AB, AC和AD上,而不用考慮定位在三條線段之外的地方。這樣具有預(yù)定線段的環(huán)境稱為線性環(huán)境,這些線段稱為線性環(huán)境的線性區(qū)域。現(xiàn)實(shí)中有很多實(shí)際的應(yīng)用場(chǎng)景可以抽象為線性環(huán)境,例如公路系統(tǒng)、礦井下的巷道、大樓內(nèi)的樓道等等?,F(xiàn)有技術(shù)中通過(guò)活動(dòng)節(jié)點(diǎn)——定位標(biāo)簽確定出來(lái)的位置,都是基于錨節(jié)點(diǎn)的相對(duì)位置,其最終的結(jié)果是基于錨節(jié)點(diǎn)的位置計(jì)算出來(lái)的,并最終顯示在界面上。在實(shí)際顯示界面上,可以通過(guò)控件來(lái)實(shí)現(xiàn)對(duì)定位標(biāo)簽位置的顯示和動(dòng)態(tài)跟蹤的,但問(wèn)題在于顯示活動(dòng)節(jié)點(diǎn)的位置來(lái)自于標(biāo)簽的定位結(jié)果,是相對(duì)于當(dāng)前顯示界面最左角的相對(duì)位置和距離。而當(dāng)顯示界面的大小改變時(shí)(界面變小或者放大與縮小地圖時(shí)),活動(dòng)節(jié)點(diǎn)的位置并不會(huì)隨之改變,從而使定位結(jié)果在顯示上產(chǎn)生誤差。本發(fā)明為了解決此問(wèn)題而來(lái)。
發(fā)明內(nèi)容本發(fā)明的目的就是為了解決基于無(wú)線信號(hào)的定位跟蹤結(jié)果的直觀顯示問(wèn)題,設(shè)計(jì)了一個(gè)針對(duì)移動(dòng)物體運(yùn)動(dòng)時(shí)有效的定位跟蹤顯示方法。一種基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位跟蹤顯示系統(tǒng),包括具有顯示界面和顯示無(wú)線信號(hào)定位位置的地圖的顯示模塊,其特征在于所述系統(tǒng)還包括監(jiān)聽模塊和坐標(biāo)轉(zhuǎn)換模塊, 所述監(jiān)聽模塊監(jiān)聽顯示模塊中顯示界面的大小變化事件,根據(jù)監(jiān)聽到的事件觸發(fā)坐標(biāo)轉(zhuǎn)換模塊;所述坐標(biāo)轉(zhuǎn)換模塊根據(jù)顯示界面大小的變化比例重新確定地圖的原點(diǎn)顯示坐標(biāo),并將確定后的地圖顯示坐標(biāo)交付給顯示模塊顯示。優(yōu)選的,所述坐標(biāo)轉(zhuǎn)換模塊預(yù)先確定顯示界面和地圖的原點(diǎn)坐標(biāo),以原點(diǎn)為參照物,坐標(biāo)轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換坐標(biāo)后確定顯示界面和地圖的原點(diǎn)新坐標(biāo)。本發(fā)明還提供了一種基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位跟蹤顯示方法,所述無(wú)線信號(hào)定位位置顯示在顯示界面的地圖中,其特征在于所述方法包括以下步驟
3[0009](1)坐標(biāo)轉(zhuǎn)換模塊初始化顯示界面和地圖的原點(diǎn)坐標(biāo);(2)當(dāng)監(jiān)聽模塊監(jiān)聽到顯示界面的大小變化時(shí),坐標(biāo)轉(zhuǎn)換模塊轉(zhuǎn)換顯示界面和地圖的原點(diǎn)坐標(biāo)為顯示界面變換后的新坐標(biāo),交付給顯示模塊顯示;(3)顯示模塊以變換后的新坐標(biāo)顯示顯示界面變換后的顯示界面和地圖。優(yōu)選的,所述原點(diǎn)坐標(biāo)為顯示界面或地圖的最左上角的坐標(biāo)。優(yōu)選的,所述顯示界面大小變化包括放大和縮小兩種情況,當(dāng)顯示界面縮放時(shí),當(dāng)用戶界面與地圖的寬度比大于用戶界面與地圖的高度比時(shí),坐標(biāo)轉(zhuǎn)換模塊按照如下方法獲得地圖的原點(diǎn)新坐標(biāo)((用戶界面的寬度-縮放比例1 也圖寬度)/2,0);否則坐標(biāo)轉(zhuǎn)換模塊按照如下方法獲得地圖的原點(diǎn)新坐標(biāo)(0,(用戶界面的高度-縮放比例*地圖高度)/2);縮放比例為用戶界面與地圖的寬度比、用戶界面與地圖的高度比中的較小數(shù)。優(yōu)選的,所述監(jiān)聽模塊還監(jiān)聽用戶界面有沒(méi)有滾動(dòng)條;當(dāng)用戶界面有滾動(dòng)條時(shí),顯示模塊進(jìn)行顯示時(shí)將地圖的原點(diǎn)新坐標(biāo)移動(dòng)到用戶界面的原點(diǎn)新坐標(biāo)后再進(jìn)行顯示;否則顯示模塊在地圖的原點(diǎn)新坐標(biāo)位置進(jìn)行顯示。優(yōu)選的,所述方法還包括以地圖的原點(diǎn)坐標(biāo)為參照物確定無(wú)線信號(hào)定位位置的原坐標(biāo),以地圖經(jīng)坐標(biāo)轉(zhuǎn)換模塊轉(zhuǎn)換后的原點(diǎn)新坐標(biāo)為參照物確定無(wú)線信號(hào)定位位置的新坐標(biāo);進(jìn)行無(wú)線信號(hào)定位位置顯示時(shí),以地圖的原點(diǎn)坐標(biāo)位置為參照物進(jìn)行確定無(wú)線信號(hào)定位位置的坐標(biāo)后顯示。優(yōu)選的,所述方法還尋找無(wú)線信號(hào)定位位置的原坐標(biāo)和無(wú)線信號(hào)定位位置的新坐標(biāo)間的移動(dòng)路徑,并移動(dòng)路徑上均勻設(shè)置若干個(gè)移動(dòng)點(diǎn),顯示模塊在顯示時(shí)間內(nèi)進(jìn)行顯示時(shí)從原坐標(biāo)開始到新坐標(biāo)結(jié)束依次顯示無(wú)線信號(hào)定位位置的移動(dòng)點(diǎn)。本發(fā)明主要用于線性環(huán)境下活動(dòng)節(jié)點(diǎn)定位跟蹤,在該環(huán)境下一般設(shè)置有無(wú)線接入點(diǎn)、定位標(biāo)簽和與無(wú)線接入點(diǎn)通訊的服務(wù)器,所述定位標(biāo)簽作為活動(dòng)節(jié)點(diǎn)在線性環(huán)境的線性區(qū)域內(nèi)活動(dòng),并周期性的發(fā)送探測(cè)幀數(shù)據(jù);所述無(wú)線接入點(diǎn)作為錨節(jié)點(diǎn)布控在線性環(huán)境內(nèi)固定位置,用于捕獲定位標(biāo)簽發(fā)出的探測(cè)幀數(shù)據(jù),根據(jù)捕獲到的探測(cè)幀數(shù)據(jù)來(lái)計(jì)算定位標(biāo)簽的RSSI信息,并將定位標(biāo)簽的RSSI信息組裝成數(shù)據(jù)包通過(guò)多跳無(wú)線路由或有線網(wǎng)絡(luò)直接發(fā)送至服務(wù)器;服務(wù)器整合處理所有定位標(biāo)簽的RSSI信息,并根據(jù)所有定位標(biāo)簽的 RSSI信息獲得每個(gè)定位標(biāo)簽的實(shí)時(shí)位置。所述無(wú)線接入點(diǎn)的發(fā)包周期大于定位標(biāo)簽的發(fā)包周期;所述服務(wù)器的定位周期大于無(wú)線接入點(diǎn)的發(fā)包周期。所述服務(wù)器包括接受模塊、存儲(chǔ)模塊、定位模塊、穩(wěn)定模塊以及本發(fā)明的基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位跟蹤顯示系統(tǒng),所述接受模塊用于接收無(wú)線接入點(diǎn)發(fā)來(lái)的數(shù)據(jù)包信息,并提供給存儲(chǔ)模塊存儲(chǔ);所述定位模塊讀取無(wú)線接入點(diǎn)發(fā)來(lái)的數(shù)據(jù)包信息進(jìn)行解析、確定定位標(biāo)簽的線性區(qū)域和定位標(biāo)簽在線性區(qū)域的精確位置;所述穩(wěn)定模塊用于當(dāng)定位模塊確定后定位標(biāo)簽在線性區(qū)域的位置產(chǎn)生跳躍現(xiàn)象時(shí)進(jìn)行穩(wěn)定處理。本發(fā)明是在定位模塊進(jìn)行精確定位后進(jìn)行縮放顯示界面時(shí)可以直觀的顯示定位標(biāo)簽的位置,通過(guò)坐標(biāo)轉(zhuǎn)換實(shí)現(xiàn)在任意縮放地圖中的定位實(shí)時(shí)展示,并且采用簡(jiǎn)單的顯示優(yōu)化技術(shù)來(lái)實(shí)現(xiàn)動(dòng)態(tài)跟蹤顯示。定位系統(tǒng)可以應(yīng)用于線性環(huán)境如公路、巷道、樓道等。由于在實(shí)際環(huán)境下,RSSI值是極其不穩(wěn)定的,即RSSI值波動(dòng)(Fluctuate)較大。若直接用于移動(dòng)目標(biāo)的定位跟蹤,所得的跟蹤誤差較大。針對(duì)線性環(huán)境的固有特點(diǎn),先通過(guò)RSSI信息確定移動(dòng)節(jié)點(diǎn)所處的線性區(qū)域,再利用線性區(qū)域兩端的錨節(jié)點(diǎn)的RSSI信息實(shí)現(xiàn)對(duì)移動(dòng)節(jié)點(diǎn)的精確定位。由于RSSI值的極其不穩(wěn)定性,針對(duì)在同一個(gè)位置的定位標(biāo)簽的先后兩組RSSI值的定位結(jié)果可能會(huì)不一樣(但是都滿足定位精度),如果把前后兩次的結(jié)果都直接顯示到界面上,則會(huì)發(fā)生跳躍現(xiàn)象,通過(guò)服務(wù)器的穩(wěn)定模塊可以平滑掉這些跳躍現(xiàn)象。此外本發(fā)明在顯示模塊中連續(xù)移動(dòng)定位標(biāo)簽,從而使客戶認(rèn)為定位標(biāo)簽是連續(xù)移動(dòng)的,而并不是突然從一點(diǎn)移動(dòng)到另一點(diǎn); 并利用坐標(biāo)變換將最終的結(jié)果精確的顯示在屏幕上。本發(fā)明基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位結(jié)果顯示方法,由定位標(biāo)簽(移動(dòng)節(jié)點(diǎn))通過(guò)RSSI信號(hào)定位并修正結(jié)果,得到穩(wěn)定的定位結(jié)果,然后通過(guò)坐標(biāo)轉(zhuǎn)換實(shí)現(xiàn)在任意縮放地圖中的定位實(shí)時(shí)展示,并且采用簡(jiǎn)單的顯示優(yōu)化技術(shù)來(lái)實(shí)現(xiàn)動(dòng)態(tài)跟蹤顯示。采用本系統(tǒng)后, 能夠有效地實(shí)現(xiàn)對(duì)移動(dòng)節(jié)點(diǎn)基于無(wú)線信號(hào)的定位結(jié)果的實(shí)時(shí)展示和動(dòng)態(tài)跟蹤顯示,特別適合于所有基于無(wú)線信號(hào)的移動(dòng)目標(biāo)定位跟蹤應(yīng)用,該系統(tǒng)主要包括以下步驟步驟一、為了支持用戶改變顯示界面大小的問(wèn)題,對(duì)容器添加當(dāng)容器大小發(fā)生變化時(shí)的觸發(fā)事件,通過(guò)觸發(fā)事件調(diào)用不同的坐標(biāo)轉(zhuǎn)換方法。步驟二、在顯示界面上建立了兩個(gè)Label型的透明控件A和B,用于標(biāo)記容器最左點(diǎn)和地圖最左點(diǎn)的顯示坐標(biāo)。步驟三、判斷當(dāng)前有沒(méi)有滾動(dòng)條,根據(jù)判斷結(jié)果來(lái)調(diào)整地圖最左點(diǎn)B的最終顯示位置。步驟四、當(dāng)?shù)貓D縮小時(shí),通過(guò)計(jì)算圖像的縮放比例來(lái)計(jì)算B的坐標(biāo),并根據(jù)縮放比例來(lái)顯示定位標(biāo)簽。步驟五、當(dāng)原圖像按實(shí)際大小顯示時(shí),可能窗口界面存在滾動(dòng)條,此時(shí)把B移動(dòng)到 A所在的位置,并計(jì)算相應(yīng)的定位標(biāo)簽實(shí)際顯示坐標(biāo)。步驟六、當(dāng)圖像放大顯示時(shí),窗口界面與圖像按實(shí)際大小顯示情況相似,但縮放比例存在不同,計(jì)算相應(yīng)的定位標(biāo)簽實(shí)際顯示坐標(biāo)。步驟七、將地圖內(nèi)所有顯示的AP節(jié)點(diǎn)和定位標(biāo)簽所在的絕對(duì)坐標(biāo)都以B為參照物轉(zhuǎn)變?yōu)槠聊簧系娘@示坐標(biāo)。步驟八、當(dāng)?shù)玫揭粋€(gè)特定標(biāo)簽的最新定位位置,采用一種簡(jiǎn)單的顯示優(yōu)化技術(shù)來(lái)顯示標(biāo)簽從原位置到最新位置之間的移動(dòng)。步驟九、將相關(guān)信息存入數(shù)據(jù)庫(kù),以支持回放功能。具體的,本發(fā)明設(shè)計(jì)了一個(gè)新的坐標(biāo)轉(zhuǎn)換模塊,能夠讓AP節(jié)點(diǎn)和定位標(biāo)簽的位置隨容器的改變而改變,并且支持地圖放大與縮小的功能??s小時(shí),要求把輸入地圖縮小到可以在屏幕容器內(nèi)全部顯示,從而讓用戶對(duì)所有的結(jié)果一目了然,并且為了看上去美觀,要把地圖在顯示界面上居中。而放大時(shí),要求在顯示界面上添加滾動(dòng)條,實(shí)際顯示原始地圖的大小,從而可以使用戶精確的查找具體的定位結(jié)果。在該坐標(biāo)系統(tǒng)中,AP節(jié)點(diǎn)和定位標(biāo)簽都有兩類坐標(biāo)地圖上的絕對(duì)像素坐標(biāo)AbsoluteLoc和顯示界面上的顯示坐標(biāo)DisplayLoc。前面系統(tǒng)所用到的坐標(biāo)都是背景圖像(地圖)上的絕對(duì)像素坐標(biāo),而在實(shí)際的顯示界面上都要轉(zhuǎn)化為顯示坐標(biāo)。特別的,對(duì)于地圖的縮放問(wèn)題,當(dāng)?shù)貓D縮小時(shí)以至于當(dāng)前的顯示界面能夠完全包含該地圖,本發(fā)明將會(huì)把該地圖居中于當(dāng)前的顯示界面,此時(shí)地圖的最左角并不等于容器的最左角;而當(dāng)?shù)貓D放大到原始大小時(shí),會(huì)出現(xiàn)滾動(dòng)條,且此時(shí)不在需要滾動(dòng)條, 此時(shí)地圖的最左角和容器的最左角重合。[0031]本發(fā)明通過(guò)一個(gè)實(shí)際的例子來(lái)說(shuō)明坐標(biāo)轉(zhuǎn)換方法的實(shí)現(xiàn)過(guò)程。例如而當(dāng)?shù)貓D放大時(shí),這兩個(gè)AP節(jié)點(diǎn)的顯示坐標(biāo)并沒(méi)有發(fā)生變化,但是它們?cè)诘貓D上的絕對(duì)坐標(biāo)卻發(fā)生了變化。然而,在定位系統(tǒng)中,AP的坐標(biāo)是相對(duì)于地圖上的像素位置的,所以他們的絕對(duì)坐標(biāo)應(yīng)該是不變的,即原來(lái)在地圖上的什么位置,放大后還在地圖的什么位置。采用該坐標(biāo)轉(zhuǎn)變方法后,調(diào)整后的AP節(jié)點(diǎn)顯示的位置是與地圖上的位置一致的。本發(fā)明技術(shù)方案的突出的實(shí)質(zhì)性特點(diǎn)和顯著的進(jìn)步主要體現(xiàn)在坐標(biāo)轉(zhuǎn)換能夠讓AP節(jié)點(diǎn)和定位標(biāo)簽的位置隨容器的改變而改變,并且支持地圖放大與縮小的功能??s小時(shí),要求把輸入地圖縮小到可以在屏幕容器內(nèi)全部顯示,從而讓用戶對(duì)所有的結(jié)果一目了然,并且為了看上去美觀,要把地圖在顯示界面上居中。而放大時(shí), 要求在顯示界面上添加滾動(dòng)條,實(shí)際顯示原始地圖的大小,從而可以使用戶精確的查找具體的定位結(jié)果。地圖顯示判定判斷地圖在實(shí)際顯示過(guò)程中是否存在滾動(dòng)條,針對(duì)不同的情況設(shè)置不同的地圖位置,將地圖縮小顯示、正常顯示和放大顯示等三種情況區(qū)分處理,從而確保了顯示結(jié)果的正確性;平滑顯示將移動(dòng)路徑上平均劃分成k+Ι段,故中間共有k(i1;i2,…,in)個(gè)點(diǎn)(不包括起始端點(diǎn)),然后每隔一段很小的時(shí)間,將該特定模塊移動(dòng)一個(gè)點(diǎn),從而使用戶認(rèn)為定位標(biāo)簽是連續(xù)移動(dòng)的,而并不是突然從一點(diǎn)移動(dòng)到另一點(diǎn),這樣使最終的顯示結(jié)果更加接近現(xiàn)實(shí)。綜上所述,本發(fā)明提供了一種坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位結(jié)果顯示方法,屬于電通信技術(shù)領(lǐng)域。其特點(diǎn)是由定位標(biāo)簽(移動(dòng)節(jié)點(diǎn))通過(guò)RSSI信號(hào)定位并修正結(jié)果,得到穩(wěn)定的定位結(jié)果,然后通過(guò)坐標(biāo)轉(zhuǎn)換實(shí)現(xiàn)在任意縮放地圖中的定位實(shí)時(shí)展示,并且采用簡(jiǎn)單的顯示優(yōu)化技術(shù)來(lái)實(shí)現(xiàn)動(dòng)態(tài)跟蹤顯示。采用本系統(tǒng)后,能夠有效地實(shí)現(xiàn)對(duì)移動(dòng)節(jié)點(diǎn)基于無(wú)線信號(hào)的定位結(jié)果的實(shí)時(shí)展示和動(dòng)態(tài)跟蹤顯示,特別適合于所有基于無(wú)線信號(hào)的移動(dòng)目標(biāo)定位跟蹤應(yīng)用,如礦井下定位跟蹤系統(tǒng),區(qū)域人員定位跟蹤等等。特別適合于基于無(wú)線網(wǎng)絡(luò)的定位與跟蹤應(yīng)用,如礦井下定位系統(tǒng),區(qū)域人員定位等。由此可見,本發(fā)明為本領(lǐng)域的技術(shù)進(jìn)步拓展了空間,實(shí)施效果好。
以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述圖1為線性區(qū)域內(nèi)定位的原理圖;圖2為線性區(qū)域內(nèi)定位劃分示意圖;圖3為本發(fā)明線性環(huán)境下活動(dòng)節(jié)點(diǎn)定位跟蹤系統(tǒng)的系統(tǒng)架構(gòu)圖;圖4為本發(fā)明基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位跟蹤顯示系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
以下結(jié)合具體實(shí)施例對(duì)上述方案做進(jìn)一步說(shuō)明。應(yīng)理解,這些實(shí)施例是用于說(shuō)明本發(fā)明而不限于限制本發(fā)明的范圍。實(shí)施例中采用的實(shí)施條件可以根據(jù)具體廠家的條件做進(jìn)一步調(diào)整,未注明的實(shí)施條件通常為常規(guī)實(shí)驗(yàn)中的條件。實(shí)施例[0044]本實(shí)施例的錨節(jié)點(diǎn)是采用蘇州市漢明科技公司的AP,定位標(biāo)簽采用蘇州市漢明科技公司的定位標(biāo)簽。鑒于目前客戶端大都是Windows系統(tǒng)和Windows系統(tǒng)對(duì).NET開發(fā)環(huán)境的支持,本軟件的開發(fā)平臺(tái)選擇Windows系統(tǒng),開發(fā)環(huán)境如下所述操作系統(tǒng)選擇高于windows 2000版本的windows操作系統(tǒng);數(shù)據(jù)庫(kù)MS SQL 2005 作為Microsoft公司的下一代數(shù)據(jù)管理與分析軟件,SQL Server 2005有助于簡(jiǎn)化企業(yè)數(shù)據(jù)與分析應(yīng)用的創(chuàng)建、部署和管理,并在解決方案伸縮性、 可用性和安全性方面實(shí)現(xiàn)重大改進(jìn)。Visual Studio 2005 =Visual Studio 2005是微軟新開發(fā)的一種全方位的工具平臺(tái),它能夠有效地減少開發(fā)的復(fù)雜度,確保用戶輕松的發(fā)布Framework的解決方案,不論你是否是一個(gè)資深的編程人員還是一位編程初學(xué)者,都能為您提供高效的服務(wù)。如圖3所示,為本發(fā)明的進(jìn)行線性環(huán)境下活動(dòng)節(jié)點(diǎn)精確定位系統(tǒng),進(jìn)行精確定位時(shí),先進(jìn)行預(yù)處理,應(yīng)用配置文件創(chuàng)造屬于該系統(tǒng)的AP節(jié)點(diǎn),地圖上線性區(qū)域的相關(guān)信息的配置文件,測(cè)試一些固定的閾值;然后按照如下步驟進(jìn)行定位步驟一、為了滿足定位的實(shí)時(shí)性要求,由定位標(biāo)簽以固定的周期廣播探測(cè)信息;步驟二、構(gòu)造定位標(biāo)簽與AP的對(duì)應(yīng)動(dòng)態(tài)增廣RSSI值數(shù)組AP [Size] [2],其中Size 表示該AP節(jié)點(diǎn)收到的定位標(biāo)簽的個(gè)數(shù),AP[Size]存儲(chǔ)定位標(biāo)簽的MAC地址,AP [Size] [1]存儲(chǔ)相應(yīng)的RSSI信息。每個(gè)AP節(jié)點(diǎn)收集到探測(cè)幀,就計(jì)算相應(yīng)的RSSI值,并把該值更新到數(shù)組AP [Size] [2]中。注意每個(gè)AP都只保存最大的Max個(gè)RSSI信息所對(duì)應(yīng)的定位標(biāo)簽,即滿足Size <= Max,而對(duì)于之外的較小的RSSI信息,將會(huì)舍棄。AP節(jié)點(diǎn)也以一定的周期(要大于定位標(biāo)簽的發(fā)包周期)將自己的MAC地址和對(duì)應(yīng)的AP [Size] [2]數(shù)組打包發(fā)送給服務(wù)器;步驟三、服務(wù)器解析收到的每個(gè)AP的數(shù)據(jù)包,并整合相對(duì)于每個(gè)移動(dòng)標(biāo)簽的各AP 數(shù)據(jù)包中的RSSI信息,也就是更新每個(gè)定位標(biāo)簽的特有數(shù)組Mobile [nAP] [2],其中nAP代表具有該定位標(biāo)簽RSSI值信息的AP節(jié)點(diǎn)的個(gè)數(shù),MobilefcAP]存儲(chǔ)相應(yīng)AP節(jié)點(diǎn)的邏輯地址,Mobile [nAP] [2]存儲(chǔ)相應(yīng)的RSSI值。注意每個(gè)定位標(biāo)簽都只保存最大的nAPMAX 個(gè)RSSI信息所對(duì)應(yīng)的AP節(jié)點(diǎn),既要滿足nAP < = nAPMAX,而對(duì)于之外的較小的RSSI信息將會(huì)舍棄。服務(wù)器每隔一個(gè)固定的周期(該周期要大于AP節(jié)點(diǎn)的發(fā)包周期)將把每個(gè)定位標(biāo)簽的特有數(shù)組Mobile [nAP] [2]信息發(fā)送給服務(wù)器定位模塊,隨后清空掉每個(gè)定位標(biāo)簽的特有數(shù)組信息;步驟四、服務(wù)器定位模塊依據(jù)每個(gè)定位標(biāo)簽的特有數(shù)組MobilefcAP] [2]對(duì)該標(biāo)簽進(jìn)行定位。假設(shè)擁有最大RSSI值的AP節(jié)點(diǎn)為API。首先將判斷API的RSSI值是否大于等于常數(shù)MR,若是,則定位模塊把該定位標(biāo)簽定位在擁有最大RSSI值的AP節(jié)點(diǎn)處。否則,利用該數(shù)組內(nèi)其他的信息來(lái)判定區(qū)域,首先創(chuàng)造一個(gè)集合LR來(lái)存儲(chǔ)具有兩個(gè)有效AP的RSSI 值的線性區(qū)域,并同時(shí)計(jì)算該線性區(qū)域的平均RSSI值,若LR只包含一個(gè)線性區(qū)域,則返回該線性區(qū)域;否則查找擁有最大平均RSSI值的區(qū)域FMRegion和第二大平均RSSI值的區(qū)域SMRegion,若兩個(gè)區(qū)域的平均RSSI大于閾值δ (系統(tǒng)中δ為幻,則返回區(qū)域FMRegion, 否則的話認(rèn)為該數(shù)組信息存在錯(cuò)誤,舍棄這次定位,這個(gè)部分稱為對(duì)定位標(biāo)簽的線性區(qū)域判定。假設(shè)最終判斷出定位標(biāo)簽在APl和AP2之間的線性區(qū)域上,隨后將判斷該定位標(biāo)簽具體在線段的那個(gè)具體位置上,這個(gè)部分稱為線性區(qū)域內(nèi)定位。在線性區(qū)域內(nèi)定位過(guò)程中,本發(fā)明把該線段分為固定的幾段,然后劃分出一些具體的區(qū),隨后將該定位標(biāo)簽定位在該區(qū)的中間(AP所在端點(diǎn)的區(qū)域除外)。假設(shè)該線段的定位段數(shù)是3,可分為如圖1所示的三段,其中APl-A是一段,A到B是一段,B到AP2是另一段。然后,本發(fā)明把這個(gè)線性區(qū)域劃分為四個(gè)區(qū)。隨后本發(fā)明計(jì)算APl對(duì)應(yīng)的RSSI值于AP2對(duì)應(yīng)的RSSI之間的差值d,并通過(guò)與已知1,2,3點(diǎn)所在點(diǎn)差值的閾值(分別為dl,d2和d3)進(jìn)行對(duì)比判斷節(jié)點(diǎn)所處的區(qū)域, 若d > = dl,則節(jié)點(diǎn)在定位的過(guò)程中落到了 0區(qū)的范圍內(nèi),理論上會(huì)將定位節(jié)點(diǎn)定位在APl 所在的位置;如果dl > d > = d2,則節(jié)點(diǎn)在定位的過(guò)程中落到了 1區(qū)的范圍內(nèi),理論上會(huì)定位在A點(diǎn)的位置;如果d2>d>=d3,則節(jié)點(diǎn)在定位的過(guò)程中落到了 2區(qū)的范圍內(nèi),理論上會(huì)定位在B點(diǎn)的位置;若d < d3,則節(jié)點(diǎn)在定位的過(guò)程中落到了 3區(qū)的范圍內(nèi),理論上會(huì)將定位節(jié)點(diǎn)定位在AP2所在的位置。這樣可以看出如果當(dāng)定位段數(shù)提升的時(shí)候,定位最大誤差會(huì)減小,但是定位后的跳躍現(xiàn)象會(huì)更嚴(yán)重,這個(gè)要視實(shí)際的情況來(lái)覺(jué)得定位段數(shù)的數(shù)值, 主要的參考因素是每?jī)蓚€(gè)AP之間的距離以及定位的具體環(huán)境對(duì)RSSI值的影響。步驟五、在實(shí)際中本發(fā)明發(fā)現(xiàn),跳躍現(xiàn)象只會(huì)在附近的幾個(gè)定位點(diǎn)之間進(jìn)行。例如在圖1中,若移動(dòng)標(biāo)簽固定放在2點(diǎn)處,絕大多數(shù)情況下會(huì)把該定位標(biāo)簽定位在A處,但由于RSSI值的極不穩(wěn)定,偶爾也會(huì)把該定位標(biāo)簽定位在B處,這樣就會(huì)產(chǎn)生顯示中的跳躍現(xiàn)象。因此本發(fā)明將移植以往面向無(wú)線傳感網(wǎng)絡(luò)的穩(wěn)定機(jī)制成果來(lái)解決這類問(wèn)題,就是采用盡量不動(dòng)的方法來(lái)平滑跳躍。每一個(gè)定位標(biāo)簽維持一個(gè)定位結(jié)果隊(duì)列。當(dāng)產(chǎn)生對(duì)一個(gè)特定標(biāo)簽的定位結(jié)果時(shí),首先判斷是否是第一次對(duì)這個(gè)標(biāo)簽定位,若是,則返回該定位結(jié)果;否則將該定位結(jié)果壓入隊(duì)列,并判斷一下該隊(duì)列的元素?cái)?shù)是否為3若不是,返回null,也就是指定位標(biāo)簽不移動(dòng)。而若已經(jīng)有三個(gè)元素,則判斷這三次定位結(jié)果是否有一個(gè)沒(méi)有定出位置的結(jié)果或存在一個(gè)定位結(jié)果跟當(dāng)前定位標(biāo)簽所在位置相同,若是,則當(dāng)前定位位置不變; 否則把定位標(biāo)簽的位置定位在最后一次定位結(jié)果的位置。步驟六將相關(guān)信息存入數(shù)據(jù)庫(kù)。實(shí)驗(yàn)是在中國(guó)科學(xué)技術(shù)大學(xué)蘇州研究院行政樓4樓進(jìn)行,本發(fā)明在該層樓的樓道上布置了 3個(gè)AP節(jié)點(diǎn),每?jī)蓚€(gè)AP之間相距30米,且分成3段來(lái)定位,故理論最大誤差為 30/(2 * 3) =5米。使用一個(gè)定位標(biāo)簽在該系統(tǒng)中移動(dòng)。如圖2所示,當(dāng)定位標(biāo)簽位于位置A,B,C,D處時(shí),定位的最終結(jié)果分別為L(zhǎng)l 1,AP2,L22和AP3處。為了支持用戶改變顯示界面大小的問(wèn)題,本發(fā)明在服務(wù)器進(jìn)行了編程,設(shè)計(jì)了基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位跟蹤顯示系統(tǒng),如圖4所示,該系統(tǒng)也可以采用硬件實(shí)現(xiàn),采用監(jiān)聽器實(shí)現(xiàn)顯示模塊顯示界面的監(jiān)聽。在系統(tǒng)中顯示界面容器添加當(dāng)容器ClientSize發(fā)生變化時(shí)的觸發(fā)事件ClientSizeChanged(object sender,EventArgs e),通過(guò)觸發(fā)事件來(lái)調(diào)用不同的坐標(biāo)轉(zhuǎn)換方法,經(jīng)試驗(yàn)證實(shí),進(jìn)行調(diào)整地圖大小,系統(tǒng)均可以正常展示。本發(fā)明進(jìn)行地圖縮放操作時(shí),主要進(jìn)行了如下步驟在顯示界面上建立了兩個(gè)Label型的透明控件A和B,其中控件A標(biāo)記了容器內(nèi)的最左點(diǎn)所在的顯示坐標(biāo),而控件B則標(biāo)記了地圖內(nèi)的最左點(diǎn)的顯示坐標(biāo)。在實(shí)際系統(tǒng)中,這兩個(gè)控件上可以是沒(méi)有任何的顯示字體。當(dāng)?shù)貓D被縮放,或容器的clientsize發(fā)生變化時(shí),本發(fā)明會(huì)首先判斷當(dāng)前有沒(méi)有滾動(dòng)條,若有的話則把控件B移動(dòng)到控件A所在的位置,沒(méi)有的話把B設(shè)置在地圖最左節(jié)點(diǎn)的位置。[0060]當(dāng)?shù)貓D縮小時(shí),即把地圖居中顯示在顯示容器內(nèi)時(shí),此時(shí)沒(méi)有滾動(dòng)條,本發(fā)明首先計(jì)算B的坐標(biāo),假設(shè)scale是圖像的縮放比例,當(dāng)圖像居中縮放時(shí)有Scale = min {ClientHeight/ImageHeight, Clientffidth/Imageffidth}其中ClientWidth和ClientHeight分別是顯示界面的寬度和高度,ImageWidth和 ImageHeight分別為地圖的像素寬度和高度。則B的坐標(biāo)(xO,yO)為
if (ClientHeight / IniageHeight < ClientWidth / ImageWidtli) scale = ClientHeight / ImageHeight; xO = (int)(ClientWidth - scale * ImageWidth) / 2; y0 = 0;
else
scale = ClientWidth / Image Width: x0 = 0;
yO = (int)(ClientHeight - scale * IinageHeight)/ 2;當(dāng)?shù)貓D按原來(lái)實(shí)際大小顯示即無(wú)任何縮放時(shí),可能屏幕存在滾動(dòng)條,此時(shí)把B移動(dòng)到A所在的位置,此時(shí)圖像的縮放比例scale為1,B的顯示坐標(biāo)為(A. DispalyLoc),注意當(dāng)滾動(dòng)條被拉動(dòng)時(shí),此時(shí)若A不在顯示界面上,則它的顯示坐標(biāo)為負(fù)值,因?yàn)轱@示坐標(biāo)都是相對(duì)于當(dāng)前顯示界面的最左點(diǎn)的(而在沒(méi)有滾動(dòng)條或沒(méi)拉動(dòng)滾動(dòng)條時(shí),這一點(diǎn)的坐標(biāo)為 (0,0)),這說(shuō)明了創(chuàng)建A的必要性,不然在地圖放大時(shí),本發(fā)明并不知道地圖最左點(diǎn)的顯示坐標(biāo)是什么,但是有了 A,無(wú)論滾動(dòng)條在什么位置,本發(fā)明都知道最左點(diǎn)在A處(或B處,因?yàn)锽已經(jīng)移動(dòng)到A處)。于是無(wú)論在放大還是縮小情況下,地圖的最左節(jié)點(diǎn)的顯示坐標(biāo)即是 B的坐標(biāo),所以對(duì)于一個(gè)地圖上的絕對(duì)坐標(biāo)AbsoluteLoc,其相應(yīng)的顯示坐標(biāo)為
DisplayLoc.χ = AbsoluteLoc.X * scale + B. DisplayLoc.X; DisplayLoc.y = AbsoluteLoc.Y * scale + B. DisplayLoc.Y;
ForeachAP 節(jié)點(diǎn) ap 和 Mobile 節(jié)點(diǎn) mobile, do
ap.DisplayLoc.x 二 ap.AbsoluteLoc.X * scale + B. DisplayLoc.X; ap.DisplayLoc.y = ap.AbsoluteLoc.Y * scale + B. DisplayLoc.Y; mobile.DisplayLoc.x=mobile.AbsoluteLoc.X * scale + B. DisplayLoc.X; mobile.DisplayLoc.y=mobile. AbsoluteLoc .Y * scale + B. DisplayLoc.Y;[0066]當(dāng)?shù)貓D被放大時(shí),窗口界面情況與地圖按照原始大小顯示類似,可以采用同樣的方法處理;但處理方法中縮放比例kale大小與步驟五(地圖按原始大小顯示)不同,不是簡(jiǎn)單為1,而是需要通過(guò)公式計(jì)算,計(jì)算方法與步驟四中kale的計(jì)算方法相同。將地圖內(nèi)所有顯示的AP節(jié)點(diǎn)和定位標(biāo)簽所在的絕對(duì)坐標(biāo)都以B為參照物轉(zhuǎn)變?yōu)槠聊簧系娘@示坐標(biāo)。當(dāng)?shù)玫揭粋€(gè)特定標(biāo)簽的最新定位位置,假設(shè)該位置為PostLocation,而原位置為 PreLocation0在顯示模塊中,本發(fā)明將首先找到這兩次位置間的移動(dòng)路徑。然后再移動(dòng)路徑上平均畫分成k+Ι段,故中間共有k(il,i2,…,in)個(gè)點(diǎn)(不包括起始端點(diǎn)),然后每隔一段很小的時(shí)間,將該特定模塊移動(dòng)一個(gè)點(diǎn)。從而使客戶認(rèn)為定位標(biāo)簽是連續(xù)移動(dòng)的,而并不是突然從一點(diǎn)移動(dòng)到另一點(diǎn)。綜上所述,采用本發(fā)明后,實(shí)現(xiàn)了對(duì)移動(dòng)節(jié)點(diǎn)定位的精確實(shí)時(shí)展示,并實(shí)現(xiàn)了動(dòng)態(tài)實(shí)時(shí)跟蹤。由此可見,本發(fā)明具有實(shí)質(zhì)性技術(shù)特點(diǎn)和顯著的技術(shù)進(jìn)步,其應(yīng)用前景非常廣闊。上述實(shí)例只為說(shuō)明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的人是能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精神實(shí)質(zhì)所做的等效變換或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求1. 一種基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位跟蹤顯示系統(tǒng),包括具有顯示界面和顯示無(wú)線信號(hào)定位位置的地圖的顯示模塊,其特征在于所述系統(tǒng)還包括監(jiān)聽模塊和坐標(biāo)轉(zhuǎn)換模塊,所述監(jiān)聽模塊監(jiān)聽顯示模塊中顯示界面的大小變化事件,根據(jù)監(jiān)聽到的事件觸發(fā)坐標(biāo)轉(zhuǎn)換模塊;所述坐標(biāo)轉(zhuǎn)換模塊根據(jù)顯示界面大小的變化比例重新確定地圖的原點(diǎn)顯示坐標(biāo),并將確定后的地圖顯示坐標(biāo)交付給顯示模塊顯示。
專利摘要本實(shí)用新型公開了一種基于坐標(biāo)轉(zhuǎn)換的無(wú)線信號(hào)定位跟蹤顯示系統(tǒng),包括具有顯示界面和顯示無(wú)線信號(hào)定位位置的地圖的顯示模塊、監(jiān)聽模塊和坐標(biāo)轉(zhuǎn)換模塊,所述監(jiān)聽模塊監(jiān)聽顯示模塊中顯示界面的大小變化事件,根據(jù)監(jiān)聽到的事件觸發(fā)坐標(biāo)轉(zhuǎn)換模塊;所述坐標(biāo)轉(zhuǎn)換模塊根據(jù)顯示界面大小的變化比例重新確定地圖的原點(diǎn)顯示坐標(biāo),并將確定后的地圖顯示坐標(biāo)交付給顯示模塊顯示。該發(fā)明可以實(shí)現(xiàn)活動(dòng)節(jié)點(diǎn)得到穩(wěn)定的精確定位結(jié)果,以及可以通過(guò)坐標(biāo)轉(zhuǎn)換實(shí)現(xiàn)在任意縮放地圖中的定位實(shí)時(shí)展示,并且采用簡(jiǎn)單的顯示優(yōu)化技術(shù)來(lái)實(shí)現(xiàn)動(dòng)態(tài)跟蹤顯示。
文檔編號(hào)H04W64/00GK202004974SQ20102069250
公開日2011年10月5日 申請(qǐng)日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者劉剛, 張銀東, 徐宏力, 杜丙堅(jiān), 汪煬, 蔣勝龍, 黃劉生 申請(qǐng)人:中國(guó)科學(xué)技術(shù)大學(xué)蘇州研究院