本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體涉及一種跨線列車中VOBC配置文件的熱加載方法及裝置。
背景技術(shù):
在現(xiàn)有城市軌道交通信號系統(tǒng)中,VOBC(車載控制器)需要預(yù)先存儲運行線路的電子地圖等配置文件,列車只能在已存儲有相應(yīng)配置文件的線路上運行。
在城市軌道交通互聯(lián)互通的大趨勢下,越來越多的信號系統(tǒng)可以支持列車跨線運行?!傲熊囍荒茉谝汛鎯τ邢鄳?yīng)配置文件的線路上運行”將成為制約信號系統(tǒng)互聯(lián)互通的主要因素,
目前,列車必須在投入運營前下載所有可能運行的線路的配置文件,并且在系統(tǒng)上電初始化階段初始化所有配置文件。
特別地,列車必須在運營前下載數(shù)據(jù),限制了列車跨線的靈活性;在上電初始化階段初始化全部配置文件消耗了大量系統(tǒng)資源。
技術(shù)實現(xiàn)要素:
鑒于上述問題,本發(fā)明提出了克服上述問題或者至少部分地解決上述問題的一種跨線列車中VOBC配置文件的熱加載方法及裝置。
為此目的,第一方面,本發(fā)明提出一種跨線列車中VOBC配置文件的熱加載方法,包括:
當(dāng)前列車在運行過程中確定需要跨線運行時,查看待運行線路的配置文件是否已經(jīng)下載完成;
在所述配置文件未下載時,在當(dāng)前列車VOBC的每一個運行周期內(nèi),根據(jù)運行VOBC程序所占用的系統(tǒng)資源,從列車的存儲單元中分步下載所述配置文件;以及
在所述配置文件下載完成之后,在所述VOBC的每個運行周期內(nèi)分步初始化所述配置文件,以完成配置文件的熱加載;
其中,所述VOBC運行所占用的內(nèi)存區(qū)域和下載所述配置文件所占用的內(nèi)存區(qū)域相互獨立。
可選地,根據(jù)運行VOBC程序所占用的系統(tǒng)資源,從列車的存儲單元中分步下載所述配置文件的步驟,包括:
根據(jù)運行VOBC程序所占用的系統(tǒng)資源,確定每個運行周期內(nèi)下載所述配置文件的待下載字節(jié)數(shù),向所述存儲單元發(fā)送下載請求,該下載請求包括:配置文件的線路標(biāo)識和待下載的字節(jié)數(shù)的信息;
接收所述存儲單元返回的所述下載請求的響應(yīng)信息后,在每一運行周期內(nèi)下載所述配置文件的部分?jǐn)?shù)據(jù),其中,該部分?jǐn)?shù)據(jù)的字節(jié)數(shù)小于等于所述每一運行周期內(nèi)預(yù)下載的字節(jié)數(shù)。
可選地,在每一運行周期內(nèi)下載所述配置文件的部分?jǐn)?shù)據(jù)的步驟,包括:
在所述VOBC程序的每一個運行周期,向所述存儲單元發(fā)送部分?jǐn)?shù)據(jù)的下載請求;
接收所述存儲單元發(fā)送的部分?jǐn)?shù)據(jù)及該存儲單元中已發(fā)送的部分?jǐn)?shù)據(jù)的第一校驗和;
在部分?jǐn)?shù)據(jù)下載完成時,獲取已下載的部分?jǐn)?shù)據(jù)的第二校驗和,
將所述第一校驗和與所述第二校驗和進行比較,確定已下載部分?jǐn)?shù)據(jù)是否正確;
在第一校驗和與所述第二校驗和相同時,確定所述配置文件的部分?jǐn)?shù)據(jù)已下載完成;
否則,在下一個運行周期內(nèi),重新向所述存儲單元發(fā)送部分?jǐn)?shù)據(jù)的下載請求。
可選地,所述根據(jù)運行VOBC程序所占用的系統(tǒng)資源,確定每個運行周期內(nèi)下載所述配置文件的待下載字節(jié)數(shù),包括:
在下載所述配置文件獨占CPU時,根據(jù)VOBC所占用的系統(tǒng)資源,確定每個運行周期內(nèi)下載所述配置文件的待下載字節(jié)數(shù)和,與該待下載字節(jié)數(shù)對應(yīng)的下載時間。
可選地,根據(jù)運行VOBC程序所占用的系統(tǒng)資源,確定每個運行周期內(nèi)下載所述配置文件的待下載字節(jié)數(shù)的步驟,包括:
根據(jù)運行VOBC程序所占用的內(nèi)存信息,CPU運算資源和/或接口資源,確定所述下載字節(jié)數(shù)。
可選地,在所述VOBC的每個運行周期內(nèi)分步初始化所述配置文件的步驟,包括:
根據(jù)系統(tǒng)的內(nèi)存信息、CPU運算資源、接口資源、運行VOBC程序所占用的內(nèi)存信息,CPU運算資源和/或接口資源,獲取限制每一運行周期內(nèi)初始化所述配置文件的執(zhí)行時間;
在每一運行周期內(nèi),根據(jù)所述執(zhí)行時間初始化所述配置文件,直至所述配置文件初始化完成。
可選地,所述方法還包括:
在接收到跨線運行指令時,將訪問配置文件的指針調(diào)整為指向初始化完成的配置文件的內(nèi)存區(qū)域。
可選地,同一時刻所述VOBC程序所在的內(nèi)存中存在兩條線路的配置文件。
第二方面,本發(fā)明提供一種跨線列車中VOBC配置文件的熱加載裝置,包括:
查看單元,用于當(dāng)前列車在運行過程中確定需要跨線運行時,查看待運行線路的配置文件是否已經(jīng)下載完成;
分步下載單元,用于在所述配置文件未下載時,在當(dāng)前列車VOBC的每一個運行周期內(nèi),根據(jù)運行VOBC程序所占用的系統(tǒng)資源,從列車的存儲單元中分步下載所述配置文件;
分步初始化單元,用于在所述配置文件下載完成之后,在所述VOBC的每個運行周期內(nèi)分步初始化所述配置文件,以完成配置文件的熱加載;
其中,所述VOBC運行所占用的內(nèi)存區(qū)域和下載所述配置文件所占用的內(nèi)存區(qū)域相互獨立。
第三方面,本發(fā)明提供一種車載設(shè)備,包括:上述的跨線列車中VOBC配置文件的熱加載裝置。
由上述技術(shù)方案可知,本發(fā)明提出的一種跨線列車中VOBC配置文件的熱加載方法及裝置,通過分步下載,分步初始化的方式在不影響VOBC正常功能的情況下實現(xiàn)對配置文件的熱加載,以及熱加載的配置文件被存儲在獨立的系統(tǒng)內(nèi)存中,與VOBC程序正在使用的配置文件的存儲內(nèi)存不同,從而保證熱加載過程不影響VOBC程序?qū)Ξ?dāng)前配置文件的讀取,使得系統(tǒng)的可擴展性更強,使得VOBC可以再任意多的線路上跨線運行。
附圖說明
圖1為本發(fā)明一實施例提供的跨線列車中VOBC配置文件的熱加載方法的流程示意圖;
圖2為本發(fā)明另一實施例提供的VOBC與存儲單元的關(guān)系圖;
圖3為本發(fā)明一實施例提供的跨線列車中VOBC配置文件的熱加載裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。
圖1示出了本發(fā)明一實施例提供的跨線列車VOBC配置文件的熱加載方法的流程示意圖,如圖1所示,本實施例的方法包括如下步驟:
101、當(dāng)前列車在運行過程中確定需要跨線運行時,查看待運行線路的配置文件是否已經(jīng)下載完成。
102、在所述配置文件未下載時,在當(dāng)前列車VOBC的每一個運行周期內(nèi),根據(jù)運行VOBC程序所占用的系統(tǒng)資源,從列車的存儲單元中分步下載所述配置文件。
本實施例中VOBC和所述存儲單元的關(guān)系如圖2所示。VOBC和存儲單元均位于車載設(shè)備中,且通過車地通信網(wǎng)絡(luò)交互。
需要說明的是,該步驟中的系統(tǒng)資源指的是車載設(shè)備中操作系統(tǒng)的系統(tǒng)資源,該操作系統(tǒng)中運行有VOBC程序,且需要在內(nèi)存中加載待切換運行的線路的配置文件。
進一步地,當(dāng)前車載設(shè)備中的VOBC程序具有固定的運行周期,例如200ms一周期等,為此,本實施例中的加載需要在多個運行周期中完成,因為稱為分步下載配置文件。
103、在所述配置文件下載完成之后,在所述VOBC的每個運行周期內(nèi)分步初始化所述配置文件,以完成配置文件的熱加載。
本實施例中,由于完全初始化配置文件的時長大于VOBC程序的運行周期,故,本實施例中,在多個運行周期的每一個運行周期內(nèi)分步實現(xiàn)配置文件的初始化,進而上述描述為在所述VOBC的每個運行周期內(nèi)分步初始化所述配置文件。
本實施例中,所述VOBC運行所占用的內(nèi)存區(qū)域和下載所述配置文件所占用的內(nèi)存區(qū)域相互獨立。
另外,需要說明的是,本實施例中的加載可理解為熱加載,即在內(nèi)存中運行有VOBC程序的情況下,再進一步加載其他線路的配置文件,且相互不干擾。
本實施例通過分步下載,分步初始化的方式在不影響VOBC正常功能的情況下實現(xiàn)對配置文件的熱加載,且本實施例中熱加載的配置文件被存儲在獨立的系統(tǒng)內(nèi)存中,與VOBC程序正在使用的配置文件的存儲內(nèi)存不同,從而保證熱加載過程不影響VOBC程序?qū)Ξ?dāng)前配置文件的讀取。由此,無需在VOBC所在的系統(tǒng)內(nèi)存中存儲所有線路的配置數(shù)據(jù),使得系統(tǒng)的可擴展性更強,使得VOBC可以再任意多的線路上跨線運行。
在一種可選的實現(xiàn)方案中,上述圖1所示的方法還可包括下述的圖中未示出的步驟104:
104、在接收到跨線運行指令時,將訪問配置文件的指針調(diào)整為指向初始化完成的配置文件的內(nèi)存區(qū)域。
可理解的是,跨線運行指令可為控制中心或者區(qū)域控制器發(fā)送的,本實施例不對其進行限定。
可理解的是,步驟104說明的是配置文件切換過程,即VOBC程序當(dāng)前使用的配置數(shù)據(jù)和熱加載得到的配置數(shù)據(jù)被分別存儲在兩塊不同的內(nèi)存區(qū)域中,VOBC程序?qū)ε渲脭?shù)據(jù)的訪問都基于一個指向配置數(shù)據(jù)內(nèi)存地址的指針,所以通過修改該指針的指向就可以變更VOBC軟件當(dāng)前使用的配置數(shù)據(jù)。在配置數(shù)據(jù)(上述的配置文件)熱加載完成后,通過將當(dāng)前配置數(shù)據(jù)指針指向變更到待熱加載的配置數(shù)據(jù)的內(nèi)存區(qū),就可以實現(xiàn)配置文件的切換。
進一步地,為提高系統(tǒng)的擴展性,通常,在同一時刻所述VOBC程序所在的內(nèi)存中存在兩條線路的配置文件。也就是說,無需在系統(tǒng)內(nèi)存中存儲所有線路的配置文件,本實施例中僅存儲當(dāng)前運行線路的配置文件和待跨線運行的下一線路的配置文件即可,進而使得系統(tǒng)的可擴展性增強。
舉例來說,上述步驟102中的根據(jù)運行VOBC程序所占用的系統(tǒng)資源,從列車的存儲單元中分步下載所述配置文件的步驟,包括下述的圖中未示出的子步驟1021和子步驟1022:
1021、根據(jù)運行VOBC程序所占用的系統(tǒng)資源,確定每個運行周期內(nèi)下載所述配置文件的待下載字節(jié)數(shù),向所述存儲單元發(fā)送下載請求,該下載請求包括:配置文件的線路標(biāo)識和待下載的字節(jié)數(shù)的信息。
在本實施例中,系統(tǒng)的下載功能不獨占CPU時,可根據(jù)運行VOBC程序所占用的系統(tǒng)資源,確定每個運行周期內(nèi)下載所述配置文件的待下載字節(jié)數(shù)即可;
如果系統(tǒng)的下載功能獨占CPU,即下載所述配置文件獨占CPU時,根據(jù)VOBC所占用的系統(tǒng)資源,確定每個運行周期內(nèi)下載所述配置文件的待下載字節(jié)數(shù)和,與該待下載字節(jié)數(shù)對應(yīng)的下載時間。
該下載時間不需要發(fā)送存儲單元,僅是運行周期內(nèi)計時的時間段信息。
上述提及的系統(tǒng)為車載設(shè)備的系統(tǒng),且系統(tǒng)資源為車載設(shè)備的系統(tǒng)資源。
進一步地,本實施例中,根據(jù)運行VOBC程序所占用的內(nèi)存信息,CPU運算資源和/或接口資源,確定所述下載字節(jié)數(shù)。
1022、接收所述存儲單元返回的所述下載請求的響應(yīng)信息后,在每一運行周期內(nèi)下載所述配置文件的部分?jǐn)?shù)據(jù),其中,該部分?jǐn)?shù)據(jù)的字節(jié)數(shù)小于等于所述每一運行周期內(nèi)預(yù)下載的字節(jié)數(shù)。
針對子步驟1022,舉例說明如下:
第一步、在VOBC程序的每一個運行周期,向所述存儲單元發(fā)送部分?jǐn)?shù)據(jù)的下載請求;
第二步、接收所述存儲單元發(fā)送的部分?jǐn)?shù)據(jù)及該存儲單元中已發(fā)送的部分?jǐn)?shù)據(jù)的第一校驗和;
第三步、在部分?jǐn)?shù)據(jù)下載完成時,獲取已下載的部分?jǐn)?shù)據(jù)的第二校驗和,
第四步、將所述第一校驗和與所述第二校驗和進行比較,確定已下載部分?jǐn)?shù)據(jù)是否正確;
在第一校驗和與所述第二校驗和相同時,確定所述配置文件的部分?jǐn)?shù)據(jù)已下載完成;
否則,在下一個運行周期內(nèi),重新向所述存儲單元發(fā)送部分?jǐn)?shù)據(jù)的下載請求。
另外,在另一可選的實現(xiàn)方式中,舉例來說上述步驟102中的分步下載配置文件。
目前,VOBC程序具有固定的運行周期,在需要下載新的配置文件時,VOBC程序每個運行周期執(zhí)行一次分步下載過程,通過限制分步下載過程的執(zhí)行時間或下載字節(jié)數(shù)來限制其對系統(tǒng)資源的占用。
每次分步下載完成時應(yīng)計算已下載數(shù)據(jù)的校驗和(如上的第一校驗和、第二校驗和),整個配置文件下載完畢時得到整個配置文件的校驗和,從而獲知已下載文件內(nèi)容的正確性。檢測到校驗和錯誤時應(yīng)認(rèn)為下載失敗,重新下載該配置文件。
特別說明的是,配置文件的下載功能不獨占CPU時(非阻塞),只需限制下載字節(jié)數(shù)來限制其對系統(tǒng)資源的占用;下載功能獨占CPU時,還應(yīng)限制其執(zhí)行時間。
本實施例中,評估車載設(shè)備的系統(tǒng)每個運行周期可以用于熱加載的系統(tǒng)資源,如可根據(jù)可用內(nèi)存大小、CPU運算資源、接口資源等信息,從該些信息中取各限制條件中的最小值用于計算分步下載功能的下載字節(jié)數(shù)和下載時間等限制條件。
進一步地,舉例來說,上述步驟103中的在所述VOBC的每個運行周期內(nèi)分步初始化所述配置文件的步驟,具體說明如下:
根據(jù)系統(tǒng)的內(nèi)存信息、CPU運算資源、接口資源、運行VOBC所占用的內(nèi)存信息,CPU運算資源和/或接口資源,獲取限制每一運行周期內(nèi)初始化所述配置文件的執(zhí)行時間;
在每一運行周期內(nèi),根據(jù)所述執(zhí)行時間初始化所述配置文件,直至所述配置文件初始化完成。
也就是說,通過分步下載的方法將整個配置文件下載到內(nèi)存中后,VOBC程序每個運行周期執(zhí)行一次分步初始化過程,通過限制分步初始化過程的執(zhí)行時間來限制其對系統(tǒng)資源的占用。
特別地,本實施例中,評估車載設(shè)備的系統(tǒng)每個運行周期可以用于熱加載的系統(tǒng)資源如可用內(nèi)存大小、CPU運算資源、接口資源等信息,從該些信息中取各限制條件中的最小值用于計算分步初始化功能的最大執(zhí)行時間。
圖3示出了本發(fā)明一實施例提供的跨線列車VOBC配置文件的熱加載裝置的結(jié)構(gòu)示意圖,如圖3所示,本實施例的裝置包括:查看單元31、分步下載單元32、分步初始化單元33;
其中,查看單元31用于當(dāng)前列車在運行過程中確定需要跨線運行時,查看待運行線路的配置文件是否已經(jīng)下載完成;
分步下載單元32用于在所述配置文件未下載時,在當(dāng)前列車VOBC的每一個運行周期內(nèi),根據(jù)運行VOBC程序所占用的系統(tǒng)資源,從列車的存儲單元中分步下載所述配置文件;
分步初始化單元33用于在所述配置文件下載完成之后,在所述VOBC的每個運行周期內(nèi)分步初始化所述配置文件,以完成配置文件的熱加載;
其中,所述VOBC運行所占用的內(nèi)存區(qū)域和下載所述配置文件所占用的內(nèi)存區(qū)域相互獨立。
在一種可選的實現(xiàn)方式中,所述分步下載單元32具體用于
根據(jù)運行VOBC程序所占用的系統(tǒng)資源,確定每個運行周期內(nèi)下載所述配置文件的待下載字節(jié)數(shù),向所述存儲單元發(fā)送下載請求,該下載請求包括:配置文件的線路標(biāo)識和待下載的字節(jié)數(shù)的信息;
接收所述存儲單元返回的所述下載請求的響應(yīng)信息后,在每一運行周期內(nèi)下載所述配置文件的部分?jǐn)?shù)據(jù),其中,該部分?jǐn)?shù)據(jù)的字節(jié)數(shù)小于等于所述每一運行周期內(nèi)預(yù)下載的字節(jié)數(shù)。
本實施例的裝置可執(zhí)行前述任意實施例所述的方法,詳見上述記載,該處不再贅述。
本實施例的裝置通過分步下載、分步初始化的方式在不影響VOBC程序正常功能的情況下實現(xiàn)對配置文件的熱加載。熱加載中的配置文件被存儲在獨立的系統(tǒng)內(nèi)存中,與VOBC程序正在使用的配置文件的存儲內(nèi)存不同,從而保證熱加載過程不影響VOBC軟件對當(dāng)前配置文件的讀取。
本實施例中,VOBC程序無需在運營前下載多條線路的配置數(shù)據(jù),而是只需在即將進入下一線路時通過熱加載方法加載該線路的數(shù)據(jù),并且熱加載過程對系統(tǒng)資源的消耗是可控的,不會影響既有軟件/程序運行。
在跨線運行中,VOBC程序不再受配置文件制約,可以運行在所有支持互聯(lián)互通功能的線路上。
優(yōu)選地,為實現(xiàn)對系統(tǒng)資源的可控,通??稍谕粫r刻系統(tǒng)內(nèi)存中至多存在兩條線路的配置數(shù)據(jù)。由此,VOBC程序只需在進入下一線路前通過熱加載方法將下一線路的配置數(shù)據(jù)熱加載到內(nèi)存中,同一時刻只有“當(dāng)前線路”、和“下一線路”的配置數(shù)據(jù)駐留內(nèi)存,其他線路的配置數(shù)據(jù)無需駐留內(nèi)存。
無需在系統(tǒng)內(nèi)存中存儲所有線路的配置數(shù)據(jù),使系統(tǒng)的可擴展性更強,VOBC可以在任意多的線路上跨線運行。
本發(fā)明實施例還提供一種車載設(shè)備,包括:上述任意所述的跨線列車中VOBC配置文件的熱加載裝置。
本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。
本領(lǐng)域技術(shù)人員可以理解,實施例中的各步驟可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。
雖然結(jié)合附圖描述了本發(fā)明的實施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。