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

模塊化計算機(jī)聯(lián)鎖軟件設(shè)計

2022-03-31 07:32:28賀云鵬
鐵路計算機(jī)應(yīng)用 2022年3期
關(guān)鍵詞:設(shè)計

賀云鵬

(中鐵第四勘察設(shè)計院集團(tuán)有限公司 國際事業(yè)部,武漢 430063)

計算機(jī)聯(lián)鎖利用道岔、信號機(jī)、軌道區(qū)段等設(shè)備之間的相互關(guān)聯(lián)和相互制約關(guān)系,實(shí)現(xiàn)對車站作業(yè)的計算機(jī)集中控制。國內(nèi)外學(xué)者已經(jīng)對計算機(jī)聯(lián)鎖軟件進(jìn)行了大量的研究,謝保鋒對車站計算機(jī)聯(lián)鎖系統(tǒng)的現(xiàn)狀與發(fā)展作出了分析[1];陳志穎等人提出了基于站場型數(shù)據(jù)結(jié)構(gòu)的進(jìn)路搜索算法[2];陳曉偉應(yīng)用分布式控制系統(tǒng)和多Agent系統(tǒng)技術(shù),提出了一種新型的分布式、智能化聯(lián)鎖軟件的設(shè)計方案[3];Eugenio Roanes-Lozano等人提出一種新的計算機(jī)聯(lián)鎖決策機(jī)制[4];Yildirim等人利用計算機(jī)代數(shù)工具箱自動生成鐵路聯(lián)鎖工作臺[5];楊美娜等人采用二叉樹結(jié)構(gòu)的進(jìn)路搜索算法設(shè)計高速鐵路的計算機(jī)聯(lián)鎖軟件[6];彭麗維提出了為各類信號設(shè)備建立圖元模型的設(shè)計思想[7];孫曉光利用 CAD 圖塊方法提供統(tǒng)一的信號圖元,實(shí)現(xiàn)了信號平面布置圖標(biāo)準(zhǔn)化處理[8]。

以上對計算機(jī)聯(lián)鎖軟件的研究,主要針對某一具體過程(如進(jìn)路搜索、站場數(shù)據(jù)構(gòu)造),在設(shè)計時均需要先設(shè)計聯(lián)鎖表,后在軟件中配置大量聯(lián)鎖數(shù)據(jù)來實(shí)現(xiàn),進(jìn)路搜索以數(shù)據(jù)配置為基礎(chǔ),消耗了大量時間。未來,便捷式聯(lián)鎖軟件表示層的繪制和聯(lián)鎖進(jìn)路搜索數(shù)據(jù)結(jié)構(gòu)的自動構(gòu)建將成為重要發(fā)展方向。

本文提出了一種模塊化計算機(jī)聯(lián)鎖軟件(簡稱:模塊化聯(lián)鎖軟件)設(shè)計方法,將道岔、信號機(jī)、軌道區(qū)段等設(shè)備設(shè)計為不同的程序模塊,用戶利用鼠標(biāo)拖動不同的程序模塊并輸入各設(shè)備的具體參數(shù),繪制聯(lián)鎖軟件表示層,繪制完成后,軟件可自動建立二叉樹站場聯(lián)鎖數(shù)據(jù)結(jié)構(gòu),無需手動配置大量聯(lián)鎖數(shù)據(jù),并使用遞歸算法完成計算機(jī)聯(lián)鎖進(jìn)路搜索。在某車站,分別使用本文提出的設(shè)計方法和傳統(tǒng)的設(shè)計方法設(shè)計聯(lián)鎖軟件,對比兩種方法的設(shè)計流程和設(shè)計用時,驗(yàn)證了本文所提聯(lián)鎖軟件設(shè)計方法的優(yōu)越性。

1 程序模塊設(shè)計

聯(lián)鎖軟件的表示層顯示道岔、信號機(jī)、軌道區(qū)段的圖形、狀態(tài)和位置等信息。為完成聯(lián)鎖軟件表示層的設(shè)計,需要設(shè)計道岔、信號機(jī)、軌道區(qū)段的程序模塊。本文采用面向?qū)ο骩9]的思想,使用C#語言編程,WinForm作為用戶界面框架,分別設(shè)計道岔模塊、信號機(jī)模塊、軌道區(qū)段模塊。

建立Equip類(父類),再繼承父類,創(chuàng)建3個設(shè)備子類,分別為道岔模塊、信號機(jī)模塊和軌道區(qū)段模塊。每個設(shè)備子類建立各自的屬性參數(shù),其中,道岔模塊包含道岔類別(單動/雙動/交叉渡線/復(fù)式交分等)、撇型/捺型、道岔圖號等,信號機(jī)模塊包含信號機(jī)類型、顯示顏色、信號機(jī)方向(向左/向右)等,軌道區(qū)段模塊包含長度、類型(一體化、25 Hz、高壓脈沖等)、占用/空閑等。

1.1 道岔模塊設(shè)計

道岔模塊主要實(shí)現(xiàn)道岔的繪制、定反位轉(zhuǎn)換、拖動及縮放功能。

1.1.1 道岔繪制

在軟件設(shè)計中,道岔以定型組合的形式呈現(xiàn),除了需要繪制道岔,還要繪制一段各岔尖對應(yīng)的軌道區(qū)段,用DrawLine方法繪制出道岔定型組合中的連接每個兩端端點(diǎn)的直線,需要使用畫筆Pen實(shí)例化一個道岔對象,定義單色畫筆來繪制道岔輪廓和基本形狀;使用從Brush類派生出的SolidBrush類畫刷對象,實(shí)現(xiàn)道岔顏色填充。以單動道岔(撇型)為例,道岔圖像如圖1所示。

圖1 單動道岔(撇型)圖像示意

由于整個設(shè)備在一張畫布上,需要實(shí)現(xiàn)道岔與畫布背景分離,且由于畫出的不是一個線性圖形,而是多條直線組成的復(fù)雜形狀,因此,利用GraphicsPath類記錄下繪圖的過程后將所有直線一起畫出。

1.1.2 道岔定反位轉(zhuǎn)換

由于道岔定反位顯示中只有岔尖部分的畫法與道岔的不同,其他均一致,因此,可用鼠標(biāo)點(diǎn)擊岔尖具體范圍的位置后,再用道岔直股或者彎股的畫法實(shí)現(xiàn)。根據(jù)上述單動道岔子類中所設(shè)置的鼠標(biāo)點(diǎn)擊事件,以及代碼中對單動道岔畫法及摳圖的不同,利用判斷語句實(shí)現(xiàn)道岔定反位轉(zhuǎn)換的表示。

1.1.3 道岔拖動及縮放

通過多態(tài)性實(shí)現(xiàn)道岔拖動及縮放功能。在實(shí)現(xiàn)道岔的縮放功能時,要求在鼠標(biāo)按下時記錄原始的鼠標(biāo)位置,鼠標(biāo)移動時要計算差值,鼠標(biāo)抬起時要記錄位置,這些是父類具備的功能。子類的鼠標(biāo)抬起的時候,刷新原來的基準(zhǔn)值,而子類的刷新基準(zhǔn)不相同,此時,將該事件對應(yīng)的功能函數(shù)設(shè)為多態(tài),即同一操作作用于不同的對象可產(chǎn)生不同的執(zhí)行結(jié)果,符合功能實(shí)現(xiàn)的要求。此外,由于需要能夠同時實(shí)現(xiàn)道岔的拖動及縮放功能,在鼠標(biāo)按下和移動時需要判斷是實(shí)現(xiàn)哪一種功能,兩者可用不同區(qū)域、不同鼠標(biāo)樣式進(jìn)行區(qū)分。

1.2 信號機(jī)模塊設(shè)計

信號機(jī)模塊在道岔模塊的基礎(chǔ)上完成,由于信號機(jī)不存在摳圖、轉(zhuǎn)換及縮放的要求,在信號機(jī)模塊設(shè)計時只需完成信號機(jī)的繪制、拖動及標(biāo)簽按鈕的配置,其中,拖動功能可參考道岔進(jìn)行設(shè)計。

1.2.1 信號機(jī)繪制

使用Graphics類DrawEllipse方法繪制信號機(jī)。由左上角坐標(biāo)、指定高度和寬度的正方形邊框定義信號機(jī)圓形燈位形狀;采用DrawLine方法,繪制兩端端點(diǎn)坐標(biāo)確定的信號機(jī)直線型基柱形狀;采用FillEllipse方法,填充由左上角坐標(biāo)、高度和寬度指定的正方形邊框所定義的信號機(jī)燈位的顯示顏色。

根據(jù)此畫法,將信號機(jī)整體外形畫出并填充好信號機(jī)的燈位顏色,以矮柱單燈位信號機(jī)為例,信號機(jī)圖像如圖2所示。

圖2 矮柱單燈位信號機(jī)圖像示意

1.2.2 信號機(jī)標(biāo)簽按鈕配置

如圖2所示,藍(lán)色燈位左側(cè)為信號機(jī)標(biāo)簽位置,上方為其按鈕位置,標(biāo)簽及按鈕為標(biāo)準(zhǔn)控件,其尺寸、位置及字體等的設(shè)計通過構(gòu)造函數(shù)實(shí)現(xiàn)。

1.3 軌道區(qū)段模塊設(shè)計

軌道區(qū)段模塊的設(shè)計內(nèi)容主要包括圖形繪制、標(biāo)簽設(shè)計和縮放,由于軌道區(qū)段在繪制時是一條直線,且不需摳圖,縮放只是對軌道區(qū)段進(jìn)行伸縮,因此,可參照道岔模塊的設(shè)計方法,軌道區(qū)段圖像如圖3所示。

圖3 軌道區(qū)段圖像示意

1.4 繪制界面設(shè)計

繪制界面包括兩部分:(1)左側(cè)為繪制站場按鈕工具欄;(2)右側(cè)為當(dāng)前站場繪制的界面。在使用時,用鼠標(biāo)點(diǎn)擊不同類型設(shè)備(信號機(jī),道岔,軌道區(qū)段)按鈕并輸入其具體參數(shù)值,輸入完成后可對其進(jìn)行拖動以調(diào)整到正確位置,完成對該設(shè)備的繪制。對所有設(shè)備進(jìn)行繪制,完成聯(lián)鎖軟件表示層設(shè)計,為聯(lián)鎖數(shù)據(jù)結(jié)構(gòu)的生成和進(jìn)路搜索的實(shí)現(xiàn)建立基礎(chǔ)。本文聯(lián)鎖軟件的繪制界面如圖4所示。

2 模塊化站場數(shù)據(jù)結(jié)構(gòu)與進(jìn)路搜索設(shè)計

2.1 二叉鏈表與站場數(shù)據(jù)結(jié)構(gòu)

二叉樹[10]由一個根節(jié)點(diǎn)和兩個互不相交的被稱為左子樹和右子樹的節(jié)點(diǎn)組成,其中,左子樹或右子樹可以為空,二叉樹的單鏈表鏈接如圖5所示。

圖5 二叉樹的單鏈表鏈接

利用站場形狀和二叉樹形狀的相似性[11],站場中各設(shè)備分別作為道岔、信號機(jī)、軌道區(qū)段這3個子類的對象,依據(jù)二叉樹的單鏈表結(jié)構(gòu)進(jìn)行連接,將每個設(shè)備對象的指針存放在容器PointVector中,將PointVector設(shè)計為存放父類指針的容器。以某車站為例,站場部分?jǐn)?shù)據(jù)結(jié)構(gòu)如圖6所示。

圖6 站場部分?jǐn)?shù)據(jù)結(jié)構(gòu)示意

將道岔、信號機(jī)、軌道區(qū)段等模塊映射為二叉樹中的基本節(jié)點(diǎn)單元,繪制完成的設(shè)備自動進(jìn)行連接,并添加模塊化聯(lián)鎖軟件操作按鈕和操作表示燈,生成模塊化聯(lián)鎖軟件人機(jī)交互界面。仍以上述某車站為例,在圖4所示繪制界面中,將聯(lián)鎖軟件表示層繪制完成后,自動生成模塊化聯(lián)鎖軟件的人機(jī)交互界面,如圖7所示。

圖4 模塊化聯(lián)鎖軟件繪制界面

圖7 模塊化聯(lián)鎖軟件人機(jī)交互界面

2.2 進(jìn)路搜索設(shè)計

進(jìn)路是車站內(nèi)列車或調(diào)車車列在兩個地點(diǎn)之間運(yùn)行的路線,由若干控制列車運(yùn)行的設(shè)備(如道岔、信號機(jī)、軌道區(qū)段)組成。進(jìn)路搜索根據(jù)進(jìn)路的始端、終端(或始端、終端和變更按鈕),將組成進(jìn)路的所有設(shè)備對應(yīng)的節(jié)點(diǎn)搜索出來。

將道岔、信號機(jī)、軌道區(qū)段這3個模塊中每個對象的指針統(tǒng)一存放在PointVector容器中時,由于PointVector被設(shè)計為存放父類指針的容器,子類對象的指針將被隱式轉(zhuǎn)換為父類指針(子類對象可轉(zhuǎn)換成父類對象),可能導(dǎo)致進(jìn)路在搜索完成后,搜索出的各設(shè)備的指針不能調(diào)用其所屬類中的自身的操作(即子類對象不能轉(zhuǎn)換為父類對象)。因此,本文利用面向?qū)ο蟮某绦蛟O(shè)計中的多態(tài)思想,用父類指針指向各設(shè)備對象,再將每個設(shè)備對應(yīng)的父類指針存儲到PointVector容器中。

采用遞歸算法實(shí)現(xiàn)進(jìn)路搜索[12],根據(jù)遞歸算法的實(shí)現(xiàn)條件,進(jìn)路搜索函數(shù)SearchPoint可分為搜索保存部分和遞歸出口條件部分。

2.2.1 搜索保存部分

搜索保存部分指在保證節(jié)點(diǎn)不為空且未找到目標(biāo)節(jié)點(diǎn)指針的情況下,按根節(jié)點(diǎn)、右子樹和左子樹(或根節(jié)點(diǎn)、左子樹和右子樹)的順序依次進(jìn)行搜索并保存節(jié)點(diǎn)指針至父類指針容器PointVector中。在搜索左子樹之前,從父類指針容器尾部開始刪除各模塊中設(shè)備節(jié)點(diǎn)指針至根節(jié)點(diǎn)(不包括根節(jié)點(diǎn)),剔除進(jìn)路外的無關(guān)節(jié)點(diǎn)指針。

2.2.2 遞歸出口條件部分

遞歸出口條件分以下兩種情況。

(1)當(dāng)進(jìn)路中無變更按鈕時,進(jìn)路的始、終端對應(yīng)的設(shè)備節(jié)點(diǎn)指針將作為進(jìn)路搜索函數(shù)的參數(shù)進(jìn)行搜索。在搜索到尾節(jié)點(diǎn)仍未搜索到目標(biāo)節(jié)點(diǎn)時,保存該尾節(jié)點(diǎn)指針至PointVector,并讓搜索函數(shù)返回;搜索到目標(biāo)節(jié)點(diǎn)時,將搜索標(biāo)識FindPoint置為true,保證搜索函數(shù)在返回過程中不會繼續(xù)保存或刪除容器PointVector中已存在的節(jié)點(diǎn)指針,再將搜索函數(shù)返回。

(2)當(dāng)進(jìn)路中有變更按鈕時,可將始端、變更按鈕和變更按鈕、終端兩組設(shè)備節(jié)點(diǎn)指針依次作為進(jìn)路搜索函數(shù)的參數(shù),逐次進(jìn)行搜索。

以圖7中舉例站D1—IIG調(diào)車進(jìn)路的進(jìn)路搜索過程為例,采用遞歸算法進(jìn)行進(jìn)路搜索的軌跡如圖8所示,PointVector中節(jié)點(diǎn)指針變化如表1所示。在本次搜索中,共進(jìn)行了7次遞歸調(diào)用。

圖8 舉例站D1—IIG調(diào)車進(jìn)路搜索軌跡

表1 PointVector中節(jié)點(diǎn)指針變化

3 軟件分析與比較

傳統(tǒng)聯(lián)鎖軟件設(shè)計方法要求先設(shè)計聯(lián)鎖表,并對大量聯(lián)鎖數(shù)據(jù)進(jìn)行手動配置,聯(lián)鎖表由設(shè)計單位設(shè)計,聯(lián)鎖數(shù)據(jù)由設(shè)備廠家配置,兩項內(nèi)容的設(shè)計和交接消耗了大量時間和人力。本文所提聯(lián)鎖軟件設(shè)計方法將設(shè)備進(jìn)行模塊化處理,使用拖動方式完成聯(lián)鎖軟件表示層繪制,軟件即可自動生成二叉樹數(shù)據(jù),建立數(shù)據(jù)連接,完成進(jìn)路搜索,得到最終的模塊化聯(lián)鎖軟件,省去了大量時間。

以圖7中舉例站為例,使用本文所提方法和傳統(tǒng)方法設(shè)計聯(lián)鎖軟件,所需時間如表2所示。

由表2可知,本文所提設(shè)計方法在聯(lián)鎖表設(shè)計及聯(lián)鎖數(shù)據(jù)配置與生成兩項上節(jié)省了大量時間,總時間節(jié)省了約30%。

表2 聯(lián)鎖軟件設(shè)計所需時間對比

4 結(jié)束語

本文設(shè)計了一種基于遞歸算法的模塊化計算機(jī)聯(lián)鎖軟件,將不同的設(shè)備設(shè)計為不同的程序模塊,實(shí)現(xiàn)在軟件里拖動相關(guān)模塊完成聯(lián)鎖軟件表示層的繪制,并利用二叉樹和遞歸算法完成數(shù)據(jù)結(jié)構(gòu)的建立、進(jìn)路搜索。該模塊化計算機(jī)聯(lián)鎖軟件設(shè)計方法擺脫了傳統(tǒng)聯(lián)鎖軟件需要手動配置大量聯(lián)鎖數(shù)據(jù)和設(shè)計聯(lián)鎖表的困擾,節(jié)省了大量時間,提高了設(shè)計效率。

猜你喜歡
設(shè)計
二十四節(jié)氣在平面廣告設(shè)計中的應(yīng)用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設(shè)計的守護(hù)之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統(tǒng)設(shè)計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設(shè)計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發(fā)生器仿真設(shè)計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設(shè)計萌到家
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設(shè)計到“設(shè)計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 久久综合伊人77777| 97综合久久| 欧美日韩中文国产| 伊人AV天堂| 日韩无码白| 久久综合色天堂av| av天堂最新版在线| 四虎成人免费毛片| 国产精品永久免费嫩草研究院| 91香蕉国产亚洲一二三区| 免费Aⅴ片在线观看蜜芽Tⅴ| 免费精品一区二区h| 中文字幕欧美日韩高清| 凹凸国产分类在线观看| 久久综合AV免费观看| 毛片免费高清免费| 污视频日本| 国产精品手机在线观看你懂的 | 亚洲欧洲一区二区三区| 最新亚洲av女人的天堂| 三上悠亚精品二区在线观看| 尤物成AV人片在线观看| 日韩中文精品亚洲第三区| 国产全黄a一级毛片| 久久黄色毛片| 欧美精品1区2区| 欧美国产菊爆免费观看 | 中日韩一区二区三区中文免费视频| 国产精品一区二区不卡的视频| 亚洲欧美成aⅴ人在线观看| 中文字幕永久视频| 美女国内精品自产拍在线播放| 国产自产视频一区二区三区| 亚洲bt欧美bt精品| 亚洲激情区| 2020国产精品视频| 中文一级毛片| 国产在线精品人成导航| 99在线视频网站| 伊人色综合久久天天| 欧美一区二区丝袜高跟鞋| 国产精品视频系列专区| 国产不卡国语在线| 看你懂的巨臀中文字幕一区二区 | 热久久这里是精品6免费观看| 伊人婷婷色香五月综合缴缴情| 71pao成人国产永久免费视频| 国产一区二区三区免费观看| 日本午夜精品一本在线观看| 一级看片免费视频| 欧美日韩激情在线| 亚洲91在线精品| 97视频在线精品国自产拍| 欧美自拍另类欧美综合图区| 久久精品aⅴ无码中文字幕| 四虎影视永久在线精品| 国产原创第一页在线观看| 亚洲综合精品第一页| 亚洲伊人天堂| 亚洲天堂网在线视频| 色窝窝免费一区二区三区| 国产剧情无码视频在线观看| 激情午夜婷婷| 精品国产免费观看| 在线国产91| 国内精品久久久久鸭| 2024av在线无码中文最新| 超碰精品无码一区二区| 亚洲欧美成aⅴ人在线观看| 欧美不卡视频一区发布| 国产69精品久久久久孕妇大杂乱 | 自慰网址在线观看| 国产另类视频| 久久久久久久97| 成色7777精品在线| 在线观看网站国产| 亚洲国产高清精品线久久| 国产日韩精品欧美一区喷| 亚洲第一香蕉视频| 国产高潮流白浆视频| 大香伊人久久| 日韩在线观看网站|