左登超
(中車青島四方車輛研究所有限公司,山東 青島 266031)
動車組旅客信息系統(tǒng)根據(jù)列車的實時GPS坐標,速度、門狀態(tài)信息,在列車即將到站、列車到站停穩(wěn)、列車起步離站,三個關(guān)鍵時刻進行語音和文本的自動播報,用于向乘客展示列車的運行情況。其中列車運行的線路信息、站點信息、報站語音信息和報站文本信息,預存在數(shù)據(jù)庫中,列車在行駛過程中實時從數(shù)據(jù)庫中讀取相關(guān)信息,實現(xiàn)自動報站功能[1]。
當完成報站邏輯功能開發(fā)或者修改、數(shù)據(jù)庫新增車次報站信息或者修改信息時,均需要對列車報站功能進行驗證,保證列車的正常運營[2]。
目前動車組旅客信息系統(tǒng)自動報站邏輯的測試方法較少,傳統(tǒng)的測試方法為選擇需要驗證的車次,將修改后的軟件或者數(shù)據(jù)庫更新至動車組旅客信息系統(tǒng)控制器內(nèi)。測試人員添乘跟車,在列車運行過程中對每一站的三個關(guān)鍵時刻,觀察驗證對應的語音和文字播報是否與預期一致,從而完成本車次的報站邏輯驗證工作[3]。這種測試方法存在如下缺陷:
需要在列車實際運行過程中才能驗證,由于現(xiàn)場實驗資源條件有限,有時安排不了列車進行驗證,導致報站功能驗證工作延后[4];
在驗證過程中,當某一站點的報站功能出現(xiàn)問題時,本站的報站時機已經(jīng)過去,從而只能記錄問題,不能根據(jù)問題進行對應缺陷的修改,事后可能不能全面進行修復,導致仍然存在缺陷[5];
在列車載客運營過程中測試報站邏輯,可能導致某站播報錯誤,引起乘客下錯站的運營事故,影響惡劣;
當需要驗證的車次較多時,加上車次站點較多時,依靠測試人員現(xiàn)場跟車的測試方法,無法充分驗證[6];
當軟件或者數(shù)據(jù)庫變更后,需要重復進行現(xiàn)場測試,現(xiàn)場測試的方法回歸性差,并且費時費力,無法適應修改,導致仍然會存在缺陷[7];
本文采用GPS模擬軟件,模擬列車實時位置,計算列車當前位置與一下站的距離;采用MVB數(shù)據(jù)收發(fā)裝置,模擬發(fā)送列車開關(guān)門信號、列車速度信號,完成以MVB為通訊方式的旅客信息系統(tǒng)自動報站測試,降低了現(xiàn)場環(huán)境對測試的限制,測試方法回歸測試能力強,復測時無需修改任何陪測內(nèi)容或者只做少量修改,即可進行報站邏輯測試,提高了測試的靈活性及通用性,為設(shè)備的穩(wěn)定運行提供保障。
動車組報站功能由旅客信息系統(tǒng)完成。旅客信息系統(tǒng)涉及到報站功能的系統(tǒng)拓撲結(jié)構(gòu)如圖1所示。
圖1 旅客信息系統(tǒng)報站功能拓撲結(jié)構(gòu)
其中系統(tǒng)由旅客信息系統(tǒng)控制器、車廂控制器、車外信息顯示器、車內(nèi)信息顯示器、揚聲器組成[8]。
旅客信息系統(tǒng)控制器通過MVB總線,獲取列車網(wǎng)絡(luò)系統(tǒng)發(fā)送的數(shù)據(jù),例如:速度信號、開關(guān)門信號;通過GPS天線獲取GPS數(shù)據(jù),并通過GPS板卡上的RS232串口,將GPS數(shù)據(jù)傳送至旅客信息系統(tǒng)控制器軟件[9]。
當旅客信息系統(tǒng)進行報站時,將音頻信號傳輸至UIC568總線,車廂控制器通過UIC568總線獲取廣播音頻信號,經(jīng)過音頻功放放大后驅(qū)動本車揚聲器進行廣播;將車內(nèi)外信息顯示內(nèi)容通過以太網(wǎng)向車廂控制器發(fā)送,車廂控制器將其轉(zhuǎn)換為RS485數(shù)據(jù),控制本車車內(nèi)外信息顯示[10]。
動車組旅客信息系統(tǒng)根據(jù)列車的實時GPS坐標,速度、門狀態(tài)信息,在列車即將到站、列車到站停穩(wěn)、列車起步離站,三個關(guān)鍵時刻進行語音和文本的自動播報,用于向乘客展示列車的運行情況。
列車運行的線路信息、站點信息、站間距、預報站閾值、站點的GPS坐標值、報站語音信息和報站文本信息,預存在數(shù)據(jù)庫中;列車在行駛過程中實時從數(shù)據(jù)庫中讀取相關(guān)信息,實現(xiàn)自動報站功能[11]。
預報站:根據(jù)當前列車實時GPS坐標值,與下一站點GPS坐標值計算距離,當檢測到列車距離下一站小于數(shù)據(jù)庫編輯的閾值時,觸發(fā)預報站;
到報站:當檢測到列車門信號為開,且列車速度小于5 km/h時,觸發(fā)到報站;
離報站:當?shù)秸竞?,檢測到門信號為關(guān),且列車速度大于等于5 km/h,觸發(fā)離報站;
根據(jù)自動報站原理,測試自動報站邏輯時需要模擬GSP數(shù)據(jù)、列車開關(guān)門信息、列車速度信息。自動報站測試裝置如圖2所示。
圖2 旅客信息系統(tǒng)自動報站邏輯測試裝置
圖3 GPS模擬軟件處理流程
自動報站邏輯測試裝置包含:
測試主機,測試主機內(nèi)運行用例執(zhí)行軟件、GPS模擬軟件;
MVB數(shù)據(jù)收發(fā)裝置;
自動報站測試裝置向外提供MVB接口、RS232接口,用于測試基于MVB網(wǎng)絡(luò)通訊的動車組旅客信息系統(tǒng)報站邏輯。
測試主機采用X86架構(gòu),Win10操作系統(tǒng),接口包含千兆以太網(wǎng)口、USB接口。測試主機內(nèi)運行用例執(zhí)行軟件與GPS模擬軟件。使用GPS模擬軟件,通過USB轉(zhuǎn)RS232線纜與被測設(shè)備相連,用來向被測設(shè)備發(fā)送GPS模擬坐標數(shù)據(jù);
MVB數(shù)據(jù)收發(fā)裝置通過USB供電,對外提供兩路MVB接口,一路RJ45以太網(wǎng)口。裝置采用ARM架構(gòu),QNX操作系統(tǒng),運行MVB數(shù)據(jù)收發(fā)軟件,一方面接收用例執(zhí)行軟件的測試指令,獲取用戶設(shè)置的速度、開關(guān)門信息,另一方面與被測設(shè)備以MVB進行通訊,將收取到的速度、開關(guān)門信息通過MVB轉(zhuǎn)發(fā)給被測設(shè)備。
GPS模擬軟件用于模擬列車實時位置數(shù)據(jù),實現(xiàn)方式如下:
1)GPS模擬軟件運行后,初始化與用例執(zhí)行軟件的TCP通訊,準備接收測試人員在用例執(zhí)行軟件中設(shè)置的經(jīng)、緯度數(shù)據(jù);由于GPS模擬軟件與用例執(zhí)行軟件,運行于同一臺設(shè)備,故使用回環(huán)地址127.0.0.1進行通訊;
2)初始化與被測設(shè)備的RS232通訊;
3)當接受到用例執(zhí)行軟件指令時,首先判斷指令的正確性,若不正確,則記錄錯誤狀態(tài),否則將用例執(zhí)行軟件通過TCP設(shè)置的經(jīng)緯度數(shù)據(jù),填充到標準的GPS坐標數(shù)據(jù)中,向被測設(shè)備發(fā)送RS232協(xié)議的GPS坐標數(shù)據(jù);
其中GPS的原始數(shù)據(jù)以及各字段含義如下:
$GPRMC,014600.00,A,2237.496474,N,11356.089515,E,0.0,225.5,310518,2.3,W,A *23
GPS數(shù)據(jù)中,涉及到報站的字段為字段2、字段3、字段4、字段5、字段6;其中字段2在組合數(shù)據(jù)時,默認填寫A,即定位成功;由于中國各省市均在東經(jīng)和北緯區(qū)域內(nèi),字段4填寫N,字段6填寫E;字段3和字段5的數(shù)值填充為通過TCP通訊接收測試人員在用例執(zhí)行軟件中設(shè)置的經(jīng)、緯度數(shù)據(jù)。其余字段按照正確的數(shù)據(jù)格式填寫即可,其中校驗和在0~12填充完畢后,由GPS模擬軟件進行計算,并填充到字段13中[12]。
MVB數(shù)據(jù)收發(fā)軟件,實現(xiàn)方式如下。
3.2.1 初始化MVB數(shù)據(jù)收發(fā)軟件運行環(huán)境
軟件運行時,讀取配置文件獲取軟件運行信息,用于指導軟件的運行方式,配置文件內(nèi)容為如下:
localhost表示本機IP地址,localport表示本機端口號,此信息用于開啟TCP服務(wù)器,接收測試用例執(zhí)行軟件的用戶測試指令;
byteorder與bitorder分別表示字節(jié)開端與字節(jié)內(nèi)開端,取值為0表示大開端,取值為1表示小開端;
baenable表示開啟或關(guān)閉總線管理功能,當被測設(shè)備為MVB主設(shè)備時,需要設(shè)置本裝置關(guān)閉總線管理功能,取值為0;當被測設(shè)備為MVB從設(shè)備時,需要設(shè)置本裝置開啟總線管理功能,取值為1。
3.2.2 初始化MVB硬件設(shè)備,開啟、關(guān)閉總線管理功能
MVB數(shù)據(jù)收發(fā)軟件在啟動后,根據(jù)用戶配置,開啟或者關(guān)閉BA功能,即MVB裝置作為主設(shè)備或者從設(shè)備使用,自動完成MVB硬件的初始化過程,從而適配不同被測設(shè)備的測試需求。當MVB裝置作為主設(shè)備時,即開啟總線管理功能,程序運行后,需要讀取端口信息二進制文件,進行對應端口的調(diào)度;端口信息二進制文件存放路徑固定在/app目錄下,文件名為BA_MVB.bin;在測試前需要根據(jù)具體的項目,使用D2000工具生成該二進制文件,并使用FTP文件傳輸工具,將此文件下載到裝置的對應目錄中[13];
當MVB測試設(shè)備作為從設(shè)備時,即配置文件baenable字段配置為0,測試時無需向裝置傳輸端口信息二進制文件,程序在初始化MVB硬件時,不使用二進制文件路徑參數(shù)[14]。
3.2.3 解析MVB端口配置文件,初始化通訊端口
本軟件可以根據(jù)不同被測設(shè)備的端口信息,進行端口的初始化操作,程序使用的端口信息配置文件如下:
#type port size cycle
sink 110 h 32 64
source 160 h 32 64
每一行表示一個端口的信息;type表示該端口的方向,sink表示裝置接收數(shù)據(jù)方向的端口,source表示裝置發(fā)送數(shù)據(jù)方向的端口;port表示端口號,size表示端口的大小,cycle表示端口刷新周期;程序存儲端口信息的結(jié)構(gòu)體如下所示:
struct MVBPdData
{
unsigned int port;
unsigned int cycle;
unsigned int size;
uint8_t type[16];
uint8_t data[32];
};
MVB數(shù)據(jù)收發(fā)軟件讀取端口配置文件后,將配置文件中的每一行信息,分配一個結(jié)構(gòu)體,進行對應字段的記錄;調(diào)用端口初始化接口,進行端口初始化操作。
3.2.4 解析MVB端口默認值配置文件,初始化端口默認值
軟件可以根據(jù)不同被測設(shè)備的端口信息,進行端口數(shù)據(jù)的初始化操作。MVB數(shù)據(jù)收發(fā)軟件使用的默認值配置文件如下:
@0x113
21 1 Boolean1 1
22 0 Boolean1 1
#0x113
@0x123
21 1 Boolean1 1
22 4 Boolean1 1
#0x123
其中以@開頭和#開頭的數(shù)字,表示端口號的十六進制數(shù),之間的內(nèi)容為本端口下,默認值信息;
第一列表示字節(jié)偏移、第二列表示位偏移、第三列表示數(shù)據(jù)類型、第四列表示默認值;
MVB數(shù)據(jù)收發(fā)軟件處理MVB端口默認值的過程如圖4所示。
圖4 默認值處理流程
首先打開默認值配置文件,開始讀取一行數(shù)據(jù),如果該行數(shù)據(jù)非空且不為#,并且以@開頭,則表示讀取到一個端口的地址數(shù)據(jù),記錄該端口的數(shù)值port,并且后續(xù)讀取到的信息為該端口下的數(shù)據(jù)信息;
如果該行數(shù)據(jù)非空且不為#,并且不以@開頭,則讀取該端口下的字節(jié)偏移、位偏移、數(shù)據(jù)類型、默認值,然后根據(jù)記錄的端口值,尋找端口信息內(nèi)存地址,并根據(jù)記錄的信息,設(shè)置該內(nèi)存地址對應的數(shù)據(jù);設(shè)置完內(nèi)存地址數(shù)據(jù)后,循環(huán)讀取一行數(shù)據(jù)并處理,直到讀取的內(nèi)容為空,結(jié)束。
3.2.5 根據(jù)初始化的端口,開啟線程進行MVB端口數(shù)據(jù)收發(fā)
MVB數(shù)據(jù)收發(fā)軟件在啟動后,根據(jù)用戶配置的端口信息,自動進行MVB數(shù)據(jù)收發(fā)操作,從而適配不同被測設(shè)備的測試需求[16]。
在端口初始化時,涉及被測設(shè)備的MVB端口信息已經(jīng)存儲到MVBPdData結(jié)構(gòu)體中,數(shù)據(jù)發(fā)送讀取主要根據(jù)此結(jié)構(gòu)體的信息,將端口數(shù)據(jù)發(fā)出或者存儲,處理過程如圖5所示。
圖5 MVB數(shù)據(jù)收發(fā)處理流程
圖6 旅客信息系統(tǒng)報站邏輯測試系統(tǒng)
首先取出一條MVB端口信息MVBPdData,檢測其成員變量type,如果為“source”類型,并且到該端口的發(fā)送周期,則調(diào)用相關(guān)接口將端口信息MVBPdData中的數(shù)據(jù)data發(fā)送出去;否則調(diào)用相關(guān)接口進行數(shù)據(jù)收取,將收取到的數(shù)據(jù)存放在端口信息MVBPdData的data中[17]。
3.2.6 接收用戶測試指令、解析測試指令、執(zhí)行測試指令
MVB數(shù)據(jù)收發(fā)軟件能夠接收用戶的測試指令,解析并執(zhí)行測試指令。MVB數(shù)據(jù)收發(fā)軟件在處理用戶測試指令方面,首先初始化TCP套接字,并等待測試用例執(zhí)行軟件客戶端的連接,當用例執(zhí)行軟件發(fā)送指令數(shù)據(jù)時,MVB數(shù)據(jù)收發(fā)軟件收取相關(guān)數(shù)據(jù),并調(diào)用相關(guān)接口進行處理與響應[18];
MVB數(shù)據(jù)收發(fā)軟件響應工具發(fā)送的指令類型有:set指令、sleep指令;
用例執(zhí)行軟件發(fā)送set指令的數(shù)據(jù)區(qū)的各字節(jié)含義如表4所示。
MVB數(shù)據(jù)收發(fā)軟件提取端口號、字節(jié)偏移、位偏移、變量類型,在MVBPdData結(jié)構(gòu)體中查詢相關(guān)的數(shù)據(jù)信息,如果協(xié)議中有重置標志,則將默認值設(shè)置到對應數(shù)據(jù)中,否則將當前值設(shè)置到對應的數(shù)據(jù)中;
用例執(zhí)行軟件發(fā)送sleep指令的數(shù)據(jù)區(qū)的各字節(jié)的含義如表5所示。
MVB數(shù)據(jù)收發(fā)裝置提取字節(jié)1的信息,調(diào)用相關(guān)接口進行對應時間的延時,時間單位為毫秒,即1秒=1 000毫秒;
測試用例執(zhí)行軟件,其實現(xiàn)方式如下:
測試用例執(zhí)行軟件作為向測試人員提供的操作裝置或者軟件的統(tǒng)一接口,接受測試人員輸入的指令,并將指令發(fā)送給MVB數(shù)據(jù)收發(fā)裝置及GPS模擬軟件。測試人員控制經(jīng)緯度信息指令,在測試用例執(zhí)行軟件中的寫法如下:
longitude=2237.496474;
latitude=11356.089515;
其中變量名為固定寫法,數(shù)值根據(jù)不同的站點信息做相應修改;
當測試用例執(zhí)行軟件執(zhí)行此測試指令時,將如下信息發(fā)送給GPS模擬軟件:
動作名稱 變量名 值;
set longitude 2237.496474 或者set latitude 11356.089515
測試人員根據(jù)具體項目使用的MVB協(xié)議,編寫MVB通訊協(xié)議文件,文件內(nèi)容如表6所示。
測試人員根據(jù)待測試的項目,按照上述表格格式整理MVB通訊協(xié)議,并將通訊協(xié)議導入至用例執(zhí)行軟件,用例執(zhí)行軟件會根據(jù)此協(xié)議文件生成MVB數(shù)據(jù)收發(fā)裝置使用的默認值配置文件、端口配置文件,根據(jù)端口配置文件,使用D2000工具生成BA文件。將配置文件及BA文件通過FTP傳至MVB數(shù)據(jù)收發(fā)裝置,指導MVB數(shù)據(jù)收發(fā)。
以中國標準動車組CR400BF旅客信息系統(tǒng)為例進行驗證,測試系統(tǒng)的連接方式如下所示。
報站邏輯由旅客信息系統(tǒng)控制器完成。旅客信息系統(tǒng)控制器中具有MVB板卡,GPS板卡。其中MVB板卡為從卡,用于獲取列車數(shù)據(jù),例如:速度信號、開關(guān)門信號;GPS板卡通過GPS天線獲取GPS數(shù)據(jù),并通過GPS板卡上的RS232串口,將GPS數(shù)據(jù)傳送至旅客信息系統(tǒng)控制器軟件[19]。測試時,將動車組旅客信息系統(tǒng)自動報站邏輯測試裝置的RS232線纜直接連接至GPS板卡RS232串口,模擬GPS數(shù)據(jù)[20]。CPU板卡內(nèi)運行程序,負責讀取數(shù)據(jù)庫并結(jié)合系統(tǒng)內(nèi)部設(shè)備完成報站功能。
將車次G5線路信息編輯到數(shù)據(jù)庫內(nèi):
將各站點GPS坐標信息編輯到數(shù)據(jù)庫內(nèi):
將報站文字信息編進數(shù)據(jù)庫內(nèi):
數(shù)據(jù)庫中配置的報站文字信息中,以%開頭和結(jié)尾的字符為通配符;在列車實時運行的過程中,根據(jù)當前的列車狀態(tài)、列車站點車次情況,將%Next%、%Arrived%、%Origination%、%Destination%、%TrainCode%通配符信息,替換為當前列車狀態(tài)下的前方到站中英文、當前停靠站中英文、列車始發(fā)站、終點站中英文、車次號信息,向內(nèi)外信息顯示器發(fā)送,進行當前狀態(tài)下對應信息的顯示。
將編輯完的數(shù)據(jù)庫、程序、語音文件傳輸?shù)铰每托畔⑾到y(tǒng)控制器內(nèi),完成測試環(huán)境中被測設(shè)備端的軟件環(huán)境搭建。
測試環(huán)境中,測試設(shè)備的搭建步驟如下:
步驟一:結(jié)合具體項目,制作MVB通訊協(xié)議,將MVB協(xié)議導入至測試用例執(zhí)行軟件,生成端口配置文件、默認值配置文件;
步驟二:將配置端口、默認值配置文件導入至MVB數(shù)據(jù)收發(fā)裝置內(nèi),使用D2000工具,根據(jù)端口配置文件生成BA文件,導入MVB數(shù)據(jù)收發(fā)裝置內(nèi);設(shè)置MVB數(shù)據(jù)收發(fā)裝置的配置文件如下:
步驟三:編寫測試用例;
編寫測試用例時,使用GPS模擬數(shù)據(jù)、速度信號、門信號信息,模擬三個報站階段。使用如下公式,計算當前列車位置與下一站位置距離,如果小于數(shù)據(jù)庫記錄的報站距離,則觸發(fā)預報站;S=2arcsin
其中:Lat1、Lung1表示A點經(jīng)緯度,Lat2、Lung2表示B點經(jīng)緯度;a=Lat1-Lat2為兩點緯度之差b=Lung1-Lung2為兩點經(jīng)度之差;6 378.137為地球半徑,單位為千米。
測試用例使用的各站點GPS數(shù)據(jù)如下:
由于第一站只有始發(fā)離站,無預報站,模擬預報站條件,需要使用公式計算第2~5站預報站條件GPS坐標位置:編寫測試用例:
在測試時,依次從第一條開始,手動執(zhí)行一條測試用例,觀察旅客信息系統(tǒng)是否觸發(fā)對應站點的報站語音信息與文字信息。各站點對比信息如表14所示。
表1 GPS數(shù)據(jù)各字段含義說明
表2 軟件運行信息配置文件
表3 結(jié)構(gòu)體各字段含義說明
表4 set指令含義說明
表5 sleep指令含義說明
表7 線路信息
表8 GPS坐標信息
表10 MVB通訊協(xié)議
表11 軟件運行信息配置文件
表12 模擬GPS坐標信息
表13 模擬自動報站測試用例
表14 信息驗證
當手動執(zhí)行測試用例TC-2-1后,觀察車內(nèi)信息顯示器是否依次循環(huán)顯示“列車即將到達濟南西站?!?、“The train is arriving at JiNanXi.”;揚聲器是否播報“濟南西預報.wav”音頻對應的信息內(nèi)容,即是否觸發(fā)旅客信息系統(tǒng)G5車次下的濟南西預報站狀態(tài);當手動執(zhí)行測試用例TC-2-2后,觀察車內(nèi)信息顯示器是否依次循環(huán)顯示“列車現(xiàn)在???濟南西 站?!?、“We are now at JiNanXi.”;揚聲器是否播報“濟南西到報.wav”音頻對應的信息內(nèi)容,即是否觸發(fā)旅客信息系統(tǒng)G5車次下的濟南西到報站狀態(tài);當手動執(zhí)行TC-2-3后,觀察車內(nèi)信息顯示器是否依次循環(huán)顯示“歡迎乘坐 北京南-上海虹橋 的G5次列車?!?、“Welcome aboard the Fu Xing train.Train number:G5.Destination:BeiJingNan-ShangHaiHongQiao.”;“本次列車全列禁煙,禁止攜帶危險品乘車?!?、“No smoking.Dangerous articles prohibited”、“G5 北京南-上海虹橋 下一站 南京南”、“G5 BeiJingNan-ShangHaiHongQiao Next Stop:NanJingNan”;揚聲器是否播報“濟南西離報.wav”音頻對應的信息內(nèi)容,即是否觸發(fā)旅客信息系統(tǒng)G5車次下的濟南西離報站狀態(tài);車外信息顯示器在報站過程中是否固定顯示G5車次、循環(huán)交替顯示“北京南-上海虹橋”、“BeiJingNan-ShangHaiHongQiao”;執(zhí)行測試用例TC-3-1~TC-5-3后,確認信息的方式與測試用例TC-2-1~TC-2-3相同。如果旅客信息系統(tǒng)的播報內(nèi)容正確,則本車次報站功能測試執(zhí)行通過。
當需要自動執(zhí)行報站測試用例時,需要在每條測試用例后,加上延時模塊,例如sleep=60000(sleep延時時間單位為毫秒,此處即延時60秒),延時時間根據(jù)語音文字播報完的時間進行確定,由測試人員觀察旅客信息系統(tǒng)各站點的報站觸發(fā)情況。
借助動車組自動報站功能測試方法,通過測試主機的GPS模擬軟件生成GPS模擬坐標數(shù)據(jù)傳送至待測設(shè)備和通過MVB數(shù)據(jù)收發(fā)裝置將列車測試數(shù)據(jù)傳送至待測設(shè)備,實現(xiàn)了針對不同MVB通訊協(xié)議的自動報站邏輯的模擬測試,可以滿足大部分動車組的測試需求;測試時在地面實驗室進行報站邏輯測試,降低了現(xiàn)場環(huán)境對測試的限制;測試方法回歸測試能力強,復測時無需修改任何陪測內(nèi)容或者只做少量修改,即可進行報站邏輯測試,提高了測試的靈活性及通用性,為設(shè)備的穩(wěn)定運行提供保障。