一種基于動態(tài)鏈表的列車顯示系統(tǒng)故障數(shù)據(jù)處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種列車顯示控制領(lǐng)域,尤其涉及一種基于動態(tài)鏈表的列車顯示系統(tǒng)故障數(shù)據(jù)處理方法。
【背景技術(shù)】
[0002]列車顯示系統(tǒng)用于實(shí)時顯示列車各車輛的狀態(tài)信息和故障信息,是直接指導(dǎo)司乘人員行車的重要設(shè)備。列車顯示系統(tǒng)通過WTB總線與各車輛連接,同時通過MVB總線與列車網(wǎng)絡(luò)控制系統(tǒng)連接,車輛由狀態(tài)信息端口和故障信息端口通過WTB總線向列車顯示系統(tǒng)發(fā)送車輛狀態(tài)信息和故障信息,如圖1所示,同一車輛的狀態(tài)信息端口和故障信息端口對應(yīng),且車輛間的狀態(tài)信息端口和故障信息端口順序分配。狀態(tài)信息端口用于發(fā)送包括車輛編碼在內(nèi)的車輛狀態(tài)信息,故障信息端口用于發(fā)送包括若干位的故障信號字,故障信號字的每一位均代表一個故障,1表示故障,0表示正常。列車顯示系統(tǒng)獲取各車輛原始的狀態(tài)信息和故障信息,進(jìn)行處理后在顯示系統(tǒng)中進(jìn)行顯示,給司乘人員提供行車指導(dǎo)?,F(xiàn)有的列車顯示系統(tǒng)故障處理方法,均采用數(shù)組的形式,需要預(yù)先為每列車的節(jié)車輛可能出現(xiàn)的每一個故障分配一個存儲空間,因此會浪費(fèi)大量的存儲空間。
[0003]在列車動態(tài)重聯(lián)編組時,編成列車的車輛可能增加或減少,車輛的編組順序也可能發(fā)生改變,如圖1所示,動態(tài)重聯(lián)編組前列車由三節(jié)車輛編組,1#車輛的狀態(tài)信息端口號為0x81,故障信息端口號為0x90、0x91和0x92 ;2#車輛的狀態(tài)信息端口號為0x82,故障信息端口號為0x93、0x94和0x95 ;3#車輛的狀態(tài)信息端口號為0x83,故障信息端口號為0x96,0x97和0x98。如圖2所示,當(dāng)動態(tài)重聯(lián)編組車輛減少時,原來的2#車輛從列車編組中移出,原來的3#車輛成為新編組的1#車輛,其狀態(tài)信息端口和故障信息端口也相應(yīng)的修改為1#車輛的端口,原來的1#車輛變成新編組的2#車輛,其狀態(tài)信息端口和故障信息端口也相應(yīng)的修改為2#車輛的端口。如圖3所示,當(dāng)動態(tài)重聯(lián)編組同時有減少原有車輛且增加新的車輛時,動態(tài)重聯(lián)編組后的各車輛也將按照新的編組順序重新分配狀態(tài)信息端口和故障信息端口。因此,在列車進(jìn)行動態(tài)重聯(lián)編組時,如果將動態(tài)重聯(lián)編組前的車輛故障信息刪除,再重新獲取編組后的故障數(shù)據(jù),將會影響數(shù)據(jù)的正確性,不能夠準(zhǔn)確反應(yīng)故障發(fā)生的時間等具體信息。據(jù)此,很有必要對現(xiàn)有的列車顯示系統(tǒng)故障數(shù)據(jù)處理方法進(jìn)行改進(jìn)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種故障信息處理靈活、方便、占用存儲空間小、不會因?yàn)榱熊噭討B(tài)重聯(lián)編組而導(dǎo)致故障信息丟失的基于動態(tài)鏈表的列車顯示系統(tǒng)故障數(shù)據(jù)處理方法。
[0005]為解決上述技術(shù)問題,本發(fā)明提出的技術(shù)方案為:一種基于動態(tài)鏈表的列車顯示系統(tǒng)故障數(shù)據(jù)處理方法,采用鏈表的方法記錄列車各車輛的故障信息,所述列車的每一節(jié)車輛均對應(yīng)一個故障鏈表,所述故障鏈表中的每一個節(jié)點(diǎn)均對應(yīng)一個故障,當(dāng)車輛發(fā)生新的故障時,則生成一個記錄所述故障的鏈表節(jié)點(diǎn),并將該節(jié)點(diǎn)加入到鏈表中,當(dāng)車輛的一個故障消失時,則將記錄該故障的鏈表節(jié)點(diǎn)從鏈表中刪除。
[0006]作為本發(fā)明的進(jìn)一步改進(jìn),還包括用于記錄車輛故障信號字的故障數(shù)組,所述故障數(shù)組的長度與列車故障信號字的長度相同,所述列車的每一節(jié)車輛均對應(yīng)一個故障數(shù)組。
[0007]作為本發(fā)明的進(jìn)一步改進(jìn),還包括記錄了車輛的車輛編碼,用于確定故障鏈表與列車車輛之間對應(yīng)關(guān)系,以及故障數(shù)組與列車車輛之間對應(yīng)關(guān)系的列車索引數(shù)組。
[0008]作為本發(fā)明的進(jìn)一步改進(jìn),還包括故障處理過程,具體步驟包括:
S1.1.獲取車輛的車輛編碼和車輛的故障信號字,通過列車索引數(shù)組獲得所述車輛的故障數(shù)組和故障鏈表;
S1.2.將所述故障信號字與所述故障數(shù)組按位進(jìn)行比較,判斷是否相同,相同則判定該位所表示的故障信息未發(fā)生改變,不同相則判定該位為故障改變位,并進(jìn)一步判斷故障信號字中該故障改變位的值,該值為1則判定有新故障發(fā)生,跳轉(zhuǎn)到步驟S1.3,該值為0則判定有故障消失,跳轉(zhuǎn)到步驟S1.4 ;
S1.3.查詢列車故障信息表,獲取所述故障改變位所表示的故障信息,新生成一個記載所述故障信息的故障鏈表節(jié)點(diǎn),并將該故障鏈表節(jié)點(diǎn)加入到所述故障鏈表;
S1.4.查詢列車故障信息表,獲取所述故障改變位所表示的故障信息,遍歷所述故障鏈表,獲得記錄有所述故障信息的故障鏈表節(jié)點(diǎn),并將該故障鏈表節(jié)點(diǎn)從故障鏈表中刪除;
51.5.完成對整個故障信號字的處理后,將故障信號字按位存入所述故障數(shù)組中。
[0009]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S1.3中,將新生成的故障鏈表節(jié)點(diǎn)作為故障鏈表的第一個節(jié)點(diǎn)插入故障鏈表中。
[0010]作為本發(fā)明的進(jìn)一步改進(jìn),還包括列車動態(tài)重聯(lián)編組時的故障信息處理過程,具體步驟包括:
52.1.備份列車動態(tài)重聯(lián)編組前的故障鏈表、故障數(shù)組和列車索引數(shù)組;
S2.2.生成列車動態(tài)重聯(lián)編組后的故障鏈表、故障數(shù)組和列車索引數(shù)組;
S2.3.判斷新生成的列車索引數(shù)組中的車輛編碼與備份的列車索引數(shù)組中的車輛編碼是否相同,相同則將該車輛編碼所對應(yīng)的備份故障鏈表和故障數(shù)組賦值給新生成的故障鏈表和故障數(shù)組;
S2.4.刪除備份的故障鏈表、故障數(shù)組和列車索引數(shù)組。
[0011]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
1、通過采用鏈表數(shù)據(jù)結(jié)構(gòu),不需要預(yù)先為故障信息分配存儲空間,可根據(jù)故障發(fā)生情況動態(tài)的分配,需要占用的存儲空間小。
[0012]2、本方法可簡單、高效的對車輛的故障信息進(jìn)行處理,列車顯示系統(tǒng)可以方便的讀取故障信息進(jìn)行顯示。
[0013]3、本方法在列車動態(tài)重聯(lián)編組時,能夠很好的保留動態(tài)重聯(lián)編組前的故障信息,不會因?yàn)榱熊噭討B(tài)重聯(lián)編組而導(dǎo)致故障信息丟失,能夠很好的保證數(shù)據(jù)的連續(xù)性。
【附圖說明】
[0014]圖1為列車編組情況示意圖。
[0015]圖2為動態(tài)重聯(lián)編組后列車編組情況示意圖一。
[0016]圖3為動態(tài)重聯(lián)編組后列車編組情況示意圖二。
[0017]圖4為本發(fā)明故障鏈表的一種具體形式示意圖。
[0018]圖5為本發(fā)明列車索引數(shù)組的一種具體形式示意圖。
[0019]圖6為本發(fā)明故障數(shù)組的一種具體形式示意圖。
[0020]圖7為本發(fā)明故障處理過程流程圖。
[0021]圖8為本發(fā)明列車動態(tài)重聯(lián)編組時的故障信息處理過程流程圖。
【具體實(shí)施方式】
[0022]以下結(jié)合說明書附圖和具體優(yōu)選的實(shí)施例對本發(fā)明作進(jìn)一步描述,但并不因此而限制本發(fā)明的保護(hù)范圍。
[0023]一種基于動態(tài)鏈表的列車顯示系統(tǒng)故障數(shù)據(jù)處理方法,采用鏈表的方法記錄列車各車輛的故障信息,列車的每一節(jié)車輛均對應(yīng)一個故障鏈表,故障鏈表中的每一個節(jié)點(diǎn)均對應(yīng)一個故障,當(dāng)車輛發(fā)生新的故障時,則生成一個記錄故障的鏈表節(jié)點(diǎn),并將該節(jié)點(diǎn)加入到鏈表中,當(dāng)車輛的一個故障消失時,則將記錄該故障的鏈表節(jié)點(diǎn)從鏈表中刪除。如圖4所示,在本實(shí)施例中,故障鏈表采用數(shù)組鏈表的形式,故障鏈表的頭節(jié)點(diǎn)為一個一維數(shù)組,該數(shù)組的元素數(shù)與列車的車輛數(shù)相同,每個元素通過車輛順序索引號對應(yīng)列車的一節(jié)車輛,通過指針指向第一個故障信息的鏈表節(jié)點(diǎn),當(dāng)車輛沒有故障發(fā)生時,該元素的指針為空。作為進(jìn)一步的優(yōu)化,故障鏈表的頭節(jié)點(diǎn)中還可以記錄故障鏈表中鏈表節(jié)點(diǎn)的個數(shù)等信息,以進(jìn)一步優(yōu)化故障鏈表的遍歷、以及鏈表節(jié)點(diǎn)的插入和刪除操作。故障鏈表的鏈表節(jié)點(diǎn)用于記錄車輛的故障信息,包括故障發(fā)生時間、故障結(jié)束時間、故障代碼以及故障描述信息等等。如圖4中所示,車輛順序索引號為0的車輛包括3個故障,其故障代碼分別為a、b和c ;車輛順序索引號為1的車輛沒有故障;車輛順序索引號為2的車輛包括2個故障,其故障代碼分別為d和e。
[0024]如圖5所示,在本實(shí)施例中,還包括用于記錄車輛故障信號字的故障數(shù)組,故障數(shù)組的長度與列車故障信號字的長度相同,列車的每一節(jié)車輛均對應(yīng)一個故障數(shù)組。在本實(shí)施例中,故障數(shù)組采用二維數(shù)組的形式,該二維數(shù)組的列數(shù)與車輛的故障信號字的長度相同,該二維數(shù)組的一行即為一節(jié)車輛的故障數(shù)組,通過二維數(shù)組的行號與列車的車輛順序索引號對應(yīng),每個元素用于記錄故障信號字的一位。在初始狀態(tài)下,故障數(shù)組的每一個元素均為0,即沒有故障發(fā)生。
[0025]如圖6所示,在本實(shí)施例中,還包括記錄了車輛的車輛編碼,用于確定故障鏈表與列車車輛之間對應(yīng)關(guān)系,以及故障數(shù)組與列車車輛之間對應(yīng)關(guān)系的列車索引數(shù)組。該列車索引數(shù)組的元素數(shù)與列車的車輛數(shù)相同,每一個元素對應(yīng)列車的一節(jié)車輛,通過車輛編碼實(shí)現(xiàn)列車索引數(shù)組元素與車輛之間的對應(yīng),同時,列車索引數(shù)組元素中還記載了列車順序索引號,通過該列車順序索引號,實(shí)現(xiàn)故障鏈表與車輛之間的對應(yīng),以及故障數(shù)組與車輛之間的對應(yīng)。
[0026]在本實(shí)施例中,在初始化時,通過列車WTB總線獲取列車包括車輛編碼在內(nèi)的車輛狀態(tài)信息,建立列車索引數(shù)組,并根據(jù)列車索引數(shù)組生成故障鏈表的頭節(jié)點(diǎn),和故障數(shù)組,并將故障數(shù)組的元素的值初始化為