程喆,肖躍軍
(1.中國(guó)人民解放軍61175部隊(duì),湖北武漢 430074; 2.中國(guó)地質(zhì)大學(xué)信息工程學(xué)院,湖北武漢 430074)
基于PDA的四等平面導(dǎo)線測(cè)量記簿軟件設(shè)計(jì)與實(shí)現(xiàn)
程喆1,2*,肖躍軍2
(1.中國(guó)人民解放軍61175部隊(duì),湖北武漢 430074; 2.中國(guó)地質(zhì)大學(xué)信息工程學(xué)院,湖北武漢 430074)
導(dǎo)線測(cè)量是測(cè)量工作的重要內(nèi)容之一,但依靠人工記錄和檢核會(huì)增大勞動(dòng)強(qiáng)度,降低作業(yè)效率。針對(duì)這一問(wèn)題,本文采用目前主流的編程語(yǔ)言Visual C++進(jìn)行編程實(shí)現(xiàn),開(kāi)發(fā)了基于PDA的導(dǎo)線測(cè)量記簿軟件。詳細(xì)介紹了軟件的總體結(jié)構(gòu)、工作流程和主要功能。應(yīng)用結(jié)果表明:該軟件能滿足多儀器精度、多類型導(dǎo)線測(cè)量的需求,平差結(jié)果準(zhǔn)確可靠。
PDA記錄器;導(dǎo)線測(cè)量記簿軟件;軟件總體結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)
導(dǎo)線測(cè)量是測(cè)量工作的重要內(nèi)容之一,在傳統(tǒng)導(dǎo)線測(cè)量作業(yè)中,數(shù)據(jù)的記錄和檢核工作主要由人工完成,勞動(dòng)強(qiáng)度大,效率低,如果出現(xiàn)錯(cuò)誤則可能導(dǎo)致返工,同時(shí)紙質(zhì)記錄也不利于后續(xù)數(shù)據(jù)處理,因此,手工記錄已成為制約導(dǎo)線測(cè)量效率和質(zhì)量水平提高的瓶頸,電子化、自動(dòng)化地記錄、檢核和平差是測(cè)量發(fā)展的趨勢(shì)。
近年來(lái),PDA由于其體積小、智能化、與PC數(shù)據(jù)交換方便等優(yōu)勢(shì),在測(cè)量工作中得到廣泛應(yīng)用?;赑DA的導(dǎo)線測(cè)量記簿軟件操作簡(jiǎn)單,自動(dòng)檢核限差,平差計(jì)算,后期處理也很方便,極大提高了作業(yè)效率和生產(chǎn)質(zhì)量。目前基于PDA的主流開(kāi)發(fā)語(yǔ)言有VB和VC,由于PDA體積小,操作方便的同時(shí)往往硬件配置不高,這就對(duì)程序的表達(dá)能力和運(yùn)行效率提出了更高的要求[1,2]。而VB雖然簡(jiǎn)單易學(xué),容易上手,但并不是面向?qū)ο蟮恼Z(yǔ)言,不支持指針,表達(dá)能力有限,程序運(yùn)行效率較低[3]。VC++是 Microsoft Visual Studio 2008中內(nèi)置的集成開(kāi)發(fā)環(huán)境,功能強(qiáng)大,運(yùn)行效率高,程序開(kāi)發(fā)的靈活性強(qiáng),是理想的 PDA程序開(kāi)發(fā)軟件[4,5]。
2.1軟件總體結(jié)構(gòu)及工作流程
考慮到Windows Mobile平臺(tái)是微軟針對(duì)移動(dòng)設(shè)備而開(kāi)發(fā)的操作系統(tǒng),該平臺(tái)非常接近于桌面版的Windows,可擴(kuò)展性好,操作簡(jiǎn)便,使用廣泛[6]。因此,導(dǎo)線測(cè)量記簿軟件基于Windows Mobile開(kāi)發(fā),軟件由項(xiàng)目管理、導(dǎo)線測(cè)量和幫助信息三大部分組成。其總體結(jié)構(gòu)如圖1所示,工作流程如圖2所示。
圖1 軟件總體結(jié)構(gòu)圖
2.2數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)存儲(chǔ)以工程名作為基本記錄單元,用后綴名區(qū)分?jǐn)?shù)據(jù)類型。每個(gè)工程包含五個(gè)文件:工程信息文件(*.PRJ)、角度觀測(cè)文件(*.ANG)、距離觀測(cè)文件(*.DIS)、平差數(shù)據(jù)文件(*.ADJ)和平差結(jié)果文件(*.RES)。工程信息文件存儲(chǔ)工程相關(guān)基本信息,角度和距離觀測(cè)文件存儲(chǔ)各站各測(cè)回角度和距離觀測(cè)數(shù)據(jù),角度觀測(cè)值以XX.XXXXX格式輸入和存儲(chǔ),整數(shù)部分表示度,小數(shù)點(diǎn)后兩位表示分,最后三位表示秒,精確到0.1秒。平差數(shù)據(jù)文件存儲(chǔ)每站角度和距離觀測(cè)結(jié)果,作為平差的原始輸入數(shù)據(jù),平差結(jié)果文件存儲(chǔ)平差產(chǎn)生的結(jié)果數(shù)據(jù)。各文件結(jié)構(gòu)和字段類型如表1~表5所示。
圖2 軟件工作流程圖
工程信息文件結(jié)構(gòu) 表1
角度觀測(cè)文件結(jié)構(gòu) 表2
距離觀測(cè)文件結(jié)構(gòu) 表3
平差數(shù)據(jù)文件結(jié)構(gòu) 表4
平差結(jié)果文件結(jié)構(gòu) 表5
3.1開(kāi)發(fā)環(huán)境搭建
要進(jìn)行基于PDA的程序開(kāi)發(fā),按下列步驟搭建開(kāi)發(fā)環(huán)境[7,8]:
(1)安裝Visual Studio 2008及相關(guān)配件;
(2)安裝Microsoft ActiveSync 6.1,使用它可以在PC和PDA之間方便地進(jìn)行數(shù)據(jù)同步;
(3)安裝Windows Mobile 6.0 Professional SDK,基于Mobile平臺(tái)的開(kāi)發(fā)工具包;
(4)安裝 Windows Mobile 6 Professional Images (CHS),基于中文的設(shè)備仿真器。
3.2基于mobile的MFC程序創(chuàng)建
(1)啟動(dòng)Visual Studio 2008,在項(xiàng)目類型窗口中,選擇Visual C++→智能設(shè)備→MFC智能設(shè)備應(yīng)用程序,輸入工程名稱、選擇工程位置,點(diǎn)擊下一步;
(2)在MFC智能設(shè)備應(yīng)用程序向?qū)е?,從已安裝的SDK中選出Windows Mobile 6.0 Professional SDK,點(diǎn)擊下一步;
(3)選擇需要的應(yīng)用程序類型、生成的類名和文件名,點(diǎn)擊完成。
至此,一個(gè)基于Windows Mobile 6.0的MFC應(yīng)用程序就創(chuàng)建完成了。
3.3軟件功能實(shí)現(xiàn)
(1)工程信息錄入
如圖3所示,輸入項(xiàng)目名稱、儀器名稱、作業(yè)日期、天氣、氣壓、溫度、觀測(cè)者、記錄者,記錄工程的基本信息。程序擁有相對(duì)完備的選擇模式,導(dǎo)線類型有附合導(dǎo)線、閉合導(dǎo)線和支導(dǎo)線三種選擇模式,儀器精度有DJ1、DJ2兩種選擇模式。選擇不同的模式,程序會(huì)在下一步自動(dòng)調(diào)用相應(yīng)的測(cè)量信息錄入窗口并內(nèi)置相應(yīng)的限差要求,點(diǎn)擊保存時(shí)所有信息將被寫入工程信息文件(*.PRJ),程序進(jìn)入已知坐標(biāo)信息錄入界面。
如圖4所示,左圖和右圖分別對(duì)應(yīng)附合導(dǎo)線和閉合導(dǎo)線已知坐標(biāo)錄入界面,附合導(dǎo)線以測(cè)量時(shí)導(dǎo)線推進(jìn)方向來(lái)確定起始邊、結(jié)束邊和第一、第二點(diǎn)。點(diǎn)擊確定時(shí)已知點(diǎn)坐標(biāo)將被寫入平差數(shù)據(jù)文件(*.ADJ),并進(jìn)入測(cè)角界面。
圖3 工程信息錄入
圖4 導(dǎo)線已知坐標(biāo)錄入
(2)一測(cè)回測(cè)角
如圖5所示,程序會(huì)自動(dòng)根據(jù)輸入的已知點(diǎn)坐標(biāo)確定測(cè)站點(diǎn)和后視點(diǎn),并提示奇數(shù)測(cè)回測(cè)左角,偶數(shù)測(cè)回測(cè)右角。用戶只需在窗口指定位置輸入測(cè)角信息,包括前視點(diǎn)名、后視和前視的盤左和盤右分別對(duì)應(yīng)的第一、二次讀數(shù)。點(diǎn)擊計(jì)算后,程序會(huì)計(jì)算并檢核兩次重合讀數(shù)差和一測(cè)回內(nèi)2C互差,當(dāng)任意一項(xiàng)超限時(shí),彈出警告窗口,告知超限項(xiàng)目,要求重測(cè),并將所有已錄入數(shù)據(jù)清空;如果沒(méi)有超限,則對(duì)每?jī)纱巫x數(shù)求平均值,并將盤左盤右的2C互差平均配賦,計(jì)算出一測(cè)回角度值,顯示在指定位置。為防止偽造成果,測(cè)站數(shù)、測(cè)回?cái)?shù)、角度值、2C互差以及四個(gè)角度均值只用于顯示,不允許用戶編輯。在點(diǎn)擊結(jié)果查看時(shí),進(jìn)入一測(cè)回信息瀏覽界面。
圖5 一測(cè)回測(cè)角
如圖6所示,一測(cè)回測(cè)角的前視、后視點(diǎn)名,盤左、盤右觀測(cè)值,(L+R)/2和一測(cè)回平均方向在表格中顯示,供用戶查看,但不提供編輯,點(diǎn)擊保存后,一測(cè)回測(cè)量數(shù)據(jù)將被寫入角度觀測(cè)文件(*.ANG)。
圖6 一測(cè)回信息瀏覽
確認(rèn)本測(cè)回?zé)o誤后,點(diǎn)擊下一測(cè)回繼續(xù)測(cè)角,程序會(huì)自動(dòng)清空所有輸入和計(jì)算的數(shù)值,測(cè)站數(shù)不變,測(cè)回?cái)?shù)加1,為防止用戶誤改,程序設(shè)定當(dāng)測(cè)回?cái)?shù)大于1時(shí),前視點(diǎn)點(diǎn)名窗口不再允許編輯。當(dāng)所需測(cè)回?cái)?shù)達(dá)到要求時(shí),點(diǎn)擊下一測(cè)回,進(jìn)入測(cè)回間互差檢核界面。
(3)測(cè)回間互差檢核
如圖7所示,程序從角度觀測(cè)文件(*.ANG)中讀取左角和右角的觀測(cè)值,分別列于左右兩個(gè)列表中。點(diǎn)擊計(jì)算后,分別計(jì)算并檢核左角和右角的各測(cè)回互差,如果超限,則彈出警告窗口,告知超限項(xiàng)目,要求重測(cè);如果沒(méi)有超限,則分別取左、右角各測(cè)回觀測(cè)值平均數(shù)作為左角、右角均值。根據(jù)左、右角均值計(jì)算閉合差,如果超限,則彈出警告窗口,要求重測(cè);如果沒(méi)有超限,則將閉合差反號(hào)配賦,得出該站最終角度值,程序自動(dòng)將測(cè)站點(diǎn)號(hào)和最終角度值寫入平差數(shù)據(jù)文件(*.ADJ)。
圖7 測(cè)回間互差檢核
出現(xiàn)超限項(xiàng)目后,用戶可以根據(jù)兩個(gè)列表框中左角和右角的觀測(cè)值,確定含有明顯離群觀測(cè)值的測(cè)回進(jìn)行重測(cè),點(diǎn)擊重測(cè)測(cè)回,進(jìn)入重測(cè)測(cè)回界面,該界面與一測(cè)回測(cè)角界面類似(如圖5所示),不同的是重測(cè)測(cè)回界面允許輸入重測(cè)測(cè)回?cái)?shù),不允許查看結(jié)果和進(jìn)入下一測(cè)回,重測(cè)一測(cè)回合限后,程序會(huì)直接返回測(cè)回間互差檢核界面,繼續(xù)檢核。測(cè)回間合限后,點(diǎn)擊開(kāi)始距離測(cè)量,進(jìn)入距離測(cè)量界面。
(4)距離測(cè)量
如圖8所示,程序會(huì)自動(dòng)根據(jù)測(cè)角信息確定測(cè)站點(diǎn)、測(cè)站數(shù)、后視點(diǎn)和前視點(diǎn),用戶只需在窗口指定位置輸入測(cè)距信息,包括后視和前視的盤左和盤右分別對(duì)應(yīng)的第一、二、三、四次讀數(shù)。點(diǎn)擊計(jì)算后,程序會(huì)計(jì)算并檢核四次重合讀數(shù)最大互差和各測(cè)回中數(shù)間最大互差,如果任意一項(xiàng)超限,則彈出警告窗口,告知超限項(xiàng)目,要求重測(cè),并將所有已錄入數(shù)據(jù)清空;如果沒(méi)有超限,則將測(cè)距過(guò)程數(shù)據(jù)保存到測(cè)距觀測(cè)文件(*. DIS)中,測(cè)距結(jié)果保存到平差數(shù)據(jù)文件(*.ADJ)中。為防止篡改數(shù)據(jù),測(cè)站數(shù)、前視距離和后視距離只用于顯示,不允許用戶編輯。
圖8 距離測(cè)量
所有項(xiàng)目合限后,點(diǎn)擊下一站,返回一測(cè)回測(cè)角界面(如圖5),重新開(kāi)始下一站的觀測(cè),測(cè)站數(shù)自動(dòng)加1。如果整個(gè)測(cè)段觀測(cè)結(jié)束,則點(diǎn)擊結(jié)束測(cè)量,進(jìn)入導(dǎo)線平差界面。
(5)導(dǎo)線平差
程序從平差數(shù)據(jù)文件(*.ADJ)中讀取所有點(diǎn)名、觀測(cè)角、觀測(cè)邊長(zhǎng)、已知點(diǎn)坐標(biāo)和已知方位角,顯示在列表中。點(diǎn)擊計(jì)算后,自動(dòng)計(jì)算各邊坐標(biāo)方位角,與已知方位角相比得出方位角閉合差,計(jì)算方位角限差,如果超限,則要求重測(cè);如果沒(méi)有超限,則將方位角閉合差反號(hào)配賦,計(jì)算各邊X和Y坐標(biāo)變化量,得出坐標(biāo)閉合差fx、fy和導(dǎo)線全長(zhǎng)相對(duì)閉合差K。將K與限差比較,如果超限,則彈出警告窗口,要求重測(cè);如果沒(méi)有超限,則將坐標(biāo)閉合差反號(hào)配賦,得出所有測(cè)站的X、Y坐標(biāo)(如圖9所示)。點(diǎn)擊保存,程序?qū)⒂?jì)算結(jié)果按照表5的格式保存到平差結(jié)果文件(*.RES)中。
圖9 導(dǎo)線平差
圖10 限差瀏覽
(6)限差瀏覽
如圖10所示,為方便用戶隨時(shí)瀏覽,程序?qū)⑺牡葘?dǎo)線測(cè)量限差列出。參考的規(guī)范有:CH/T 2007-2001三、四等導(dǎo)線測(cè)量規(guī)范。
將該軟件應(yīng)用于實(shí)際生產(chǎn)作業(yè)中,實(shí)踐結(jié)果表明,該軟件運(yùn)行正常,操作簡(jiǎn)單,處理智能。平差結(jié)果準(zhǔn)確可靠,輸出文件格式方便后續(xù)處理,縮短了作業(yè)時(shí)間,節(jié)約了經(jīng)費(fèi),能滿足多儀器精度、多類型導(dǎo)線測(cè)量需求。
[1]AndyWigley.Microsoft mobile移動(dòng)應(yīng)用開(kāi)發(fā)寶典[M].北京:清華大學(xué)出版社,2008.
[2]姜東,張東濤.導(dǎo)線測(cè)量記錄程序的研發(fā)[J].大地測(cè)量與地球動(dòng)力學(xué),2013,33(Ⅱ):132~134.
[3]楊海明,周良松,章亞平.基于PDA的導(dǎo)線測(cè)量記簿系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[J].地理空間信息,2009,7(3):108~110.
[4]李建軍,劉晟,林建炬等.測(cè)距高程導(dǎo)線數(shù)據(jù)處理軟件設(shè)計(jì)與實(shí)現(xiàn)[J].海洋測(cè)繪,2013,33(2):63~66.
[5]常魯群,修金城.基于eVB控件的導(dǎo)線測(cè)量軟件[J].城市勘測(cè),2009(2):138~140.
[6]左海燕,張春雨,左燕鳳.導(dǎo)線測(cè)量記錄簿的自動(dòng)化生成[J].城市勘測(cè),2009(6):112~114.
[7]孟曉峰,魏二虎,龔真春等.高程導(dǎo)線數(shù)據(jù)采集與處理系統(tǒng)的開(kāi)發(fā)應(yīng)用[J].測(cè)繪信息與工程,2008,33(4):29~30.
[8]高志偉,宋雅娟,牛江川等.Visual C++程序設(shè)計(jì)教程與上機(jī)指導(dǎo)[M].北京:北京大學(xué)出版社,2006.
Design and Implementation about Fourth Plane Traverse Electronic Book Software on the Basis of PDA
Cheng Zhe1,2,Xiao Yuejun2
(1.61175 Troops,Wuhan 430074,China;2.Information Engineering College,China University of Geosciences,Wuhan 430074,China)
Traverse survey is an important part of survey,but the way which recording and inspection depend on people will increase the labor intensity and reduce efficiency.To solve the problem,this paper uses the mainstream programming language Visual C++to implement the program,realize traverse electronic book software on the Basis of PDA and introduce its structure,workflow and main function.The application of Software shows that it can meet the multi-instrument precision and multi-type traverse measurement needs,the results of adjustment is accurate and reliable.
PDA recorder;traverse electronic book software;software structure;data structure
1672-8262(2016)04-137-05
P209
B
2015—11—21
程喆(1989—),男,助理工程師,碩士研究生,從事GPS數(shù)據(jù)處理科研與生產(chǎn)工作。