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

RD1型電加熱道岔融雪系統(tǒng)數(shù)據(jù)工具軟件的設(shè)計(jì)與實(shí)現(xiàn)

2021-04-03 02:23:58李忠明
關(guān)鍵詞:方法

甄 良,李忠明

(北京全路通信信號(hào)研究設(shè)計(jì)院集團(tuán)有限公司,北京 100070)

RD1 型電加熱道岔融雪系統(tǒng)是根據(jù)國(guó)內(nèi)鐵路道岔特點(diǎn)而研制開(kāi)發(fā)的,廣泛適用于客運(yùn)專(zhuān)線(xiàn)、鐵路干線(xiàn)、重載線(xiàn)路和城際軌道交通等領(lǐng)域,適用于電氣化和非電氣化牽引區(qū)段各種類(lèi)型的道岔。隨著計(jì)算機(jī)軟件技術(shù)不斷發(fā)展,為系統(tǒng)定制化開(kāi)發(fā)數(shù)據(jù)工具軟件的需求應(yīng)運(yùn)而生。

1 軟件需求

根據(jù)站場(chǎng)工程設(shè)計(jì)圖紙,通過(guò)軟件將融雪系統(tǒng)的操作界面圖形、系統(tǒng)參數(shù)配置等形成數(shù)據(jù)文件,采用具有交互功能且具備統(tǒng)一標(biāo)準(zhǔn)化的語(yǔ)言格式描述并形成文件存儲(chǔ)。

道岔融雪系統(tǒng)的界面顯示主要由控制柜、變壓器、道岔、區(qū)段、命令按鈕、站名文本、狀態(tài)標(biāo)簽等圖形元素構(gòu)成。通過(guò)系統(tǒng)菜單或鼠標(biāo)快捷菜單實(shí)現(xiàn)按照設(shè)計(jì)圖紙及界面顯示需求將上述不同類(lèi)型界面圖形元素生成,并對(duì)單個(gè)或多個(gè)圖形元素進(jìn)行動(dòng)態(tài)編輯。以控制柜為例,對(duì)圖元屬性說(shuō)明如表1 所示。

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

2 軟件設(shè)計(jì)與實(shí)現(xiàn)

軟件開(kāi)發(fā)基于.NET FrameWork4.6 的WinForm窗體應(yīng)用,開(kāi)發(fā)語(yǔ)言使用C#,開(kāi)發(fā)工具使用Visual Studio2019,編譯目標(biāo)平臺(tái)為x86。

2.1 類(lèi)設(shè)計(jì)與實(shí)現(xiàn)

1)圖元數(shù)據(jù)類(lèi)

圖1 圖元類(lèi)繼承關(guān)系圖Fig.1 Relationship between basic and derivative graphic elements

根據(jù)軟件需求共設(shè)計(jì)1 個(gè)抽象基類(lèi)ShapeGraph 和6個(gè)派生子類(lèi)CabinetGraph、SectionGraph、SwitchGraph、CmdButGraph、StaLableGraph、TransformGraph,各類(lèi)之間繼承關(guān)系如圖 1 所示。

2)操作接口類(lèi)

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

2.2 數(shù)據(jù)和方法設(shè)計(jì)

1)類(lèi)繼承方法

派生子類(lèi)根據(jù)不同的圖元類(lèi)型實(shí)現(xiàn)圖元的繪制(主窗體、預(yù)覽窗體)、圖元的操作(響應(yīng)菜單命令、鼠標(biāo)、鍵盤(pán)進(jìn)行移動(dòng)、刪除、關(guān)聯(lián)等)、屬性數(shù)據(jù)的編輯保存。引入抽象基類(lèi)ShapeGraph,各子類(lèi)通過(guò)繼承獲得父類(lèi)屬性數(shù)據(jù)、操作方法接口,有效降低代碼冗余。

2)泛型方法

泛型在C#中有很重要的地位,在編寫(xiě)軟件時(shí)經(jīng)常會(huì)遇到功能非常相似的模塊,只是處理的數(shù)據(jù)不一樣,泛型的出現(xiàn)就是專(zhuān)門(mén)來(lái)解決這個(gè)問(wèn)題的。

各個(gè)圖元對(duì)象封裝在不同對(duì)象List 中,其移動(dòng)函數(shù)方法相近,通過(guò)構(gòu)造泛型函數(shù):

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

實(shí)現(xiàn)對(duì)不同對(duì)象使用同一個(gè)泛型函數(shù)進(jìn)行移動(dòng)操作。

方法中使用了Dynamic 對(duì)象,將泛型方法和動(dòng)態(tài)對(duì)象進(jìn)行結(jié)合使用,在泛型類(lèi)型檢查約束之下,發(fā)揮動(dòng)態(tài)對(duì)象靈活性同時(shí)保障了使用安全。

2.3 數(shù)據(jù)與窗體的代碼解耦

窗體類(lèi)為圖元數(shù)據(jù)類(lèi)提供數(shù)據(jù)圖形化顯示、操作命令的接口;圖元數(shù)據(jù)類(lèi)通過(guò)響應(yīng)窗口類(lèi)提供的操作命令實(shí)現(xiàn)圖元對(duì)象生成、編輯、數(shù)據(jù)保存,并為窗體類(lèi)顯示提供必要的數(shù)據(jù)和調(diào)用方法。

Stagraph 類(lèi)作為數(shù)據(jù)類(lèi)和窗體類(lèi)之間的解耦接口類(lèi),在圖元對(duì)象和窗體類(lèi)之間使用固定的接口函數(shù),數(shù)據(jù)和窗體的代碼解耦如圖 2 所示。

圖2 各類(lèi)之間的數(shù)據(jù)及方法接口關(guān)系圖Fig.2 Relationship between data and interface method of each type of objects

2.4 正則表達(dá)式使用

.NET 下的System.Text.RegularExpressions正則表達(dá)式引擎為在軟件開(kāi)發(fā)中使用正則表達(dá)式提供了強(qiáng)大支持。以軟件中使用正則表達(dá)式實(shí)現(xiàn)用戶(hù)在文本框中輸入的數(shù)據(jù)同時(shí)進(jìn)行輸入數(shù)據(jù)檢查為例:正則表達(dá)式定義:private const string pattern=@”^[0-9]*$”,限制輸入字符為數(shù)字0~9,在控件的鍵盤(pán)事件函數(shù)內(nèi)調(diào)用該規(guī)則檢查實(shí)現(xiàn)。

2.5 GDI+繪圖

GDI+相比于GDI 提供了更為強(qiáng)大的繪圖功能,通過(guò)簡(jiǎn)單地創(chuàng)建一個(gè)圖形對(duì)象(Graphics),使用面向?qū)ο蟮木幊谭绞秸{(diào)用它的方法即可。在窗體繪圖中應(yīng)注意資源釋放、繪圖坐標(biāo)系轉(zhuǎn)換調(diào)整和顯示刷新機(jī)制方面的內(nèi)容。

2.6 數(shù)據(jù)序列化

1)為什么使用序列化

使用序列化可以實(shí)現(xiàn)持久化內(nèi)存中的對(duì)象,將對(duì)象以數(shù)據(jù)的形式便捷的進(jìn)行存儲(chǔ)、網(wǎng)絡(luò)交互,并在需要的時(shí)候使用反序列化根據(jù)數(shù)據(jù)重構(gòu)對(duì)象。

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

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

3)Json.NET 序列化

.NET 支持Json 序列化的方法和庫(kù)很多,本文選用了Newtonsoft 的Json.NET 實(shí)現(xiàn)。

技術(shù)要點(diǎn)在于如何將不同對(duì)象的List 正確序列化,并在反序列化時(shí)按照不同的類(lèi)型進(jìn)行對(duì)象準(zhǔn)確重構(gòu)。本文采取了將Newtonsoft.Json.Linq 中JObject對(duì)象與其他對(duì)象互轉(zhuǎn)的泛型方法與鍵值讀取的方法結(jié)合的方法實(shí)現(xiàn)。

2.7 軟件界面

本文以某4 股道的中間站施工圖紙為輸入,使用數(shù)據(jù)工具進(jìn)行了數(shù)據(jù)設(shè)計(jì),共計(jì)4 組道岔、2 臺(tái)融雪控制柜、48 臺(tái)變壓器。通過(guò)軟件,可以對(duì)上述的設(shè)備及其名稱(chēng)、參數(shù)按照設(shè)計(jì)需要使用鼠標(biāo)進(jìn)行位置調(diào)整、數(shù)據(jù)輸入,形成數(shù)據(jù)文件,供現(xiàn)場(chǎng)控制軟件使用,保持顯示一致。最終數(shù)據(jù)完成界面如圖 3 軟件界面所示。

圖3 軟件界面Fig.3 Software interface

3 結(jié)論

以道岔融雪數(shù)據(jù)設(shè)計(jì)工具的設(shè)計(jì)和開(kāi)發(fā)實(shí)現(xiàn)過(guò)程為基礎(chǔ),以使用C#開(kāi)發(fā)語(yǔ)言和.NET 框架開(kāi)發(fā)交互式Windows 桌面軟件的思路和需要關(guān)注和掌握的技術(shù)要點(diǎn)為側(cè)重,結(jié)合代碼實(shí)例對(duì)技術(shù)實(shí)現(xiàn)細(xì)節(jié)進(jìn)行展現(xiàn)。通過(guò)數(shù)據(jù)工具軟件的開(kāi)發(fā)對(duì)系統(tǒng)界面和數(shù)據(jù)進(jìn)行定制、標(biāo)準(zhǔn)化的數(shù)據(jù)格式封裝,在降低數(shù)據(jù)制作的工作強(qiáng)度、統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn)、降低數(shù)據(jù)錯(cuò)誤等方面具有實(shí)用價(jià)值。

猜你喜歡
方法
中醫(yī)特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數(shù)學(xué)教學(xué)改革的方法
化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學(xué)習(xí)方法
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡(jiǎn)單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢(qián)方法
捕魚(yú)
主站蜘蛛池模板: 欧美成人在线免费| 91福利一区二区三区| 婷婷六月综合| 中文字幕va| 国产高清不卡视频| 国产激爽大片高清在线观看| 成人在线综合| 国产午夜福利亚洲第一| 免费观看亚洲人成网站| 国产人碰人摸人爱免费视频| 在线免费观看AV| 青青草原国产av福利网站| 超碰aⅴ人人做人人爽欧美| 国产一在线观看| 国产第一页第二页| 亚卅精品无码久久毛片乌克兰| 99在线免费播放| 亚洲精品图区| 高潮爽到爆的喷水女主播视频| 九月婷婷亚洲综合在线| 免费精品一区二区h| 拍国产真实乱人偷精品| 国产呦精品一区二区三区下载| 女人18毛片水真多国产| 亚洲午夜福利精品无码不卡 | 四虎永久免费在线| 无码电影在线观看| 少妇露出福利视频| 国产视频入口| 亚洲成人一区在线| 国产精品护士| аⅴ资源中文在线天堂| 国产一区二区三区在线精品专区| 日本一本在线视频| 无码又爽又刺激的高潮视频| 四虎影视8848永久精品| 日本久久久久久免费网络| 久久久精品久久久久三级| 亚洲成人网在线播放| 国产成人啪视频一区二区三区| 免费黄色国产视频| 亚洲成人一区二区| 亚洲精品制服丝袜二区| 国产男女XX00免费观看| 久久影院一区二区h| 色婷婷亚洲综合五月| 日韩毛片免费| 亚洲人成在线精品| 国产69精品久久久久孕妇大杂乱| 日韩大片免费观看视频播放| 国产激情影院| 国产免费自拍视频| 日韩成人在线视频| 在线国产毛片| AV无码国产在线看岛国岛| 精品三级网站| 久久精品一品道久久精品| 国产精品不卡片视频免费观看| 日韩成人高清无码| 亚洲第一黄片大全| 亚洲成人在线免费观看| 欧美一区二区人人喊爽| 免费中文字幕一级毛片| 91久久偷偷做嫩草影院免费看| 国产精品视频系列专区| 四虎永久在线| 国产综合精品一区二区| 2019年国产精品自拍不卡| 亚洲精品视频网| 日日噜噜夜夜狠狠视频| 91丝袜乱伦| 日本午夜精品一本在线观看| 日韩成人免费网站| 亚洲精品无码日韩国产不卡| 狠狠色狠狠综合久久| 91精品免费久久久| 免费久久一级欧美特大黄| 国产成人乱无码视频| 国产无码网站在线观看| 欧美激情第一欧美在线| av大片在线无码免费| 熟妇人妻无乱码中文字幕真矢织江|