馬懷武,王俊強(qiáng),郝恒強(qiáng),陳 波
(1.68029部隊(duì) ,甘肅 蘭州 730020;2.68011部隊(duì) ,甘肅 蘭州 730020)
基于AUTOCAD的北斗定位數(shù)據(jù)接收模塊的設(shè)計(jì)與實(shí)現(xiàn)*
馬懷武1,王俊強(qiáng)1,郝恒強(qiáng)1,陳 波2
(1.68029部隊(duì) ,甘肅 蘭州 730020;2.68011部隊(duì) ,甘肅 蘭州 730020)
在AUTOCAD平臺的基礎(chǔ)上,通過二次開發(fā),增加北斗接收機(jī)定位數(shù)據(jù)接收及處理模塊,可以快速采集CGCS2000坐標(biāo)系下的定位數(shù)據(jù),達(dá)到快速更新地圖數(shù)據(jù)的目的。據(jù)此,采用C#語言在AUTOCAD平臺上設(shè)計(jì)了北斗定位數(shù)據(jù)的接收及處理模塊,并實(shí)現(xiàn)了數(shù)據(jù)的接收及實(shí)時(shí)處理。
Serialport通信;NMEA-0183協(xié)議;CASS符號庫;AUTOCAD
目前,隨著CGCS2000國家大地坐標(biāo)系的啟用,我國正在加速更新地圖數(shù)據(jù)成果,國家要求用8-10年時(shí)間,完成現(xiàn)有的各類基礎(chǔ)測繪成果和基礎(chǔ)地理信息數(shù)據(jù)庫的坐標(biāo)系向CGCS2000國家大地坐標(biāo)系的過度和轉(zhuǎn)換[1],轉(zhuǎn)換后部分?jǐn)?shù)據(jù)需要實(shí)際測量檢測更新,而當(dāng)前地圖數(shù)據(jù)的野外獲取多數(shù)采用的是GPS定位數(shù)據(jù),自主獨(dú)立性不高,隨著我國正在加速建設(shè)自主研制的北斗衛(wèi)星導(dǎo)航系統(tǒng),采用北斗定位數(shù)據(jù)更新地圖成果將能更好發(fā)揮獨(dú)立自主的優(yōu)勢。目前北斗衛(wèi)星導(dǎo)航系統(tǒng)已經(jīng)能夠?yàn)槲覈爸苓叿秶峁?shí)現(xiàn)實(shí)時(shí)無源定位,北斗衛(wèi)星導(dǎo)航系統(tǒng)采用的是CGCS2000國家大地坐標(biāo)系,定位精度目前能夠達(dá)到10 m,隨著系統(tǒng)建設(shè)的完善,精度將會(huì)得到進(jìn)一步提高。在AUTOCAD平臺基礎(chǔ)上,可以設(shè)計(jì)實(shí)現(xiàn)北斗定位數(shù)據(jù)接收及實(shí)時(shí)處理模塊。
北斗定位數(shù)據(jù)接收及處理模塊是在ATUOCAD平臺的基礎(chǔ)上采用C#語言編程實(shí)現(xiàn)的。早期的AUTOCAD二次開發(fā)語言主要有LISP語言、C++語言、VBA語言,從AUTOCAD 2006開始,Autodesk為其開發(fā)增加了.NET API。.NET API提供了一系列托管的外包類,使開發(fā)人員可在.NET框架下,使用任何支持.NET的語言,如 VB.NET、C#和 Managed C++等對 AUTOCAD進(jìn)行二次開發(fā)[2]。.NET API與傳統(tǒng) ObjectARX 的區(qū)別主要源于在.NET環(huán)境下開發(fā)應(yīng)用程序與在VC環(huán)境下開發(fā)應(yīng)用程序的區(qū)別,在VC環(huán)境下,程序員需要自己管理內(nèi)存的申請和釋放,而.NET框架自行判斷內(nèi)存回收的時(shí)機(jī)并實(shí)行回收,從而解決了C++內(nèi)存泄漏問題,是較理想的AUTOCAD二次開發(fā)工具。
在與北斗接收機(jī)進(jìn)行數(shù)據(jù)交換采用的是串口通信方式,利用.NET框架下的Serialport串口通信類[3]編程可方便實(shí)現(xiàn)所需要串口通訊的多種功能。
北斗衛(wèi)星導(dǎo)航定位系統(tǒng)是我國自主研制的衛(wèi)星導(dǎo)航定位系統(tǒng),空間星座部分由5顆GEO衛(wèi)星和30顆非GEO衛(wèi)星構(gòu)成,還正處于組網(wǎng)建設(shè)階段,建設(shè)完成后能夠在全球范圍內(nèi)提供實(shí)時(shí)無源定位,目前在中國及周邊范圍內(nèi)能夠提供全天候無源定位。
北斗接收機(jī)也采用美國國家海洋電子協(xié)會(huì)制定的NMEA-0183協(xié)議通信。NMEA0183規(guī)定的數(shù)據(jù),采用ANSI標(biāo)準(zhǔn),以串口非同步傳送[4]。協(xié)議規(guī)定每條語句都以字符“$”為起始標(biāo)識符,其后緊跟5個(gè)ASCII字符的地址域值,然后是以域分隔符“,”分隔開的若干數(shù)據(jù)域和一個(gè)校驗(yàn)域,最后以回車換行符(CRLF)作為語句結(jié)束標(biāo)識符。北斗接收機(jī)常用語句有GSA、GGA、ZDA、GSV、RMC等。以BDGGA數(shù)據(jù)為例,其格式如表1所示。
表1 BDGGA數(shù)據(jù)格式Tab.1 Data format of BDGGA
建立數(shù)據(jù)實(shí)時(shí)接收及處理模塊,是在串口讀取北斗定位信息的基礎(chǔ)上,對定位信息進(jìn)行選擇性提取,再對提取的信息實(shí)時(shí)處理,具體流程,如圖1所示。
圖1 北斗定位數(shù)據(jù)接收及處理模塊的設(shè)計(jì)流程Fig.1 Flow chart of design of big dipper positioning data receiving and processing module
模塊設(shè)計(jì)的思路按照圖1所示,采集北斗定位數(shù)據(jù)前,應(yīng)先串口連通北斗衛(wèi)星定位接收機(jī),在AUTOCAD中增加北斗定位數(shù)據(jù)接收模塊,用于實(shí)時(shí)接收北斗定位數(shù)據(jù);采集的數(shù)據(jù)即存為.dat格式,也在ATUOCAD繪圖窗口中進(jìn)行實(shí)時(shí)標(biāo)注點(diǎn)位信息,然后可以利用CASS符號庫對相應(yīng)點(diǎn)位附上符號屬性[5]從而完成數(shù)據(jù)的采集與圖形的繪制工作。采集點(diǎn)位信息具備單擊鼠標(biāo)采集和按時(shí)間間隔采集兩種方式(采集成功的條件是衛(wèi)星數(shù)大于4,且DOP值小于6),在采集更新點(diǎn)狀地物時(shí)一般采用單擊采集方式,而在比較空曠的地方,采集更新線狀地物時(shí)可以采用按時(shí)間間隔采集方式。兩種方式各具特點(diǎn),根據(jù)不同的環(huán)境靈活使用,可以提高效率。
通過Serialport串口通信類編程可以實(shí)時(shí)提取BD定位信息。首先要編程實(shí)現(xiàn)Serialport串口通信參數(shù)設(shè)置,才能同步讀取定位信息。讀取北斗定位數(shù)據(jù)是在AUTOCAD標(biāo)繪點(diǎn)位信息的前提,其關(guān)鍵代碼如下:
采用上述代碼能夠?qū)崿F(xiàn)在AUTOCAD繪圖窗口中實(shí)時(shí)標(biāo)記點(diǎn)位信息,并通過CASS符號庫編輯地物信息。利用timer控件,并設(shè)置timer1_Tick事件可以按時(shí)間間隔方式采集定位信息,在寬闊無遮擋的地域,采用按時(shí)間間隔自動(dòng)存儲(chǔ)方式采集道路信息,能提高工作效率。
圖2是在AUTOCAD中設(shè)計(jì)的一個(gè)點(diǎn)地物采集界面,可實(shí)時(shí)查看當(dāng)前位置以及精度因子情況,通過投影參數(shù)設(shè)置,數(shù)據(jù)源文件新建或打開,就可在基于AUTOCAD平臺以及CASS符號庫的基礎(chǔ)上,對地圖數(shù)據(jù)進(jìn)行實(shí)時(shí)采集更新,并可對采集的數(shù)據(jù)進(jìn)行查看編輯。
圖2 數(shù)據(jù)采集查看界面Fig.2 The interface of collecting and viewing of data
設(shè)計(jì)北斗定位數(shù)據(jù)接收及處理模塊有助于更新地圖數(shù)據(jù),尤其是對導(dǎo)航電子地圖道路網(wǎng)的更新,具有一定的參考價(jià)值。圖3是實(shí)際采集了一個(gè)加油站及道路的某段,通過CASS符號庫將采集的信息賦予相應(yīng)符號屬性。
圖3 實(shí)際采集效果Fig.3 The effect of the actual collecting
本文設(shè)計(jì)了北斗定位數(shù)據(jù)的接收模塊并實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)處理,在更新導(dǎo)航電子地圖中,可以較好的運(yùn)用到道路網(wǎng)的更新上,具有效率高的特點(diǎn)。隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)空間衛(wèi)星數(shù)的增多,地面差分站建設(shè)的完善,以及測量型北斗接收機(jī)的普及,北斗定位精度將得到較大提高,屆時(shí),該方法將可以運(yùn)用到大比例尺地形圖的更新上。
[1]國家測繪局.關(guān)于印發(fā)《啟用2000國家大地坐標(biāo)系實(shí)施方案》的通知[Z].北京:國家測繪局,2008.
[2]李冠億.深居淺出 AUTOCAD二次開發(fā)[EB/OL].http://www.BimCad.org.
[3]翟希述,王寶興,范淼.基于Visual C#的串口通訊程序設(shè)計(jì)[J].電子科技,2011,24(2):24 -26.
[4]李建文,李軍正.衛(wèi)星導(dǎo)航原理與應(yīng)用[M].鄭州:解放軍信息工程大學(xué),2007:279 -283.
[5]吉緒發(fā),王洪飛.南方軟件CASS6.0用戶手冊[K].廣州:南方數(shù)碼科技有限公司,2004.
[6]呂志平,張建軍,喬書波.大地測量學(xué)基礎(chǔ)[M].北京:解放軍出版社,2005:176-203.
Design and Realization of Receiving Mold Piece of the Positioning Data of Compass Based on AUTOCAD
MA Huai-wu1,WANG Jun-qiang1,HAO Heng-qiang1,Chen-Bo2
(1.68029 Troops,Lanzhou Gansu 730020 China;2.68011 Troops,Lanzhou Gansu 730020 China)
Increasing the receiving and processing mold piece of big dipper positioning data of Compass based on the platform of AUTOCAD,we can collect the positioning data of the coordinate system of CGCS2000 quickly for updating map data.This paper has realized receiving and processing the positioning data of Compass based on AUTOCAD.NET by using C#Language.
Serial-port communication;protocol of NMEA-0183;sign database of CASS;AUTOCAD
P 208;P 209
B
1007-9394(2012)02-0026-03
2012-01-10
馬懷武(1972~),男,甘肅靖遠(yuǎn)人,碩士,高級工程師,主要研究方向:大地測量與導(dǎo)航工程。