梁曉暉 河北軟件職業(yè)技術(shù)學(xué)院
隨著城市建設(shè)、城市規(guī)劃、企業(yè)改擴(kuò)建以及公用事業(yè)的發(fā)展,地下管線資料已經(jīng)成為必不可少的施工及管理依據(jù)。通過地下管線普查,建立完整、準(zhǔn)確、科學(xué)的地下管線信息管理系統(tǒng),可以為合理利用地下空間、地下與地面工程規(guī)劃、設(shè)計(jì)、施工與管理提供完整的基礎(chǔ)數(shù)據(jù),并使地下空間與地面建設(shè)協(xié)調(diào)構(gòu)成有機(jī)整體,進(jìn)而實(shí)現(xiàn)地下管線的動(dòng)態(tài)管理。
頂管施工是現(xiàn)代城市管線施工的一種常用手段,以此方式完成后留下的工作井(豎井)一般深埋在地表以下,地下豎井體積龐大且地面所留井口較小。因此,要想獲取地下豎井內(nèi)部形狀及尺寸數(shù)據(jù),需要引入科學(xué)儀器進(jìn)行原始數(shù)據(jù)采集,并通過軟件編程進(jìn)行計(jì)算和呈現(xiàn)。
本文主要研究地下豎井內(nèi)部形狀及尺寸測(cè)量系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。
本系統(tǒng)主要由軟件和硬件兩大部分組成。其中,軟件方面,主要采用C#作為編程語言,sqlserver2010 為數(shù)據(jù)庫,vs2017 為開發(fā)平臺(tái),界面搭建則采用wpf 技術(shù),網(wǎng)絡(luò)通信采用串口通信技術(shù)[1]。硬件部分則主要由豎井管道潛探儀來完成數(shù)據(jù)測(cè)量。
系統(tǒng)的整體設(shè)計(jì)思路為:豎井管道潛探儀每隔一定角度旋轉(zhuǎn)一次并發(fā)送數(shù)據(jù),C#通過socket 編程實(shí)時(shí)接收數(shù)據(jù),并進(jìn)行實(shí)時(shí)呈現(xiàn),當(dāng)旋轉(zhuǎn)一周完畢時(shí),可以在軟件呈現(xiàn)系統(tǒng)中看到豎井內(nèi)部形狀及尺寸。
下面主要就核心的軟件技術(shù)進(jìn)行探討。
軟件啟動(dòng)硬件,這部分需要根據(jù)硬件廠商提供的api,調(diào)用對(duì)應(yīng)的接口函數(shù)。首先需要仔細(xì)閱讀廠家技術(shù)文檔并在實(shí)際開發(fā)環(huán)境中進(jìn)行demo 測(cè)試,無誤后再集成到系統(tǒng)中。
在C#語言中,Timer 是一個(gè)定時(shí)器,它可以按照指定的時(shí)間間隔觸發(fā)一個(gè)事件,進(jìn)而實(shí)現(xiàn)每隔一段時(shí)間執(zhí)行某段代碼的效果。本系統(tǒng)主要利用Timer 的這一特性,完成原始測(cè)量數(shù)據(jù)的實(shí)時(shí)獲取。可以通過設(shè)置Timer 組件的Intervel 屬性可以控制數(shù)據(jù)的接收頻率。
當(dāng)主控窗體啟動(dòng)了井壁測(cè)量模塊后,豎井管道潛探儀開始工作,呈現(xiàn)窗口彈出。
接收數(shù)據(jù)主要用到了C#的串口通信技術(shù),通過socket 編程完成測(cè)量?jī)x器發(fā)送過來的數(shù)據(jù)接收。
GDI+(Graphics Device Interface Plus)也就是圖形設(shè)備接口,它提供了各種豐富的圖形圖像處理功能;在C#.NET 中,使用GDI+處理二維(2D)的圖形和圖像。GDI+繪圖用到的類主要存放在System.Drawing 命名空間下。
為了方便數(shù)據(jù)的直觀顯示,系統(tǒng)主要采用GDI+繪圖技術(shù),以二維坐標(biāo)系來動(dòng)態(tài)展示井壁尺寸及形狀,并輔以文字同步描述。為了適應(yīng)多種屏幕尺寸,尤其是小尺寸屏幕,系統(tǒng)提供了坐標(biāo)縮放功能。
1.基本功能
(1)以豎井管道潛探儀所在位置為坐標(biāo)系原點(diǎn)。每接收到一個(gè)數(shù)據(jù),在平面直角坐標(biāo)系中繪制一個(gè)小圓點(diǎn),該圓點(diǎn)到坐標(biāo)系原點(diǎn)的長(zhǎng)度即為豎井管道潛探儀發(fā)回的該位置的距離數(shù)據(jù)。當(dāng)旋轉(zhuǎn)一周,可以在直角坐標(biāo)系中直觀看到由各個(gè)圓點(diǎn)連接起來構(gòu)成的圖形,進(jìn)而識(shí)別井壁形狀。
(2)為了方便測(cè)量數(shù)據(jù)的直觀讀取和精確讀取,每接收到一個(gè)數(shù)據(jù),同時(shí)在坐標(biāo)系右側(cè)區(qū)域右側(cè)以文字的方式,在相應(yīng)的文本框中動(dòng)態(tài)顯示該點(diǎn)的距離數(shù)據(jù)。
(3)為了方便在不同尺寸的屏幕上直觀顯示,系統(tǒng)提供了4 檔坐標(biāo)縮放功能。實(shí)現(xiàn)原理為:在繪制函數(shù)中提供一個(gè)縮放參數(shù),系統(tǒng)默認(rèn)采用中級(jí)縮放標(biāo)準(zhǔn),用戶可以通過界面上的縮放按鈕來動(dòng)態(tài)設(shè)置縮放參數(shù)進(jìn)而實(shí)現(xiàn)坐標(biāo)系的縮放。
2.繪制過程
該繪制過程主要分為2步:初始化畫布及繪制數(shù)據(jù)[2]。首先通過LoadCanvasBG()函數(shù)加載背景并定位畫布。然后,通過drawArrow()函數(shù)繪制坐標(biāo)系、刻度、刻度描述和輔助線。其中在drawArrow()函數(shù)中,通過調(diào)用DrawScale(myScaleLevel scaleLevel)()函數(shù)來實(shí)現(xiàn)坐標(biāo)的系縮功能。最后通過Draw()方法來在給定縮放級(jí)別上的坐標(biāo)系中進(jìn)行圖形繪制。
隨著人工智能技術(shù)的發(fā)展,將會(huì)有越來越先進(jìn)的測(cè)量?jī)x器為地下豎井內(nèi)部形狀尺寸的測(cè)量提供越來越精準(zhǔn)的原始數(shù)據(jù),而呈現(xiàn)軟件也會(huì)隨著相關(guān)行業(yè)人員工作需求和決策內(nèi)容不斷與時(shí)俱進(jìn)。本文提供的系統(tǒng)思想和實(shí)現(xiàn)思路可以為相關(guān)系統(tǒng)及類似應(yīng)用系統(tǒng)的構(gòu)建提供有益的參考。