蔣 愷陳超林
(南寧鐵路局 科學技術(shù)研究所,1.助理工程師,2.工程師,廣西 南寧 530001)
?
基于Android平臺的客列尾APP的研發(fā)
蔣愷1陳超林2
(南寧鐵路局科學技術(shù)研究所,1.助理工程師,2.工程師,廣西南寧530001)
摘要:針對目前客列尾數(shù)據(jù)只有在列車入庫以后才能進行讀取和分析,出現(xiàn)故障后管理人員不能及時拿到數(shù)據(jù)分析故障原因這一問題,在Android平臺上開發(fā)了“客列尾APP”應用軟件,實現(xiàn)了能夠在列車運行途中讀取客列尾數(shù)據(jù)并傳送到指定郵箱的功能;本文簡述了該APP的開發(fā)背景,設計要求及開發(fā)過程。目前該APP運行穩(wěn)定、可靠,具有使用方便、維護簡單等特點,減輕了職工勞動強度,提高了工作效率,有良好的推廣應用前景。
關(guān)鍵詞:客列尾;Android串口通信;SQLite;CRC校驗
10.13572/j.cnki.tdyy.2016.03.016
列車尾部安全防護裝置(簡稱客列尾)是保證列車運行安全而設計生產(chǎn)的安全防護設備,也是重要的鐵路行車設備。它的主要功能有列車尾部風壓查詢,列車尾部風壓異常告警,列車尾部排風制動等等。自2014年10月以來,旅客列車逐步安裝了客列尾裝置,取代了運轉(zhuǎn)車長,然而目前客列尾裝置的數(shù)據(jù)分析工作比較被動,只有在列車入庫以后,拆下客列尾裝置,送到專用庫房才能對其進行數(shù)據(jù)讀取及分析。不僅增加了職工勞動強度,也影響了工作效率,因此,急需要一個便攜式裝置能夠在列車運行途中讀取客列尾的記錄數(shù)據(jù),通過無線網(wǎng)絡發(fā)到指定郵箱,供相關(guān)人員分析,及時了解客車運行狀態(tài)。便攜式裝置選用Android平板,主要的工作任務是開發(fā)讀取及分析客列尾數(shù)據(jù)的應用軟件,即客列尾APP。
實現(xiàn)在Android平板上安裝客列尾APP,APP獲取到客列尾裝置返回的原始數(shù)據(jù)并解析成文件,再通過WIFI或GPRS無線網(wǎng)絡將文件發(fā)送到指定郵箱,網(wǎng)絡拓撲圖見圖1。具體設計要求如下:
1)APP向客列尾裝置的RS232串口發(fā)送指令,客列尾裝置收到指令后返回283Kb左右的數(shù)據(jù),平板可把這些數(shù)據(jù)解析成可識別的中文,以列表的形式展現(xiàn)在平板上。
利用平板的GRPS和WiFi二種無線網(wǎng)絡發(fā)送郵件(帶附件)到指定郵箱。在郵件發(fā)送之前軟件自動判斷數(shù)據(jù)網(wǎng)絡,發(fā)送結(jié)束后自動關(guān)閉數(shù)據(jù)網(wǎng)絡,節(jié)省數(shù)據(jù)流量。
2)可對平板串口的參數(shù)進行設置,也可設置接收郵箱的地址及SMTP服務器。
3)具有操作日志記錄功能,只有達到一定權(quán)限的操作人員才能對日志進行查看和刪除。
4)在軟件界面上能夠動態(tài)顯示數(shù)據(jù)讀取、數(shù)據(jù)解析、郵件發(fā)送的狀態(tài)。
5)用Excel軟件能直接打開接收到的郵件(附件)。
圖1 網(wǎng)絡拓撲圖
2.1開發(fā)平臺的選擇根據(jù)設計要求,現(xiàn)在比較主流的手持設備開發(fā)平臺為WinCE和Linux開發(fā)平臺。Linux具有支持多種硬件平臺,占有較小的硬件資源,高可定制性,強大的網(wǎng)絡功能等優(yōu)勢。WinCE在這幾個方面表現(xiàn)相對較弱,基于Linux內(nèi)核的Android操作系統(tǒng)的應用軟件還能移植到現(xiàn)有的Android智能手機中使用?;诖?,最后選定Android平板作為開發(fā)平臺,Java為軟件開發(fā)語言。
2.2串口數(shù)據(jù)幀解析軟件通過RS232串口向客列尾裝置下發(fā)讀指令,客列尾會返回283Kb左右的通信數(shù)據(jù),每條數(shù)據(jù)幀結(jié)構(gòu)見表1。
表1 數(shù)據(jù)幀結(jié)構(gòu)
通過對數(shù)據(jù)幀的分析,可以發(fā)現(xiàn)數(shù)據(jù)幀以“1002”開頭,以“1003”結(jié)束;狀態(tài)數(shù)據(jù)和CRC校驗碼為4位;列尾ID為6位;記錄時間和機車號為8位;作業(yè)類別為4位或者6位。根據(jù)數(shù)據(jù)幀結(jié)構(gòu),我們提取出“記錄時間”,“機車號”,“KLW_ID”,“作業(yè)類別”,“狀態(tài)數(shù)據(jù)”等我們所需要的信息。例如:F90801即表示作業(yè)類別中的“開機”。為了防止數(shù)據(jù)幀在解析過程中出現(xiàn)漏解析、錯解析,保證數(shù)據(jù)的完整性和準確性,我們先用正則表達式將數(shù)據(jù)幀分隔開,然后在對每一條通信數(shù)據(jù)幀解析的時候都會進行CRC校驗,只有校驗成功的數(shù)據(jù)幀才會被解析并保存下來,數(shù)據(jù)解析完之后最終的文本文件大小為850Kb左右。軟件解析結(jié)果見圖2。
圖2 數(shù)據(jù)解析結(jié)果
2.3Android串口通信方式的確定Android的串口通信解決方案有很多,如通過USB轉(zhuǎn)串口,藍牙轉(zhuǎn)串口,WiFi轉(zhuǎn)串口,主板自帶串口等方式。由于有線通信方式比無線通信方式(藍牙和WiFi轉(zhuǎn)串口)抗干擾能力更強,數(shù)據(jù)傳輸更穩(wěn)定;再者USB轉(zhuǎn)串口需要購買芯片并對其進行編程,而主板自帶串口的可通過JNI技術(shù)直接實現(xiàn)串口通訊,所以最終選定的方案是平板自帶串口。
2.4后臺發(fā)送郵件的實現(xiàn)軟件是通過無線網(wǎng)絡(GRPS和WiFi)將郵件發(fā)送到指定郵箱來傳送數(shù)據(jù)的。點擊發(fā)送郵件后,程序首先判斷Android平板當前是否已經(jīng)打開了數(shù)據(jù)網(wǎng)絡,若沒有,則先跳轉(zhuǎn)到網(wǎng)絡設置界面,提示用戶打開網(wǎng)絡;有網(wǎng)絡的情況下則直接發(fā)送郵件;郵件發(fā)送過程中,在軟件界面(見圖3)會有進度提示和耗費時間等信息,并把進度和結(jié)果信息寫入到數(shù)據(jù)庫供查找分析。經(jīng)反復測試,850 Kb數(shù)據(jù)文本文件(.txt格式)在WiFi和GPRS情況下,郵件發(fā)送時間分別為4 s和180 s左右;在4G網(wǎng)絡下測試,發(fā)送時間只有10 s左右,發(fā)送時間在可接受的范圍內(nèi)。
圖3 郵件發(fā)送提示界面
2.5操作日志查詢操作日志的查詢需要用到數(shù)據(jù)庫來存儲數(shù)據(jù),在Android平臺上,集成了一個嵌入式數(shù)據(jù)庫—SQLite。SQLite是一款輕量級的關(guān)系型數(shù)據(jù)庫,由于它占用的資源非常少,所以很多嵌入式設備都用SQLite來存儲數(shù)據(jù)。并且它支持Linux操作系統(tǒng),因此數(shù)據(jù)庫選擇SQLite。先在數(shù)據(jù)庫中建立表名為Tab_log的表,表中創(chuàng)建3列,分別為序號、時間、操作類型。操作人員在每次讀取串口數(shù)據(jù)、解析數(shù)據(jù),發(fā)送郵件等操作都會把對應的日志寫進SQLite數(shù)據(jù)庫,管理員可按時間范圍、操作類型等條件對操作記錄進行查詢和刪除。操作日志界面見圖4。2.7發(fā)送文件格式的確定為了便于管理人員查看數(shù)據(jù),在平板前端形成文件時已經(jīng)對文件格式做了處理。即把譯碼完畢的數(shù)據(jù)寫入到一個名為clw. txt的文本文件,相鄰二行數(shù)據(jù)用換行符( )隔開,而每一行數(shù)據(jù)中的相鄰列用制表符( )隔開,這樣Excel軟件就能夠自動識別此格式并打開,定位和篩選數(shù)據(jù)等操作也變得非常簡單。
圖4 操作日志查詢界面
圖5 設置界面
2.8工作流程圖軟件界面簡潔,操作簡單,具體工作流程見圖6。
圖6 工作流程圖
客列尾APP從2014年12月開始研發(fā),經(jīng)過多次修改完善,于2015年8月開始試驗,達到了預期效果,具有良好的推廣應用前景。
中圖分類號:U298.1+2
文獻標識碼:B
文章編號:1006-8686(2016)0.3-0046-03