999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

RD1型電加熱道岔融雪系統數據工具軟件的設計與實現

2021-04-03 02:23:58李忠明
鐵路通信信號工程技術 2021年3期
關鍵詞:方法

甄 良,李忠明

(北京全路通信信號研究設計院集團有限公司,北京 100070)

RD1 型電加熱道岔融雪系統是根據國內鐵路道岔特點而研制開發的,廣泛適用于客運專線、鐵路干線、重載線路和城際軌道交通等領域,適用于電氣化和非電氣化牽引區段各種類型的道岔。隨著計算機軟件技術不斷發展,為系統定制化開發數據工具軟件的需求應運而生。

1 軟件需求

根據站場工程設計圖紙,通過軟件將融雪系統的操作界面圖形、系統參數配置等形成數據文件,采用具有交互功能且具備統一標準化的語言格式描述并形成文件存儲。

道岔融雪系統的界面顯示主要由控制柜、變壓器、道岔、區段、命令按鈕、站名文本、狀態標簽等圖形元素構成。通過系統菜單或鼠標快捷菜單實現按照設計圖紙及界面顯示需求將上述不同類型界面圖形元素生成,并對單個或多個圖形元素進行動態編輯。以控制柜為例,對圖元屬性說明如表1 所示。

表1 圖元屬性樣例表Tab.1 Examples of attributes of graphic elements

2 軟件設計與實現

軟件開發基于.NET FrameWork4.6 的WinForm窗體應用,開發語言使用C#,開發工具使用Visual Studio2019,編譯目標平臺為x86。

2.1 類設計與實現

1)圖元數據類

圖1 圖元類繼承關系圖Fig.1 Relationship between basic and derivative graphic elements

根據軟件需求共設計1 個抽象基類ShapeGraph 和6個派生子類CabinetGraph、SectionGraph、SwitchGraph、CmdButGraph、StaLableGraph、TransformGraph,各類之間繼承關系如圖 1 所示。

2)操作接口類

在圖元數據類和窗體類之間的StaGraph 類,作用是降低數據與顯示、操作的耦合;為數據序列化和反序列化提供數據聚合的支持。

2.2 數據和方法設計

1)類繼承方法

派生子類根據不同的圖元類型實現圖元的繪制(主窗體、預覽窗體)、圖元的操作(響應菜單命令、鼠標、鍵盤進行移動、刪除、關聯等)、屬性數據的編輯保存。引入抽象基類ShapeGraph,各子類通過繼承獲得父類屬性數據、操作方法接口,有效降低代碼冗余。

2)泛型方法

泛型在C#中有很重要的地位,在編寫軟件時經常會遇到功能非常相似的模塊,只是處理的數據不一樣,泛型的出現就是專門來解決這個問題的。

各個圖元對象封裝在不同對象List 中,其移動函數方法相近,通過構造泛型函數:

public void MoveDevByOffsetValue(Listobjlist,int OffsetX,int OffsetY,int HScrollNum,int VScrollNum)

實現對不同對象使用同一個泛型函數進行移動操作。

方法中使用了Dynamic 對象,將泛型方法和動態對象進行結合使用,在泛型類型檢查約束之下,發揮動態對象靈活性同時保障了使用安全。

2.3 數據與窗體的代碼解耦

窗體類為圖元數據類提供數據圖形化顯示、操作命令的接口;圖元數據類通過響應窗口類提供的操作命令實現圖元對象生成、編輯、數據保存,并為窗體類顯示提供必要的數據和調用方法。

Stagraph 類作為數據類和窗體類之間的解耦接口類,在圖元對象和窗體類之間使用固定的接口函數,數據和窗體的代碼解耦如圖 2 所示。

圖2 各類之間的數據及方法接口關系圖Fig.2 Relationship between data and interface method of each type of objects

2.4 正則表達式使用

.NET 下的System.Text.RegularExpressions正則表達式引擎為在軟件開發中使用正則表達式提供了強大支持。以軟件中使用正則表達式實現用戶在文本框中輸入的數據同時進行輸入數據檢查為例:正則表達式定義:private const string pattern=@”^[0-9]*$”,限制輸入字符為數字0~9,在控件的鍵盤事件函數內調用該規則檢查實現。

2.5 GDI+繪圖

GDI+相比于GDI 提供了更為強大的繪圖功能,通過簡單地創建一個圖形對象(Graphics),使用面向對象的編程方式調用它的方法即可。在窗體繪圖中應注意資源釋放、繪圖坐標系轉換調整和顯示刷新機制方面的內容。

2.6 數據序列化

1)為什么使用序列化

使用序列化可以實現持久化內存中的對象,將對象以數據的形式便捷的進行存儲、網絡交互,并在需要的時候使用反序列化根據數據重構對象。

2)序列化的方法比較和選擇

序列化的方法有多種,C#常見的有二進制(流)、XML、Soap 等。各種方法均有其適用性。本文采用的是Json 序列化方法。

3)Json.NET 序列化

.NET 支持Json 序列化的方法和庫很多,本文選用了Newtonsoft 的Json.NET 實現。

技術要點在于如何將不同對象的List 正確序列化,并在反序列化時按照不同的類型進行對象準確重構。本文采取了將Newtonsoft.Json.Linq 中JObject對象與其他對象互轉的泛型方法與鍵值讀取的方法結合的方法實現。

2.7 軟件界面

本文以某4 股道的中間站施工圖紙為輸入,使用數據工具進行了數據設計,共計4 組道岔、2 臺融雪控制柜、48 臺變壓器。通過軟件,可以對上述的設備及其名稱、參數按照設計需要使用鼠標進行位置調整、數據輸入,形成數據文件,供現場控制軟件使用,保持顯示一致。最終數據完成界面如圖 3 軟件界面所示。

圖3 軟件界面Fig.3 Software interface

3 結論

以道岔融雪數據設計工具的設計和開發實現過程為基礎,以使用C#開發語言和.NET 框架開發交互式Windows 桌面軟件的思路和需要關注和掌握的技術要點為側重,結合代碼實例對技術實現細節進行展現。通過數據工具軟件的開發對系統界面和數據進行定制、標準化的數據格式封裝,在降低數據制作的工作強度、統一數據標準、降低數據錯誤等方面具有實用價值。

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 亚洲小视频网站| jizz在线观看| 色综合五月| 日韩毛片在线视频| 波多野结衣一区二区三视频| 91黄视频在线观看| 亚洲人成影院在线观看| 欧美精品另类| 亚洲精品少妇熟女| 91人妻在线视频| 亚洲视频免| 午夜精品久久久久久久无码软件| 亚洲无码视频一区二区三区| 综合亚洲网| 国产白浆一区二区三区视频在线| 婷婷亚洲视频| 精品国产成人a在线观看| 色偷偷一区| 亚洲色婷婷一区二区| 中文字幕久久精品波多野结| 国产无码高清视频不卡| 亚洲an第二区国产精品| 精品国产免费人成在线观看| 美女内射视频WWW网站午夜| 人妻中文久热无码丝袜| 欧美福利在线观看| 日韩欧美中文字幕在线韩免费| 国产亚洲高清视频| 亚洲综合精品第一页| 91黄视频在线观看| 一本大道香蕉中文日本不卡高清二区 | 国产区在线看| 亚洲视频色图| 中国特黄美女一级视频| 亚洲人免费视频| 欧美怡红院视频一区二区三区| 亚洲欧美成人在线视频| 国产正在播放| 国产丝袜91| 国产高清免费午夜在线视频| 国产麻豆精品手机在线观看| a级毛片视频免费观看| 青青操视频在线| 亚洲精品在线91| 最新国产精品第1页| 美女无遮挡被啪啪到高潮免费| 精品无码一区二区三区在线视频| 精品久久久久无码| 国产精品尹人在线观看| 日韩无码真实干出血视频| 大学生久久香蕉国产线观看| 欧美福利在线| 精品91自产拍在线| 99久久99这里只有免费的精品| 亚洲国产精品久久久久秋霞影院| 亚洲欧美人成电影在线观看| 国产日韩丝袜一二三区| 少妇高潮惨叫久久久久久| 国产人人干| 亚洲女同一区二区| 亚洲一区二区三区麻豆| 午夜综合网| 日本国产精品一区久久久| 91国内视频在线观看| 国产精品自在线天天看片| 国产精品精品视频| 狠狠五月天中文字幕| 国产精品久久久久久搜索| 国产精品视频猛进猛出| 波多野结衣中文字幕一区二区| 99精品热视频这里只有精品7 | 亚洲第一区精品日韩在线播放| 欧洲成人在线观看| 免费中文字幕在在线不卡| 狠狠色综合网| 天天综合网色中文字幕| 成人午夜久久| 精品一区二区久久久久网站| 国产黄色爱视频| 一级做a爰片久久免费| 日韩欧美国产三级| 亚洲人成人伊人成综合网无码|