国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WinInet的NTRIP終端設(shè)計*

2010-07-18 03:50屈新岳王鵬飛
全球定位系統(tǒng) 2010年2期
關(guān)鍵詞:流動站數(shù)據(jù)源差分

史 峰,屈新岳,李 鐵,王鵬飛,王 東

(中國人民解放軍91550部隊93分隊,遼寧 大連116023)

0 引 言

隨著虛擬參考站(VRS)技術(shù)的廣泛應(yīng)用和不斷發(fā)展,為適應(yīng)各種不同場合的需要,移動定位用戶對于終端的個性化需求也在不斷提高。在通用的智能終端,例如:PDA、智能手機(jī)等平臺上結(jié)合GPS接收機(jī)與VRS網(wǎng)絡(luò),實現(xiàn)高精度的移動定位已經(jīng)成為一種發(fā)展方向。而目前的大多數(shù)VRS移動終端都是由GPS硬件廠商直接提供,這些移動終端都是根據(jù)專業(yè)需要定制的。它具有功能強(qiáng)大、連接可靠的特點,但是價格一般比較昂貴,通用性不強(qiáng),可開發(fā)性不高。

由于VRS系統(tǒng)中進(jìn)行差分?jǐn)?shù)據(jù)傳輸?shù)腘TRIP協(xié)議是基于 HTTP協(xié)議的,因此,可以采用HTTP協(xié)議的開發(fā)手段進(jìn)行VRS終端的開發(fā),這就為設(shè)計實現(xiàn)通用平臺上的NTRIP終端提供了基礎(chǔ)。

1 虛擬參考站技術(shù)與NTRIP協(xié)議

1.1 虛擬參考站技術(shù)的基本原理

虛擬參考站技術(shù)(VRS)的基本原理是:在三個或更多參考站(相距70~100 km)覆蓋范圍內(nèi),流動站首先進(jìn)行單點定位,在其真實位置附近確定一個大致坐標(biāo)(偏差可以從幾米到上百米),然后把該坐標(biāo)發(fā)送至VRS數(shù)據(jù)處理中心;同時各參考站也把各自的載波相位測量觀測值發(fā)送到數(shù)據(jù)處理中心[1]。VRS數(shù)據(jù)處理中心根據(jù)這些數(shù)據(jù)計算出各參考站的各種偏差改正,如電離層、對流層偏差、軌道偏差、多路徑效應(yīng)等;結(jié)合流動站發(fā)送來的概略坐標(biāo)利用網(wǎng)絡(luò)改正數(shù)內(nèi)插方法進(jìn)行內(nèi)插,得出流動站概略坐標(biāo)處的相應(yīng)誤差改正數(shù),進(jìn)而在此概略坐標(biāo)處虛擬一個參考站,并利用多個參考站上的實際觀測數(shù)據(jù)計算出該虛擬參考站上的虛擬觀測值。由于虛擬參考站的位置就是由流動站的單點定位而得,它們之間距離很短,因此流動站可以和虛擬參考站間形成超短基線,通過站際星際二次差分,可以對流動站上的各種偏差、多路徑效應(yīng)以及接收機(jī)噪音等進(jìn)行很好的消除和減弱,從而大大提高流動站的定位精度和可靠性[2]。從VRS工作基本原理中可以看出,VRS系統(tǒng)一般由以下幾個部分組成:持續(xù)運行的參考站網(wǎng)絡(luò)、數(shù)據(jù)處理與控制中心、移動定位用戶以及數(shù)據(jù)鏈路。

1.2 NTRIP協(xié)議以及NTRIP客戶接入

作為VRS用戶而言最為關(guān)心的是如何接入VRS網(wǎng)絡(luò),獲取差分?jǐn)?shù)據(jù)以便使用網(wǎng)絡(luò)所提供的服務(wù)。目前VRS系統(tǒng)在所使用的差分?jǐn)?shù)據(jù)傳輸協(xié)議主要是基于HTTP協(xié)議的NTRIP協(xié)議(Networked Transport of RTCM via Internet Protocol,NTRIP),該協(xié)議具有結(jié)構(gòu)開放、開發(fā)便捷的特點,自2003年1月推出以來已獲得廣大GNSS硬件廠商和用戶的廣泛支持。NTRIP協(xié)議通過三個部分實現(xiàn):NTRIP客戶、NTRIP服務(wù)器以及NTRIP播發(fā)器,其中 NTRIP播發(fā)器是真正的HTTP服務(wù)器,負(fù)責(zé)管理和接收來自NTRIP服務(wù)器的數(shù)據(jù)并響應(yīng)NTRIP客戶的請求,發(fā)送GNSS信息,而NTRIP客戶和NTRIP服務(wù)器均為HTTP客戶,NTRIP客戶是GNSS數(shù)據(jù)的最終使用者[3]。一個完整的NTRIP系統(tǒng)除了上述的三個HTTP部分外,還包括NTRIP數(shù)據(jù)源,用來持續(xù)產(chǎn)生GNSS數(shù)據(jù),每一個NTRIP數(shù)據(jù)源都對應(yīng)一個NTRIP服務(wù)器,并由后者將產(chǎn)生的數(shù)據(jù)發(fā)送到NTRIP播發(fā)器,利用NTRIP服務(wù)器將NTRIP數(shù)據(jù)源與其它NTRIP成員之間隔開,可以保護(hù)數(shù)據(jù)源,提高數(shù)據(jù)利用率。一個NTRIP系統(tǒng)各部分之間的連接都是建立在TCP/IP基礎(chǔ)上,因此,可以通過TCP-Socket方便地監(jiān)視通訊狀態(tài),利用事件觸發(fā)的方式進(jìn)行掉線后的自動重新連接。

終端接入NTRIP網(wǎng)絡(luò)的過程與接入標(biāo)準(zhǔn)的HTTP網(wǎng)絡(luò)的過程完全類似,NTRIP終端可以采用HTTP協(xié)議的GET命令按照NTRIP服務(wù)器的名稱以及對應(yīng)的密碼發(fā)送請求,NTRIP播發(fā)器收到請求后,就會把用戶需要的差分?jǐn)?shù)據(jù)流不斷的發(fā)送過來,用戶根據(jù)差分?jǐn)?shù)據(jù)可以實現(xiàn)高精度的實時差分定位。

2 NTRIP終端的設(shè)計與實現(xiàn)

2.1 開發(fā)平臺以及設(shè)計思路

為了便于應(yīng)用開發(fā),選擇運行Windows Mobile 5.0(WM 5.0)的PDA、一臺具有RTK功能的GPS接收機(jī)以及可上網(wǎng)的藍(lán)牙手機(jī)作為NTRIP終端硬件平臺,其中PDA為終端的控制中心,主要工作過程為PDA通過藍(lán)牙和上網(wǎng)手機(jī)登陸VRS網(wǎng)絡(luò)獲得用戶當(dāng)前位置可用的差分?jǐn)?shù)據(jù),再通過串口將差分?jǐn)?shù)據(jù)寫入到GPS接收機(jī)中,從而實現(xiàn)RTK定位的功能。整個系統(tǒng)的設(shè)計結(jié)構(gòu)圖如圖1所示。

圖1 NTRIP客戶端系統(tǒng)結(jié)構(gòu)圖

從上面的工作過程可以看出,整個系統(tǒng)的關(guān)鍵在于開發(fā)一個嵌入式的NTRIP終端軟件以實現(xiàn)上述通信過程。本系統(tǒng)選擇Microsoft Visual Studio 2005結(jié)合Windows Mobile SDK作為軟件開發(fā)平臺,通過PDA H TTP編程實現(xiàn)NTRIP終端的主要功能。為了提高開發(fā)的效率和程序的可靠性,采用了 WinInet API作為工具進(jìn)行開發(fā)。WinInet與“套接字+Internet協(xié)議”的終端開發(fā)方式比,不需要了解 Winsocket、TCP/IP和特定 Internet協(xié)議的細(xì)節(jié),就可以編寫出高水平的終端程序[4]。利用WinInet進(jìn)行H TTP開發(fā)的主要步驟如下:

1)調(diào)用InternetOpen函數(shù),對HINTERNET句柄進(jìn)行初始化,獲得位于根部的HINTERNET句柄,該句柄是建立HTTP會話的基礎(chǔ)。

2)利用1)中得到的HINTERNET句柄作為參數(shù)調(diào)用InernetConnect函數(shù)創(chuàng)建H TTP會話。該函數(shù)根據(jù)Internet站點或IP地址對連接進(jìn)行初始化,并在原有HINTERNET句柄的基礎(chǔ)上產(chǎn)生一個新的HINTERNET類型的句柄。

3)調(diào)用Http OpenRequest函數(shù)HTTP請求句柄,該函數(shù)利用2)中返回HINTERNET句柄建立與特定站點的連接。這一步的作用就相當(dāng)于標(biāo)準(zhǔn)H TTP協(xié)議中的GET命令。

4)調(diào)用HttpSendRequest函數(shù)以3)中返回的句柄為參數(shù)向HTTP服務(wù)器發(fā)送請求。

5)調(diào)用InternetRead File函數(shù)下載數(shù)據(jù),或先使用 InternetQueryDataAvailable函數(shù)確定數(shù)據(jù)大小再下載。

6)調(diào)用函數(shù)關(guān)閉先前創(chuàng)建的所有句柄。

以上只是利用WinInet建立H TTP通信的一般過程,實際應(yīng)用中往往要根據(jù)需要建立異步或者同步兩種類型的HTTP連接。同步HTTP連接是一種阻塞式的連接方式,這意味在進(jìn)行連接的函數(shù)在未返回前,該函數(shù)所在的線程將一直處于等待狀態(tài),這對于網(wǎng)絡(luò)連接不穩(wěn)定,運算資源有限的PDA而言,如果進(jìn)行大量的同步H TTP通信,顯然是不行的。異步連接就是一種非阻塞式的連接方式,在相應(yīng)的通訊操作沒有返回前,線程的其他過程仍然可以正常運行,而一旦該操作返回,又馬上有相應(yīng)的函數(shù)對其進(jìn)行響應(yīng)。在WM 5.0中,主要通過采用一定的回調(diào)機(jī)制來實現(xiàn)對各種異步事件的響應(yīng),達(dá)到身份驗證、快速有效獲取網(wǎng)絡(luò)數(shù)據(jù)等目的。針對NTRIP終端通信的不同階段,在具體的實現(xiàn)過程中靈活采用了不同的連接方式。

2.2 NTRIP終端的實現(xiàn)

終端的總體結(jié)構(gòu)采用VC++基于對話框的程序框架,以標(biāo)簽形式在主對話框上添加不同類型的子對話框作為用戶控制GPS接收機(jī),連接NTRIP播發(fā)器交互界面,同時顯示定位結(jié)果、VRS連接狀況等信息的顯示界面。程序主要存在兩個通信過程:GPS接收機(jī)串口通信以及訪問VRS網(wǎng)絡(luò)的HTTP通信,前者通過嵌入式串口通信的方式可以方便實現(xiàn)接收機(jī)打開/設(shè)置、定位信息讀取以及差分?jǐn)?shù)據(jù)寫入,后者利用WinInet API函數(shù)來實現(xiàn),主要實現(xiàn)過程如下:

2.2.1 同步通信方式獲取NTRIP資源列表

資源列表(Source Table)包含著可供用戶選擇的數(shù)據(jù)源信息,獲取資源列表是獲得VRS差分信息的第一步,由于資源列表大小只有幾百個字符,而且后面的通訊工作都以資源列表為基礎(chǔ),因此,可以采用同步通信的方式獲取。首先定義存放資源列表信息的結(jié)構(gòu)體:SOURCETABLE,然后以用戶輸入的NTRIP播發(fā)器IP地址和端口號為參數(shù),利用2.1節(jié)中介紹的1)~6)步通過同步HTTP通信的方式下載資源列表數(shù)據(jù),然后按照NTRIP協(xié)議中定義的資源列表格式對其進(jìn)行解析并在用戶界面中顯示,資源列表中的VRS數(shù)據(jù)源可供用戶選擇連接下載數(shù)據(jù)。

2.2.2 異步通信方式獲取NTRIP差分?jǐn)?shù)據(jù)

獲得所連接播發(fā)器的VRS數(shù)據(jù)源信息后,就可以采用異步通信方式下載差分?jǐn)?shù)據(jù),實現(xiàn)過程為

1)定義如下形式的回調(diào)函數(shù):

void_stdcall MyCallback(HINTERNET hInternet,DWORD dwContext,DWORD dw InternetStatus,LPVOID lpStatusInfo,DWORD dw-StatusInfoLen);

該函數(shù)第二個參數(shù)dwContext可以為每一個不同的環(huán)境變量值設(shè)置不同的操作,第三個參數(shù)dw InternetStatus表示當(dāng)前實際的網(wǎng)絡(luò)通信操作進(jìn)展?fàn)顟B(tài),可以用來捕獲某個已經(jīng)完成的異步通信操作事件并觸發(fā)一定的處理過程。利用該回調(diào)函數(shù)就可對終端與VRS網(wǎng)絡(luò)之間的H TTP通信狀態(tài)進(jìn)行監(jiān)控,并觸發(fā)相應(yīng)事件,以便下載線程進(jìn)行相應(yīng)操作。

2)利用ReadGNSSThreadFunc下載差分?jǐn)?shù)據(jù)線程函數(shù)和回調(diào)函數(shù)異步下載數(shù)據(jù)。

其簡要過程為先創(chuàng)建四個用來標(biāo)志異步通信狀態(tài)的事件句柄,然后注冊1)中定義的回調(diào)函數(shù)My Callback,并利用 InternetOpen函數(shù)創(chuàng)建異步類型的HINTERNET句柄,接下來可按2.1節(jié)中介紹的2)~5)步介紹的方式建立HTTP通信,但是需要注意的是每進(jìn)行下一步之前一定要通過WaitForSingleObject函數(shù)等待回調(diào)函數(shù)監(jiān)測到相應(yīng)的通信步驟已完成,并將相應(yīng)的事件設(shè)置成有信號。

3)完成數(shù)據(jù)下載后,關(guān)閉所有句柄。

從上述過程可以看出,在每一個通訊步驟沒有完成前,主線程并沒有被阻塞,只是回調(diào)函數(shù)在等待該步驟完成,并觸發(fā)一定的事件,然后由主線程捕獲該事件,繼續(xù)進(jìn)行異步通信過程。利用異步通信方式可以很好的解決NTRIP終端差分?jǐn)?shù)據(jù)下載的問題,而且便于進(jìn)行與串口通訊的線程同步。

2.3 定位測試結(jié)果

為驗證本系統(tǒng)的定位精度與可靠性,在控制點上進(jìn)行了VRS定位試驗,圖 2中的(a)、(b)、(c)分別是X、Y、Z三個方向的定位誤差分布圖。

從圖2可以看出,該點所有歷元各方向誤差數(shù)值都在3 cm以內(nèi),說明該系統(tǒng)具有較好的定位精度和穩(wěn)定性。

3 結(jié) 論

結(jié)合PDA平臺以及VRS網(wǎng)絡(luò)實現(xiàn)了RTK定位,通過對嵌入式平臺的Internet異步通信以及接收機(jī)串口通信的研究,找到了利用VRS網(wǎng)絡(luò)差分?jǐn)?shù)據(jù)代替?zhèn)鹘y(tǒng)差分電臺的具體實現(xiàn)途徑,系統(tǒng)組成靈活、成本低,對于實現(xiàn)傳統(tǒng)GPS RTK接收機(jī)向VRS RTK接收機(jī)升級改造具有一定的參考意義。

[1]劉經(jīng)南,劉 暉.連續(xù)運行衛(wèi)星定位服務(wù)系統(tǒng)-城市空間數(shù)據(jù)的基礎(chǔ)設(shè)施[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2003,28(3):259-264.

[2]高星偉.GPS/GLONASS網(wǎng)絡(luò)RTK的算法研究與程序?qū)崿F(xiàn)[D].武漢大學(xué)博士學(xué)位論文,2002.

[3]DENISE D,CHRISTIAN W,GEORG W.NTRIP Version 1.0 Example Implementation[M].Federal Agency for Cartography and Geodesy(BKG),Frankfurt,Germany,2006.

[4]汪曉平,鐘軍等,Visual C++網(wǎng)絡(luò)通信協(xié)議分析與應(yīng)用實現(xiàn)[M].北京:人民郵電出版社,2003.

猜你喜歡
流動站數(shù)據(jù)源差分
RLW-KdV方程的緊致有限差分格式
符合差分隱私的流數(shù)據(jù)統(tǒng)計直方圖發(fā)布
數(shù)列與差分
一種多源數(shù)據(jù)融合過程中的實體關(guān)聯(lián)性計算方法
利用屬性集相關(guān)性與源誤差的多真值發(fā)現(xiàn)方法研究
Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
淺析高校黨員工作流動站的作用及意義
建立教師企業(yè)實踐流動站制度架構(gòu)與可行性分析
關(guān)于獨立院校黨建流動站建設(shè)發(fā)展的有關(guān)問題的思考
網(wǎng)絡(luò)RTK技術(shù)在城鎮(zhèn)地籍控制測量中的應(yīng)用
阳东县| 从化市| 江达县| 崇文区| 万山特区| 麻江县| 祁门县| 镶黄旗| 筠连县| 建阳市| 南华县| 林西县| 衡阳市| 若羌县| 睢宁县| 长宁县| 松桃| 河西区| 宽城| 循化| 安国市| 双流县| 乐东| 勐海县| 洞口县| 荆门市| 四子王旗| 拜泉县| 静海县| 崇州市| 瑞金市| 镇安县| 福安市| 怀来县| 获嘉县| 洛川县| 宁国市| 华安县| 淮北市| 东辽县| 涿州市|