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