劉卓超
(武漢鐵路職業(yè)技術(shù)學(xué)院,湖北武漢 430205)
近年來(lái),中國(guó)在鐵路行業(yè)取得了舉世矚目的成就。伴隨我國(guó)高速鐵路行業(yè)的迅猛發(fā)展,各部門(mén)和企業(yè)對(duì)于當(dāng)今動(dòng)車(chē)組司機(jī)的需求在數(shù)量和質(zhì)量上都提出了更高要求。而在實(shí)際的鐵路司機(jī)培養(yǎng)和訓(xùn)練中,局限于培訓(xùn)人員數(shù)量多、時(shí)間緊、接觸真車(chē)機(jī)會(huì)少等因素,早期就開(kāi)發(fā)出一種專(zhuān)用的列車(chē)模擬駕駛培訓(xùn)系統(tǒng),能夠滿(mǎn)足在室內(nèi)環(huán)境更加安全而高效地對(duì)多位學(xué)員同時(shí)提供列車(chē)模擬駕駛仿真訓(xùn)練和培訓(xùn)。這種系統(tǒng)最早起源于70年代,并隨著技術(shù)和時(shí)代發(fā)展而不斷更新和升級(jí)。其在培訓(xùn)列車(chē)司機(jī)的過(guò)程中具備多方面的優(yōu)勢(shì),能夠充分全面地培養(yǎng)司機(jī)學(xué)員在技能駕駛各方面的實(shí)際動(dòng)手操作能力。該系統(tǒng)在多方面大大提高了鐵路司機(jī)的學(xué)習(xí)和培訓(xùn)效率,并逐漸被世界各地專(zhuān)門(mén)從事列車(chē)模擬駕駛器開(kāi)發(fā)生產(chǎn)公司和廠(chǎng)商及科研機(jī)構(gòu)、高校所普遍采用。該套系統(tǒng)在滿(mǎn)足教學(xué)方面需要根據(jù)實(shí)際需求采用定制的教學(xué)管理軟件,軟件平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)以C++作為程序設(shè)計(jì)語(yǔ)言,采用微軟Visual Studio作為程序設(shè)計(jì)平臺(tái),并以SQLServer作為數(shù)據(jù)庫(kù)后臺(tái)。
結(jié)合實(shí)際功能需求分析,列車(chē)模擬駕駛培訓(xùn)系統(tǒng)教學(xué)管理軟件的設(shè)計(jì)包含5個(gè)主體模塊,分別是:①課程模塊:負(fù)責(zé)對(duì)課程信息進(jìn)行設(shè)置及添加修改等操作;②線(xiàn)路模塊:對(duì)于動(dòng)車(chē)組模擬運(yùn)行線(xiàn)路進(jìn)行編輯和設(shè)計(jì);③學(xué)員信息管理模塊:在教學(xué)方面用于管理和存儲(chǔ)相關(guān)教學(xué)員信息;④網(wǎng)絡(luò)模塊:負(fù)責(zé)和系統(tǒng)內(nèi)各功能分區(qū)設(shè)備相互聯(lián)機(jī);⑤操作測(cè)評(píng)模塊:對(duì)于學(xué)員模擬駕駛操作進(jìn)行判定鑒別。
軟件主體框架在設(shè)計(jì)完成之后需要通過(guò)這5大模塊來(lái)完成其作為教學(xué)管理平臺(tái)的核心功能和作用,其關(guān)系如下圖1所示。五大功能模塊相互獨(dú)立,并在內(nèi)部存在一定聯(lián)系。其中,課程模塊主要為實(shí)現(xiàn)軟件中的課程管理、發(fā)布及考核功能。線(xiàn)路模塊為系統(tǒng)中模擬駕駛的列車(chē)運(yùn)營(yíng)線(xiàn)路做管理并和場(chǎng)景畫(huà)面關(guān)聯(lián)。網(wǎng)絡(luò)模塊為實(shí)現(xiàn)教員機(jī)與教學(xué)功能分區(qū)內(nèi)的其它各個(gè)主機(jī)間進(jìn)行網(wǎng)絡(luò)互聯(lián)。學(xué)員信息管理模塊為實(shí)現(xiàn)教員對(duì)學(xué)員信息的管理。操作測(cè)評(píng)模塊為實(shí)現(xiàn)對(duì)學(xué)員操作記錄測(cè)評(píng)數(shù)據(jù)的管理和輸出。
圖1 教學(xué)管理軟件功能模塊組成結(jié)構(gòu)圖
作為軟件核心的五大功能模塊具體設(shè)計(jì)及實(shí)現(xiàn)的總體工作量非常巨大。在此只針對(duì)操作測(cè)評(píng)模塊的設(shè)計(jì)方案來(lái)進(jìn)行闡述。
根據(jù)操作測(cè)評(píng)功能模塊功能需求的分析,操作測(cè)評(píng)功能模塊按照需求應(yīng)當(dāng)實(shí)現(xiàn)測(cè)評(píng)規(guī)則管理、數(shù)據(jù)管理、綜合測(cè)評(píng)及測(cè)評(píng)結(jié)果管理四方面基本功能,由此設(shè)計(jì)與之相對(duì)應(yīng)的四個(gè)子模塊來(lái)進(jìn)行分工合作,對(duì)應(yīng)為測(cè)評(píng)規(guī)則及模板模塊、模擬器數(shù)據(jù)管理模塊、測(cè)評(píng)方法模塊、測(cè)評(píng)結(jié)果輸出模塊,子模塊結(jié)構(gòu)設(shè)計(jì)如下圖2所示。
圖2 操作測(cè)評(píng)模塊的子模塊組成設(shè)計(jì)
其中,測(cè)評(píng)規(guī)則及模板模塊主要針對(duì)測(cè)評(píng)標(biāo)準(zhǔn)的制定、模板編輯器的修改及測(cè)評(píng)標(biāo)準(zhǔn)選擇三方面功能目標(biāo),其作用范圍是在程序內(nèi)部建立測(cè)評(píng)規(guī)則和標(biāo)準(zhǔn)并為其他子模塊提供服務(wù)。模擬器數(shù)據(jù)管理模塊則主要針對(duì)課程、記錄等數(shù)據(jù)的解析,對(duì)需測(cè)評(píng)數(shù)據(jù)進(jìn)行訂購(gòu)、數(shù)據(jù)格式及轉(zhuǎn)儲(chǔ)的處理以及對(duì)內(nèi)存數(shù)據(jù)管理的功能。其主要作用范圍是針對(duì)程序內(nèi)部接口及對(duì)各種類(lèi)型測(cè)評(píng)數(shù)據(jù)的管理和交換。在測(cè)評(píng)方法模塊部分則主要負(fù)責(zé)針對(duì)測(cè)評(píng)方法管理的內(nèi)容,包含有單項(xiàng)指標(biāo)測(cè)評(píng)方法、故障邏輯搜索類(lèi)測(cè)評(píng)方法以及模糊綜合測(cè)評(píng)方法三種,其主要作用范圍是針對(duì)于測(cè)評(píng)規(guī)則及模板模塊和模擬器數(shù)據(jù)管理模塊在數(shù)據(jù)匯總后的相應(yīng)測(cè)評(píng)方法的選擇和處理。最終的測(cè)評(píng)結(jié)果輸出模塊則是在數(shù)據(jù)進(jìn)行了對(duì)應(yīng)測(cè)評(píng)方法選擇的基礎(chǔ)上對(duì)應(yīng)以成績(jī)單、操縱示意圖、錯(cuò)誤記錄文件和解釋模塊四方面形式在軟件界面進(jìn)行呈現(xiàn)。
四部分子模塊在功能上相對(duì)獨(dú)立,但內(nèi)部又存在一定的聯(lián)系,測(cè)評(píng)規(guī)則及模板模塊和模擬器數(shù)據(jù)管理模塊的數(shù)據(jù)信息匯總后需通過(guò)測(cè)評(píng)方法模塊進(jìn)行對(duì)應(yīng)測(cè)評(píng)方法的選擇,最終再導(dǎo)出到測(cè)評(píng)結(jié)果輸出模塊進(jìn)行相關(guān)數(shù)據(jù)分析和處理,并以相應(yīng)形式進(jìn)行結(jié)果的反饋輸出。
其中,在測(cè)評(píng)規(guī)則及模板模塊的設(shè)計(jì)中,為了使系統(tǒng)內(nèi)部的測(cè)評(píng)規(guī)則模板形式簡(jiǎn)明直觀的同時(shí)又能夠便于被重新編輯修改并立即使用,由此設(shè)立制定模板編輯器。通過(guò)該項(xiàng)功能,可以實(shí)現(xiàn)在對(duì)一系列的學(xué)員操作進(jìn)行客觀測(cè)評(píng)過(guò)程中對(duì)一些具體科目及條目在測(cè)評(píng)標(biāo)準(zhǔn)上進(jìn)行細(xì)微調(diào)整和修改。這樣在一定程度上很大提高了測(cè)評(píng)功能模塊整體運(yùn)作中的靈活度和可更新性。對(duì)模板編輯器的設(shè)計(jì)和優(yōu)化也是該軟件系統(tǒng)功能完善中的一個(gè)重要方向和前景。模板編輯器程序設(shè)計(jì)流程圖如下圖3所示。
圖3 模板編輯器程序設(shè)計(jì)流程圖
程序設(shè)計(jì)思想為首先通過(guò)初始化主界面操作進(jìn)入模板編輯器,然后再選擇編輯項(xiàng)目并從包含環(huán)境狀態(tài)數(shù)據(jù)、規(guī)則內(nèi)容數(shù)據(jù)、值型數(shù)據(jù)等內(nèi)容的數(shù)據(jù)庫(kù)文件中讀取待編輯的科目及條目數(shù)據(jù)內(nèi)容,隨后進(jìn)入初始化科目的操作,如果順利執(zhí)行便進(jìn)入條目的初始化操作,科目條碼初始化不成功則重新返回到原狀態(tài)并等待重新執(zhí)行。確保完成科目條目初始化后再通過(guò)選擇處理類(lèi)型來(lái)對(duì)選定的科目條目進(jìn)行增加、修改及刪除等編輯操作。最后在完成編輯修改后程序?qū)π戮庉嫿Y(jié)果進(jìn)行保存并將其存入到測(cè)評(píng)規(guī)則對(duì)應(yīng)的數(shù)據(jù)庫(kù)中,以供后續(xù)調(diào)用。
按照CRH-3型動(dòng)車(chē)組模擬駕駛培訓(xùn)系統(tǒng)的整體結(jié)構(gòu)特點(diǎn)以及測(cè)評(píng)功能模塊的管理機(jī)制,對(duì)應(yīng)需要設(shè)置操作測(cè)評(píng)數(shù)據(jù)庫(kù)相關(guān)信息。具體的設(shè)計(jì)思想是結(jié)合CRH-3型動(dòng)車(chē)組車(chē)輛參數(shù)信息、模板編輯器內(nèi)容及操作測(cè)評(píng)數(shù)據(jù)格式結(jié)構(gòu)來(lái)設(shè)計(jì)建立相應(yīng)的信息表,每張表中包含各自所對(duì)應(yīng)的項(xiàng)目。測(cè)評(píng)數(shù)據(jù)庫(kù)總體中包含很多信息表,在此不方便全部列出,僅列出車(chē)型、科目、條目三個(gè)關(guān)鍵信息表及其對(duì)應(yīng)的項(xiàng)目名稱(chēng)。其中,三者之間又存在內(nèi)在聯(lián)系,即車(chē)型表通過(guò)其索引ID項(xiàng)目與科目表中總ID相關(guān)聯(lián)??颇勘碇械母缚颇縄D鏈接上一級(jí)科目編號(hào),科目表中通過(guò)開(kāi)頭的科目ID鏈接到對(duì)應(yīng)的條目表中。總體設(shè)計(jì)的形式及三者間的聯(lián)系如下圖4所示。
圖4 學(xué)員操作測(cè)評(píng)數(shù)據(jù)表設(shè)計(jì)及關(guān)系
操作測(cè)評(píng)模塊程序設(shè)計(jì)的主要思想是按照系統(tǒng)內(nèi)部對(duì)于測(cè)評(píng)數(shù)據(jù)具體的分析和處理流程而實(shí)現(xiàn)的。其程序設(shè)計(jì)流程圖如下圖5所示。
圖5 學(xué)員操作測(cè)評(píng)模塊程序設(shè)計(jì)流程圖
總體過(guò)程為首先通過(guò)初始化界面進(jìn)入程序操作測(cè)評(píng)階段,再通過(guò)點(diǎn)擊選擇對(duì)應(yīng)學(xué)員的測(cè)評(píng)課程開(kāi)始進(jìn)入對(duì)象的測(cè)評(píng),隨后程序進(jìn)入相關(guān)科目及條目初始化階段并從數(shù)據(jù)庫(kù)規(guī)則數(shù)據(jù)中讀取相應(yīng)的內(nèi)容。然后程序根據(jù)測(cè)評(píng)條目對(duì)相關(guān)信息進(jìn)行數(shù)據(jù)分析并分別按照主觀測(cè)評(píng)和客觀測(cè)評(píng)兩部分給分。在主觀測(cè)評(píng)部分是通過(guò)教員手動(dòng)操作來(lái)對(duì)照科目條目進(jìn)行測(cè)評(píng)給分,客觀測(cè)評(píng)部分則是由程序根據(jù)模擬器中之前建立的測(cè)評(píng)模板數(shù)據(jù)進(jìn)行測(cè)評(píng),最終測(cè)評(píng)結(jié)果為主觀測(cè)評(píng)和客觀測(cè)評(píng)結(jié)果兩部分的總和。教員完成手動(dòng)測(cè)評(píng)操作后的結(jié)果會(huì)和機(jī)評(píng)結(jié)果一起在程序緩存中存儲(chǔ)。直到每項(xiàng)科目條目測(cè)評(píng)完成后最終測(cè)評(píng)結(jié)果會(huì)在主機(jī)內(nèi)存中進(jìn)行物理保存并通過(guò)教員手動(dòng)操作存入文件或后臺(tái)數(shù)據(jù)庫(kù)中。
程序設(shè)計(jì)的核心思想是在于首先在操作測(cè)評(píng)功能模塊內(nèi)部建立用于臨時(shí)性存儲(chǔ)科目條目信息的科目倉(cāng)庫(kù)及條目倉(cāng)庫(kù),同時(shí)需要自定義科目條目基類(lèi)及訪(fǎng)問(wèn)類(lèi)、學(xué)員信息和課程信息訪(fǎng)問(wèn)類(lèi),通過(guò)調(diào)用多種MFC中的專(zhuān)用類(lèi)以及自定義類(lèi)來(lái)進(jìn)行數(shù)據(jù)包信息的遍歷和傳輸。下圖6是操作測(cè)評(píng)模塊程序設(shè)計(jì)中各功能類(lèi)調(diào)用訪(fǎng)問(wèn)關(guān)系的示意圖。整體結(jié)構(gòu)圖中學(xué)員操作記錄數(shù)據(jù)均通過(guò)入口處IEvalue來(lái)進(jìn)入課程信息訪(fǎng)問(wèn)類(lèi)CClassView傳遞,其中左邊向來(lái)自?xún)?nèi)存數(shù)據(jù)的學(xué)員信息訪(fǎng)問(wèn)類(lèi)CStudentView傳遞,右邊至科目基類(lèi)CSubjectBase,科目及條目基類(lèi)從對(duì)應(yīng)的倉(cāng)庫(kù)類(lèi)中調(diào)用具體的科目條目數(shù)據(jù)內(nèi)容。課程信息訪(fǎng)問(wèn)類(lèi)CClassView也會(huì)向下通過(guò)科目訪(fǎng)問(wèn)和條目訪(fǎng)問(wèn)對(duì)倉(cāng)庫(kù)信息進(jìn)行校驗(yàn)。最后科目及條目基類(lèi)和學(xué)員信息類(lèi)CStudentInfor的信息通過(guò)學(xué)員訪(fǎng)問(wèn)來(lái)相互聯(lián)系并對(duì)應(yīng)評(píng)分。其中,科目條目在訪(fǎng)問(wèn)中如果出錯(cuò)也會(huì)進(jìn)行數(shù)據(jù)信息的重傳,以確保數(shù)據(jù)的有效傳輸。
圖6 操作測(cè)評(píng)模塊自定義功能類(lèi)調(diào)用訪(fǎng)問(wèn)關(guān)系結(jié)構(gòu)圖
根據(jù)以上設(shè)計(jì)方案完成該套模擬駕駛系統(tǒng)教學(xué)管理軟件內(nèi)操作測(cè)評(píng)功能模塊相關(guān)程序的工程代碼設(shè)計(jì),期間通過(guò)針對(duì)C++語(yǔ)言的微軟軟件程序設(shè)計(jì)平臺(tái)Visual Studio編譯試運(yùn)行,并結(jié)合利用在SQL數(shù)據(jù)庫(kù)后臺(tái)中建立的相應(yīng)測(cè)評(píng)指標(biāo)體系的信息,最終實(shí)現(xiàn)在教員管理軟件界面對(duì)于學(xué)員各項(xiàng)操作指標(biāo)的記錄及測(cè)評(píng)功能。
武漢船舶職業(yè)技術(shù)學(xué)院學(xué)報(bào)2021年1期