亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于LinuxQt的地鐵人機(jī)界面的設(shè)計與實現(xiàn)

        2014-12-31 00:00:00石國德苗欣李慧娟
        數(shù)字化用戶 2014年21期

        【摘 要】設(shè)計一種基于Linux Qt平臺的國內(nèi)某型地鐵人機(jī)界面方案,綜合考慮列車運行的環(huán)境,系統(tǒng)采用性能優(yōu)越的X86架構(gòu)作為硬件平臺、穩(wěn)定性強(qiáng)的Linux系統(tǒng)作為軟件平臺,在此基礎(chǔ)上利用開源的圖形界面庫Qt開發(fā)界面程序。通過在硬件平臺上的實際應(yīng)用,驗證了方案的可靠性與穩(wěn)定性。

        【關(guān)鍵詞】人機(jī)界面,Qt,x86架構(gòu),Linux系統(tǒng)

        一、引言

        車輛人機(jī)界面(Human Machine Interface,HMI)是列車網(wǎng)絡(luò)控制與監(jiān)控系統(tǒng)的一個重要組成部分,是列車駕駛員和維護(hù)人員操作列車的窗口。它不同于傳統(tǒng)司機(jī)室以模擬儀表和指示燈為主的顯示方式[1],這種基于平板顯示器和微機(jī)結(jié)合構(gòu)成的智能終端,具有信息顯示、參數(shù)設(shè)定、功能測試和數(shù)據(jù)轉(zhuǎn)存等功能,它為駕駛?cè)藛T實現(xiàn)對車輛各子系統(tǒng)狀態(tài)的實時監(jiān)測與控制,提供了一個更加友好、簡潔、標(biāo)準(zhǔn)化的界面。

        基于上述原因,本文提出了一種城市地鐵車輛的人機(jī)界面設(shè)計方案,方案采用Intel X86處理器作為硬件平臺,以嵌入式Linux系統(tǒng)作為軟件平臺,在此基礎(chǔ)上采用開源的圖形界面庫Qt開發(fā)HMI應(yīng)用程序。通過在硬件平臺上的實際應(yīng)用,驗證了方案的可靠性與穩(wěn)定性。

        二、系統(tǒng)方案

        (一)硬件平臺的選擇

        當(dāng)下的硬件平臺主要有x86架構(gòu)和ARM架構(gòu)兩種選擇。ARM架構(gòu)的硬件平臺相較于x86架構(gòu),具有功耗低的特點,但在硬件資源方面,x86架構(gòu)具有明顯的優(yōu)勢[2],列車對功耗的要求并不像手機(jī)等移動設(shè)備那么苛刻,反而在人機(jī)界面的性能方面要求比較高,因此X86架構(gòu)的硬件平臺更適合做車載人機(jī)界面的開發(fā)。另外,行車過程中復(fù)雜的電磁環(huán)境和強(qiáng)烈的機(jī)械振動,要求顯示器硬件有很好的電磁兼容性和抗振能力,有比較大的存儲能力。綜合上述因素,選擇了基于Intel X86平臺的PIXY INC90系列顯示屏作為硬件平臺。

        (二)軟件平臺的選擇

        Linux操作系統(tǒng)完全沿襲了Unix系統(tǒng)的架構(gòu),在網(wǎng)絡(luò)通信方面的效率和功能都很突出[3];Linux是開源的操作系統(tǒng),設(shè)計者可以根據(jù)自己的開發(fā)需求在此系統(tǒng)上進(jìn)行二次開發(fā),且免費使用;列車人機(jī)界面可使用的硬件資源相對較少并且要求上電時間短,綜合上述因素此處操作系統(tǒng)選擇了嵌人式Linux。

        (三)編程語言的選擇

        Qt是一個跨平臺的C++圖形用戶界面庫,由挪威TroUTeeh公司出品,它支持絕大部分類Unix系統(tǒng)和Windows平臺,擁有良好的跨平臺特性[4]。Qt/Embedded Linux,為嵌入式系統(tǒng)的開發(fā)人員搭建了一套完善的窗口系統(tǒng)和開發(fā)平臺。 Qt還提供了一種稱為signal/slot(信號/槽)的機(jī)制替代了一般Gui庫中所使用的回調(diào)函數(shù)機(jī)制。

        三、開發(fā)環(huán)境搭建

        硬件平臺選擇PIXY INC-90顯示器,顯示器搭載Linux操作系統(tǒng),以O(shè)racle VM VirtualBox和Qt creater作為軟件仿真、編譯和開發(fā)平臺,開發(fā)的應(yīng)用程序經(jīng)過交叉編譯生成可執(zhí)行文件后,通過Win Scp軟件導(dǎo)入顯示器,再用SSH服務(wù)軟件遠(yuǎn)程控制顯示屏,執(zhí)行目標(biāo)程序[5]。

        四、人機(jī)界面設(shè)計

        (一)設(shè)計流程

        控制電源DC110V接通后,兩個司機(jī)室的HMI同時開啟。激活端司機(jī)室的HMI正常顯示,非激活端司機(jī)室的HMI顯示黑屏,主顯示界面根據(jù)用戶操作需求分為運行模式與檢修模式,運行模式主要面對司機(jī),檢修模式主要面對檢修技術(shù)人員,運行模式切換至檢修模式需輸入密碼。設(shè)計流程如圖1所示。

        (二) 界面繪制實現(xiàn)

        總程序采取順序執(zhí)行的方式,在參數(shù)初始化之前,首先執(zhí)行MVB通訊模塊、亮度傳感器檢測,以及判斷串口配置文件是否讀取成功程序,若成功,則進(jìn)行參數(shù)初始化,若失敗,則彈出故障提示界面,提示駕駛員或維護(hù)人員按故障提示進(jìn)行操作。部分檢測程序代碼如下:

        if (engine->init(0x12, 5) != PIXYMVB_OK) //判斷MVB通訊模塊是否正常

        { FaultReason = 1; //故障原因為1

        showFaultHintScreen(JudgeFaultReason); //失敗,根據(jù)故障原因,顯示故障提示界面

        }

        QFileInfo fileInfo(“/dev/ttyUSB_SC”); //讀取顯示器亮度硬件配置文件

        if (!fileInfo.exists()) //判斷硬件是否存在

        {FaultReason =2; //故障原因為2

        showFaultHintScreen(JudgeFaultReason); //失敗,顯示故障提示界面

        }

        圖1 設(shè)計流程圖

        1.信號/槽(signal/slot)機(jī)制

        本文提出的人機(jī)界面設(shè)計方案采用多級界面呈現(xiàn)的形式,界面之間的切換通過信號/槽機(jī)制實現(xiàn),切換功能實現(xiàn)部分代碼如下:

        Class QPushButton; //定義按鍵類

        QPushButton* Button; //聲明一個按鍵指針

        Button –>setGeometry(x,y,width,height); //定義按鍵的坐標(biāo)、長寬參數(shù)

        Button->setText(QString); //設(shè)置按鍵顯示文本

        Private signals:

        Void SwitchScreen(); //聲明切換界面的信號

        Private slots:

        Void JumpToTargetScreen(); //聲明跳轉(zhuǎn)槽函數(shù)

        Connect(Button,released(),this, SwitchScreen ()); //按鍵被點擊且松開時,觸發(fā)信號

        Connect(screen, SwitchScreen (),this, JumpToTargetScreen ()); //信號調(diào)用槽函數(shù),實現(xiàn)跳轉(zhuǎn)到目標(biāo)界面

        2.靜態(tài)界面繪制

        顯示器啟動后進(jìn)入主顯示界面,主界面主要分為三部分:最上端的頁眉,最下端的頁腳,以及顯示區(qū)域最大,位于中部的顯示畫面。其中,頁眉、頁腳的顯示內(nèi)容基本固定,不因界面切換而改變;顯示界面的內(nèi)容會隨界面切換而變化。

        頁眉繪制的部分代碼如下:

        class Controller : public QWidget //繼承自Qt基礎(chǔ)類 QWidget

        Controller::init()

        {

        topHeader = new PTopHeader(this); //在內(nèi)存中new一個空間

        topHeader->setGeometry(x,y,width,height);//設(shè)置坐標(biāo)、長寬參數(shù)

        topHeader->show();//初始化為顯示狀態(tài)

        }

        頁眉顯示車號、畫面號及時間信息,在進(jìn)行頁面切換時,保持頁眉一直處于Show()狀態(tài);顯示畫面主要包括車輛當(dāng)前站,終點站,速度,網(wǎng)壓以及子系統(tǒng)狀態(tài)。

        (三)MVB通信

        MVB是用于在一個固定編組的幾個車輛內(nèi)連接各種可編程設(shè)備的車輛總線。顯示器作為車輛總線的一個子系統(tǒng),通過MVB總線實現(xiàn)同VCU的通信,通訊程序部分代碼如下:

        Void GetCommData() //獲取宿端口數(shù)據(jù)

        Map.insert(); //把端口地址和獲取的數(shù)據(jù)作為鍵值對插入容器中

        void GetOnePortData( wantPortAddress); //通過端口地址讀取容器中的數(shù)據(jù)用于顯示

        五、結(jié)束語

        結(jié)合公司的實際項目,本文設(shè)計了一種城市地鐵車輛的人機(jī)界面方案。本文對軟硬件的選擇及系統(tǒng)平臺的搭建等方面進(jìn)行了闡述,并且著重描述了軟件系統(tǒng)的開發(fā)流程。以PIXY INC-90系列顯示器為應(yīng)用平臺,利用功能強(qiáng)大的開源圖形庫Qt進(jìn)行系統(tǒng)開發(fā)設(shè)計,最終實現(xiàn)了地鐵列車人機(jī)界面系統(tǒng)。通過在顯示器上實際應(yīng)用,驗證了本文方案的可靠與穩(wěn)定。

        參考文獻(xiàn)

        [1] 客金坤,梅櫻,郭紅衛(wèi),等.基于圖形化編程語言的列車人機(jī)界面設(shè)計[J].都市快軌交通,2011,24(1).

        [2] 任亞飛,唐濤.基于嵌入式Linux的列控系統(tǒng)車載人機(jī)界面的實現(xiàn)[J].鐵路計算機(jī)應(yīng)用,2005,14(12).

        [3] 楊志偉,曾艷姍.基于Linux的ACM在線評測系統(tǒng)研究[J].計算機(jī)與現(xiàn)代化,2010(6).

        [4] Jasmin Blanchette, Mark Summerfield. C++ GUI Programming with Qt 4, 2nd edition. 2008.8

        [5] 劉超,周紀(jì)超,張紅星. 基于Linux Qt的列車人機(jī)界面設(shè)計與實現(xiàn)[J].計算機(jī)與現(xiàn)代化。2013,4.

        国产精品亚洲一区二区麻豆| 北条麻妃国产九九九精品视频 | 亚洲av无码乱观看明星换脸va| 色婷婷日日躁夜夜躁| 91视频免费国产成人| 男女高潮免费观看无遮挡| 日本黄网色三级三级三级| 奇米影视色777四色在线首页| 夜夜添夜夜添夜夜摸夜夜摸| 亚洲AV无码一区二区三区人| 国产西西裸体一级黄色大片| 久久亚洲春色中文字幕久久久综合| 手机免费高清在线观看av| 国产麻豆精品精东影业av网站| 久久精品中文闷骚内射| 99亚洲男女激情在线观看| 亚洲男人精品| 日韩国产自拍成人在线| 最近更新中文字幕一区二区| 成年av动漫网站18禁| 日韩精品极品视频在线观看免费| 欧美乱妇高清无乱码在线观看| 国产乱人伦精品一区二区| 91美女片黄在线观看| 人妻体体内射精一区中文字幕| 美女脱了内裤露出奶头的视频| 影音先锋色小姐| 中文在线天堂网www| 国产精品性一区二区三区| 亚洲中文字幕久久精品一区| 亚洲av午夜福利精品一区二区 | 日本一区二区三区啪啪| 中文字幕文字幕一区二区 | 亚洲精品国产一区二区| 法国啄木乌av片在线播放| 亚洲一区二区三区免费av在线| 在线看亚洲一区二区三区| av国产传媒精品免费| 国产成人免费a在线视频| 国产日产免费在线视频 | 高潮毛片无遮挡高清视频播放|