戚力為牛道恒王建敏馬 麟
(1.北京全路通信信號研究設計院集團有限公司,北京 100073;
2.北京市高速鐵路軌道交通運行控制系統(tǒng)工程技術研究中心,北京 100073)
基于IPAD的便攜式動態(tài)添乘設備的研究與應用
戚力為1,2牛道恒1,2王建敏1,2馬 麟1,2
(1.北京全路通信信號研究設計院集團有限公司,北京 100073;
2.北京市高速鐵路軌道交通運行控制系統(tǒng)工程技術研究中心,北京 100073)
基于IPAD的便攜式動態(tài)添乘儀通過無線接收的方式同步顯示人機界面(Driver Machine Interface,簡稱DMI)內(nèi)容,同時通過引用數(shù)據(jù)庫實現(xiàn)車載運行數(shù)據(jù)的存儲,具備離線回放功能?;贗PAD的便攜式添乘設備使得技術人員可在駕駛室外部對車載設備工作狀態(tài)及人機交互過程進行實時監(jiān)測,為開展離線數(shù)據(jù)分析提供一種便捷、有效的手段。
人機界面;數(shù)據(jù)庫;便攜式;復顯
在CTCS-2/CTCS-3級列控系統(tǒng)中,由人機界面(Driver Machine Interface,簡稱DMI)顯示屏實時顯示列車的位置、速度、等級、模式等運行信息,以數(shù)字、文本、圖形、語音或聲音等方式進行顯示[2]。在列車運行過程中,駕駛室通常不允許非乘務人員進入,現(xiàn)場調(diào)試人員不能及時獲得列車運行信息和司機按鍵操作,不利于設備的實時監(jiān)控和問題的快速定位?;贗PAD的動態(tài)添乘設備通過接收多功能車輛總線(Multifunction Vehicle Bus,簡稱MVB)的數(shù)據(jù)實現(xiàn)與DMI同步,向現(xiàn)場調(diào)試人員實時顯示列車的位置、速度、等級、模式等重要信息,并以圖形、文字等形式在IPAD界面上進行實時更新。添乘人員不必進入司機室即可看到DMI的實時信息。同時,在接收運行數(shù)據(jù)后,調(diào)試人員可回放歷史數(shù)據(jù),復顯列車運行狀態(tài)及司機操作流程。本文首先對IPAD動態(tài)添乘設備的總體情況進行介紹;其次介紹各個模塊的設計與實現(xiàn);最后對IPAD動態(tài)添乘設備的應用場景進行闡述。
1.1 開發(fā)背景
IPAD動態(tài)添乘儀硬件采用蘋果公司的IPAD平板電腦,軟件為適配IOS7系統(tǒng)的APP程序,基于Mac OS X下的集成開發(fā)環(huán)境引擎Xcode進行開發(fā)。軟件采用(Model-View-Controller,簡稱MVC)設計模式:即模型、視圖和控制器分層設計。模型包含數(shù)據(jù)、信息、邏輯或對象;視圖包含所有的用戶信息的組件;控制器是通信層、連接模型和視圖處理的所有通信。這種設計模式能有效提高界面實時更新性能,以及處理龐大數(shù)據(jù)量情況,MVC設計模式原理如圖1所示。
DMI數(shù)據(jù)量大,采用此設計模式,可以使數(shù)據(jù)和界面分開處理,滿足IPAD動態(tài)添乘儀對界面刷新的高實時性要求。Mac OS X包含多個Cocoa框架,IPAD動態(tài)添乘客戶端采用Objective-C語言基于Foundation框架和Application Kit框架開發(fā)。Foundation框架定義了一些基礎類,基本的對象屬性、行為和內(nèi)存管理等。Application Kit框架包含實現(xiàn)圖形的、事件驅動的用戶界面需要的所有對象。
用戶可從Apple Store上下載此APP,在IPAD上進行安裝,用戶名和密碼的驗證通過后即可打開軟件進入主界面。IPAD動態(tài)添乘儀通過Wi-Fi連接DMI,監(jiān)聽DMI與車載ATP之間的交互數(shù)據(jù),實現(xiàn)DMI的復顯。其系統(tǒng)環(huán)境如圖2所示。
圖1 MVC設計模式原理圖
圖2 IPAD動態(tài)添乘儀與車載設備的通信原理圖
1.2 功能介紹
IPAD動態(tài)添乘軟件作為添乘人員接收車載設備數(shù)據(jù)的軟件,主要負責完成以下功能。
1)身份驗證功能:登陸界面需要用戶身份驗證,用戶需輸入用戶名和密碼才能進入主界面,保證軟件的安全性。
2)通過無線局域網(wǎng)(Wi-Fi),IPAD動態(tài)添乘設備接收DMI發(fā)送出的界面信息數(shù)據(jù),以數(shù)字、文本、圖形、語音或聲音等方式顯示在IPAD界面上。
3)IPAD動態(tài)添乘設備記錄DMI與ATP之間所有交互的數(shù)據(jù),存儲為日志文件。
4)支持歷史數(shù)據(jù)回放功能,可手動拖動進度條選擇要復顯的數(shù)據(jù)范圍,也可顯示列車的運行軌跡曲線。
IPAD的顯示屏為Retina顯示屏,分辨率為1024×768,IPAD動態(tài)添乘軟件主界面分為8個主顯示區(qū),實時顯示數(shù)字、文本、圖形等信息。包括:目標距離信息顯示(A區(qū))、速度監(jiān)控信息顯示(B區(qū))、補充駕駛信息和文本信息顯示(CE區(qū))、計劃運行信息顯示(D區(qū))、功能鍵含義信息顯示(F區(qū))、進度條信息(G區(qū))、文件信息(H區(qū))。每一個主顯示區(qū)又分為不同內(nèi)容顯示區(qū)域,主界面列車信息顯示模塊具體劃分如圖3所示。
其 中A~F區(qū) 為《CTCS-2/CTCS-3級 列控車載設備人機界面(DMI)顯示暫行規(guī)范》中的標準界面,E區(qū)文本信息需要將主機ATP發(fā)送給DMI的文本信息顯示出來,包括列車運行的模式信息、到站的站名信息以及車載ATP的錯誤警示信息等。文本顯示區(qū)由UITextField控件顯示時間和所有的文本信息。
一般情況下,列車運行的數(shù)據(jù)量較大,例如從北京開往上海的高鐵,需要4個多h,運行期間數(shù)據(jù)不間斷實時傳送。在離線回放數(shù)據(jù)時,數(shù)據(jù)量大往往導致效率低。所以引入G區(qū)的進度條,復顯時能通過手動拖動G1進度條控件,來選擇播放日志文件的開始位置,點擊G2播放按鈕控件即可進行回放,提高離線定位的效率。
為了增強軟件界面的友好性和使用的流暢性,引入UIScrollView控件在有限的界面區(qū)域內(nèi)展示多個子界面。H區(qū)使用該控件分出3個子界面,其中H1區(qū)為行車速度曲線,顯示列車的運行軌跡,橫坐標為時間,縱坐標為列車速度,用來監(jiān)控列車整體的運行狀態(tài);H2區(qū)為日志文件列表,日志文件以創(chuàng)建日期命名,以天為單位進行存儲,并且支持手滑動刪除日志文件;H3區(qū)為預留界面。
回放歷史數(shù)據(jù)時主界面顯示如圖4所示。
便攜式的設備需要其具備方便、輕巧等特點。采用無線Wi-Fi的方式實現(xiàn)DMI數(shù)據(jù)的接收在DMI顯示屏后方連接無線路由器,IPAD進入設置界面手動設置IP地址(DMI網(wǎng)段),和DMI建立UDP連接。建立連接后,IPAD即可實時接收DMI數(shù)據(jù)。
數(shù)據(jù)通信模塊主要通過AsyncUdpSocket創(chuàng)建實例,綁定端口后創(chuàng)建接收線程。通過多線程以提高對大量數(shù)據(jù)進行接收和顯示的效率。
為了實現(xiàn)DMI回放功能,需要對DMI數(shù)據(jù)進行記錄。在IOS開發(fā)過程中,將數(shù)據(jù)保存到本地,能夠讓程序的運行更加順暢,使得用戶體驗更好,對IPAD保存數(shù)據(jù)的幾種方法進行對比分析。
圖3 IPAD動態(tài)添乘儀主界面區(qū)域劃分
圖4 IPAD動態(tài)添乘儀主界面
1)采用歸檔的形式來保存數(shù)據(jù):需要遵守NSCoding協(xié)議,使用encodeWithCoder和initWithCoder來對數(shù)據(jù)進行編碼和解碼。歸檔的方法缺點是只能一次性歸檔保存以及一次性解壓,所以,只能針對小量數(shù)據(jù);如果想改動數(shù)據(jù)的一部分,則需要解壓整個數(shù)據(jù)或者歸檔整個數(shù)據(jù),對數(shù)據(jù)操作比較不靈活。
2)采用Write寫入方式永久保存在磁盤中:首先獲得文件的保存路徑,即IPAD沙盒(sandbox)路徑;接著在此路徑下以時間為文件名來創(chuàng)建文件;最后是在此路徑下打開文件對文件進行寫入數(shù)據(jù)或讀取數(shù)據(jù)等操作。由于IPAD內(nèi)存空間有限,需要對數(shù)據(jù)進行壓縮操作,但是數(shù)據(jù)在解析之前還要先對數(shù)據(jù)進行解壓操作,增加了處理時間,性能大大降低,此方法不適合數(shù)據(jù)量大的情況。
3)NSUserDefaults用來保存應用程序配置信息和屬性。
4)采用SQLite數(shù)據(jù)庫來存儲數(shù)據(jù):SQLite是一個輕量級的關系數(shù)據(jù)庫,是嵌入在IOS中的關系型數(shù)據(jù)庫,不需要服務器,它占用資源非常少,對于存儲大規(guī)模的數(shù)據(jù)很有效。IOS開發(fā)使用SQLite前,在Frameworks中加入所需的庫,即libsqlite3.0.dylib庫,直接使用庫中的API對數(shù)據(jù)庫進行創(chuàng)建、插入、讀取和刪除操作。
由于DMI數(shù)據(jù)都是基本類型數(shù)據(jù)并且數(shù)據(jù)量大,IPAD動態(tài)添乘儀采用第4種存儲方法,實時接收DMI數(shù)據(jù),存入數(shù)據(jù)庫。DMI數(shù)據(jù)分為周期性動態(tài)數(shù)據(jù)和非周期性數(shù)據(jù),其中周期性動態(tài)數(shù)據(jù)又分為CTCS-2和CTCS-3動態(tài)數(shù)據(jù),將數(shù)據(jù)分類存儲于表中。
4.1 數(shù)據(jù)類型
CTCS-2/CTCS-3級 車 載ATP和DMI之 間的交互數(shù)據(jù)分為以下2種類型。
1)周期性數(shù)據(jù):在列車運行過程中,車載設備需要實時向DMI發(fā)送列車當前位置、實際速度、允許速度、目標速度、運行等級、運行模式、制動狀態(tài)、軌道電路碼等重要信息,DMI在界面上以圖形、文字等形式實時顯示上述信息,提示司機監(jiān)控列車的運行狀態(tài)。同時,DMI需要實時向車載設備報告DMI當前狀態(tài)等信息。周期性動態(tài)數(shù)據(jù)分為CTCS-2和CTCS-3等級的動態(tài)數(shù)據(jù),分別以0xaa和0xbb起始和結束,數(shù)據(jù)長度為32 Byte。
2)非周期性數(shù)據(jù):列車越過地面應答器時,車載設備從應答器獲得軌旁信息、線路條件、坡度信息、車站名等信息,需要將上述信息及時準確地發(fā)送給DMI;另一方面,車載設備在監(jiān)控列車運行時,將產(chǎn)生的聲音文本等信息發(fā)送給DMI。非周期性數(shù)據(jù)以0x99起始和結束。
4.2 數(shù)據(jù)存儲格式
SQLite數(shù)據(jù)庫是文件數(shù)據(jù)庫,數(shù)據(jù)文件保存在IOS的Documents目錄下。通過iTunes軟件可以訪問此目錄,實現(xiàn)歷史日志文件的導出和保存。
IPAD動態(tài)添乘儀接收到數(shù)據(jù)后,IPAD在沙盒中創(chuàng)建數(shù)據(jù)庫,并以創(chuàng)建數(shù)據(jù)庫的日期和時間命名,按照數(shù)據(jù)類型創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)以幀為單位進行存儲。
日志文件過多時可通過iTunes同步的方式導出數(shù)據(jù),保存至外部存儲設備中;同時支持對日志文件進行刪除操作。
IPAD動態(tài)添乘儀支持在線顯示和離線回放功能。在線顯示模式下實時接收和解析數(shù)據(jù),并顯示在IPAD上。離線回放模式下的數(shù)據(jù)來源為數(shù)據(jù)庫中的歷史數(shù)據(jù)。
數(shù)據(jù)解析模塊根據(jù)DMI接口協(xié)議對碼流進行解析,其中CTCS-2動態(tài)數(shù)據(jù)和CTCS-3動態(tài)數(shù)據(jù)為固定長度的幀,32 Byte,可按照數(shù)據(jù)結構直接進行移位解析操作;非周期性數(shù)據(jù)為非固定長度的幀,每條消息都包含消息頭和消息長度,根據(jù)解析出來的消息類型和消息長度進入不同的處理分支。
IPAD動態(tài)添乘儀主界面刷新由數(shù)據(jù)觸發(fā),即有新的數(shù)據(jù)(ViewController)時,則會自動重新加載各個區(qū)(A~H區(qū))刷新界面。
本文介紹了基于IPAD的便攜式動態(tài)添乘儀的功能和模塊設計與實現(xiàn)。本設備應用在高速運行的列車上,具有良好的通信功能和友好的人機交互界面,可實現(xiàn)DMI實時復顯和數(shù)據(jù)回放功能,為相關技術人員監(jiān)控車載運行狀態(tài)及分析、定位問題提供了一種有效的手段。在IPAD添乘設備中實現(xiàn)列車司法記錄(JRU)數(shù)據(jù)顯示及解析功能是論文的下一步工作方向。
[1]柴小波.基于ARM的列車添乘儀的研究[D].武漢:武漢理工大學,2006.
[2]中國鐵路總公司.鐵總運[2014]30號 CTCS-2/3級列控車載設備人機界面(DMI)顯示暫行規(guī)范[S].
The IPAD-based portable device can synchronously display the contents of the DMI over wireless LAN, store operation data of onboard equipment in the database to realize off-line playback and have the off-line replay function. The device can provide technical personnel for monitoring the onboard equipment status and man-machine interaction in real time outside the cabin and it also can provide a convenient and effective method for making off-line data analysis.
Driver Machine Interface (DMI); database; portable device; replay
10.3969/j.issn.1673-4440.2015.06.006
2014-12-04)
中國鐵路總公司重大課題項目(2003B001-A-1);中國鐵路總公司重大課題項目(2014X003-H)