• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Linux/QTE的塔機(jī)防撞監(jiān)測(cè)系統(tǒng)GUI設(shè)計(jì)

      2014-09-24 00:50:01盧揚(yáng)章紅
      軟件工程 2014年4期
      關(guān)鍵詞:實(shí)時(shí)性

      盧揚(yáng) 章紅

      摘 要:本文針對(duì)塔機(jī)駕駛艙內(nèi)駕駛員視野狹小,導(dǎo)致塔機(jī)碰撞事故多發(fā)的弊病,提出了一個(gè)基于QTE開發(fā)嵌入式系統(tǒng)GUI的解決方案。該系統(tǒng)實(shí)時(shí)監(jiān)測(cè)整個(gè)工地塔機(jī)的運(yùn)行狀態(tài),并直觀地模擬在LCD屏上運(yùn)行,同時(shí)監(jiān)測(cè)異常狀態(tài)的發(fā)生。通過觸屏界面響應(yīng)用戶各項(xiàng)操作,提升了系統(tǒng)的靈活性。經(jīng)過嵌入式Linux內(nèi)核以及QTE基本庫(kù)的裁剪,使系統(tǒng)保證了較低的內(nèi)存占用率以及優(yōu)良的實(shí)時(shí)性。實(shí)驗(yàn)證明,該系統(tǒng)能夠很好地實(shí)現(xiàn)塔機(jī)狀態(tài)與防碰撞監(jiān)測(cè)。

      關(guān)鍵詞:塔機(jī)監(jiān)測(cè);嵌入式Linux;QTE;GUI;實(shí)時(shí)性

      中圖分類號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A

      1 引言(Introduction)

      隨著國(guó)內(nèi)經(jīng)濟(jì)的迅速發(fā)展,中國(guó)建筑業(yè)一直持續(xù)高速增長(zhǎng),與此同時(shí),建筑作業(yè)的密集化導(dǎo)致同一工作區(qū)域往往存在多臺(tái)塔機(jī)同時(shí)作業(yè)。由于駕駛員或地面指揮人員誤判,現(xiàn)場(chǎng)塔機(jī)相互碰撞、倒塔、碰撞周圍障礙物的事故時(shí)有發(fā)生,如何有效地監(jiān)測(cè)塔機(jī)各項(xiàng)運(yùn)行狀態(tài),并提供給駕駛員一個(gè)明確的外部狀態(tài)信息,成為解決問題的關(guān)鍵??紤]到駕駛艙有限的環(huán)境限制,本設(shè)計(jì)采用基于Linux平臺(tái)以及QTE庫(kù)設(shè)計(jì)的嵌入式GUI,其交互界面友好,操作簡(jiǎn)便。

      2 系統(tǒng)方案設(shè)計(jì)(Scheme design)

      (1)硬件平臺(tái)選擇

      ARM處理器在嵌入式領(lǐng)域具有領(lǐng)先的性能/功耗比,并且隨著ARM公司的發(fā)展,該處理器擁有廣泛的第三方支持,使得基于ARM的開發(fā)更為靈活。搭載ARM1176JZF-S內(nèi)核的S3C6410處理器采用64/32位內(nèi)部總線架構(gòu),使得其在32位處理器的功耗上能夠達(dá)到64位處理器的速度。同時(shí)該處理器強(qiáng)大的硬件加速器提供了優(yōu)秀的視頻、音頻與二維圖形的處理速度?;诖?,選擇使用S3C6410作為本系統(tǒng)核心處理器。

      (2)操作系統(tǒng)選擇

      作為實(shí)時(shí)性要求較高的嵌入式系統(tǒng),穩(wěn)定性是對(duì)操作系統(tǒng)的基本要求。而Linux則具有良好的穩(wěn)定性[1],借助Linux優(yōu)秀的跨平臺(tái)能力,可以在PC虛擬機(jī)上搭建Linux平臺(tái)環(huán)境,交叉編譯ARM平臺(tái)上運(yùn)行的程序,提升開發(fā)效率。通過對(duì)Linux內(nèi)核的裁剪,可進(jìn)一步縮小系統(tǒng)體積,減少不必要的資源占用[2]。構(gòu)建最適合塔機(jī)監(jiān)測(cè)界面的系統(tǒng)平臺(tái)。

      (3)嵌入式圖形庫(kù)QTE

      Linux桌面GUI系統(tǒng)一般都基于X Window系統(tǒng),但X Window本身并不是一個(gè)直接的圖形操作界面,它只是作為圖形環(huán)境與UNIX系統(tǒng)內(nèi)核溝通的中間橋梁[3]。而龐大臃腫的X Window并不適合在嵌入式系統(tǒng)中運(yùn)行,因此本系統(tǒng)采用Qt的嵌入式版本QTE圖形庫(kù)。QTE直接取代了X Server及X Library等角色,僅采用Framebuffer作為底層圖形接口,從而大大減少了系統(tǒng)開銷[4]。并由于QTE良好的可移植性,可裁剪的模塊化設(shè)計(jì),使得其十分適合嵌入式系統(tǒng)設(shè)計(jì)。Qt/X11與QTE系統(tǒng)架構(gòu)對(duì)比如圖1所示。

      3 系統(tǒng)設(shè)計(jì)框架(Design framework)

      考慮到嵌入式系統(tǒng)的限制性,本系統(tǒng)內(nèi)部使用輕量級(jí)的SQLite數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)管理,并優(yōu)化了線程間的調(diào)度與防碰撞算法。系統(tǒng)分別對(duì)接收到的WiMi-net無線模塊與傳感器數(shù)據(jù)做分包提取與模數(shù)轉(zhuǎn)換,在得到系統(tǒng)能識(shí)別的數(shù)據(jù)后將用戶輸入信息(本地塔機(jī)高度,前后臂長(zhǎng),坐標(biāo)位置,工地大小,形狀,障礙物信息等)一起存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)將得到的數(shù)據(jù)送入防碰撞算法模塊進(jìn)行分析,并模擬運(yùn)行狀態(tài)顯示到LCD上。

      GUI的設(shè)計(jì)需要考慮系統(tǒng)與駕駛員的接口,主要的交互在于駕駛員對(duì)系統(tǒng)數(shù)據(jù)庫(kù),無線通訊的管理,以及系統(tǒng)反饋給駕駛員塔機(jī)運(yùn)行狀態(tài)的清晰顯示。其中又包括了系統(tǒng)工作狀態(tài)報(bào)告,塔機(jī)正常運(yùn)行報(bào)告,危險(xiǎn)狀態(tài)預(yù)警,界面調(diào)節(jié)功能等。由此設(shè)計(jì)塔機(jī)監(jiān)測(cè)系統(tǒng)用例圖如圖2所示。

      系統(tǒng)主界面如圖3所示,右側(cè)狀態(tài)欄用來提示系統(tǒng)工作狀態(tài)與塔機(jī)危險(xiǎn)狀態(tài)預(yù)警,包括碰撞預(yù)警,異常狀態(tài)預(yù)警等。同時(shí)當(dāng)前塔機(jī)各項(xiàng)運(yùn)行參數(shù)在下方實(shí)時(shí)顯示,方便駕駛員清楚地了解當(dāng)前塔機(jī)運(yùn)行情況。左側(cè)是工作區(qū)域模擬運(yùn)行區(qū),系統(tǒng)允許同時(shí)監(jiān)測(cè)最多16個(gè)塔機(jī),本塔機(jī)為藍(lán)色,其他塔機(jī)為綠色,當(dāng)有大概率碰撞危險(xiǎn)產(chǎn)生時(shí),以紅色間斷閃爍為警示??梢允褂没瑮l縮放該區(qū)域,方便監(jiān)視整個(gè)工地或是單個(gè)塔機(jī),方向鍵控制平移,也可以使用觸摸筆在屏幕上進(jìn)行拖動(dòng)。

      4 系統(tǒng)核心技術(shù)(Key technology)

      (1)Linux內(nèi)核裁剪

      基于Linux-3.12.7版本的內(nèi)核而言,我們不需要也不應(yīng)該將其完整地運(yùn)行到受到資源限制的嵌入式系統(tǒng)中去。根據(jù)系統(tǒng)的實(shí)際需求,我們只需要保留網(wǎng)絡(luò)服務(wù)、各通信口相關(guān)驅(qū)動(dòng)、10.4寸觸屏驅(qū)動(dòng)、UDA1341音頻芯片驅(qū)動(dòng)、顯卡驅(qū)動(dòng)、聲卡驅(qū)動(dòng)以及其他保證系統(tǒng)正常運(yùn)行的后臺(tái)服務(wù)。在虛擬機(jī)中進(jìn)入Linux-3.12.7源碼包,輸入make xconfig進(jìn)入內(nèi)核配置。在選擇相應(yīng)的配置時(shí),有三種選擇方式,Y表示將該功能編譯進(jìn)內(nèi)核;N表示不將該功能編譯進(jìn)內(nèi)核;M表示將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊[5]。

      在Makefile文件中修改硬件平臺(tái)ARCH = arm以及交叉編譯器CROSS_COMPILE = arm-linux。輸入make dep編譯相關(guān)依賴文件,然后采用gzip壓縮方式編譯,執(zhí)行make zImage,得到內(nèi)核壓縮鏡像文件zImage并下載到S3C6410運(yùn)行適合本系統(tǒng)的Linux內(nèi)核。

      (2)QTE基本庫(kù)裁剪

      (3)Qt與SQLite數(shù)據(jù)庫(kù)連接

      5 結(jié)論(Conclusion)

      本文提出了一種基于Linux平臺(tái)與QTE庫(kù)的塔機(jī)監(jiān)測(cè)防撞系統(tǒng)GUI設(shè)計(jì)方法,在減少系統(tǒng)體積的同時(shí)提升了系統(tǒng)的響應(yīng)速度,并采用LCD觸摸屏加強(qiáng)了系統(tǒng)的交互能力。實(shí)驗(yàn)證明,該系統(tǒng)能實(shí)時(shí)顯示塔機(jī)各項(xiàng)工作指標(biāo)的功能,并在系統(tǒng)處于危險(xiǎn)運(yùn)行狀態(tài)時(shí)及時(shí)警告駕駛員,將事故發(fā)生率降到最低。后續(xù)的工作將在進(jìn)一步優(yōu)化內(nèi)存管理與防碰撞算法方面展開。

      參考文獻(xiàn)(References)

      [1] 李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2007.

      [2] 韓少云,奚海蛟,諶利.ARM嵌入式系統(tǒng)移植開發(fā)實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2012.

      [3] 周利.用Qt編制Linux中X-windows下的應(yīng)用程序[J].電腦編程技巧與維護(hù),2000(1):17-19.

      [4] Jasmin Blanchette,Mark Summerfield.C++ GUI Programming with Qt4. Second Edition[M].Prentice Hall,2008.

      [5] 徐晨輝.嵌入式Linux內(nèi)核裁剪及移植的研究與實(shí)現(xiàn)[D].上海:東華大學(xué),2009.

      [6] 游燕珍,趙國(guó)峰,徐川.基于Qt/E的嵌入式GUI的研究及其移植[J].微計(jì)算機(jī)信息,2008(14):120-123.

      [7] Grant Allen,Mike Owens[美].楊謙,等,譯.SQLite權(quán)威指南[M].北京:電子工業(yè)出版社,2012.

      作者簡(jiǎn)介:

      盧 揚(yáng)(1990-),男,研究生.研究領(lǐng)域:復(fù)雜系統(tǒng)理論與應(yīng)用.

      章 紅(1969-),女,副教授,碩士生導(dǎo)師. 研究領(lǐng)域:網(wǎng)絡(luò)化控制系統(tǒng)故障診斷與容錯(cuò),群體控制,計(jì)算機(jī)控制系統(tǒng)的分析與設(shè)計(jì)等.endprint

      摘 要:本文針對(duì)塔機(jī)駕駛艙內(nèi)駕駛員視野狹小,導(dǎo)致塔機(jī)碰撞事故多發(fā)的弊病,提出了一個(gè)基于QTE開發(fā)嵌入式系統(tǒng)GUI的解決方案。該系統(tǒng)實(shí)時(shí)監(jiān)測(cè)整個(gè)工地塔機(jī)的運(yùn)行狀態(tài),并直觀地模擬在LCD屏上運(yùn)行,同時(shí)監(jiān)測(cè)異常狀態(tài)的發(fā)生。通過觸屏界面響應(yīng)用戶各項(xiàng)操作,提升了系統(tǒng)的靈活性。經(jīng)過嵌入式Linux內(nèi)核以及QTE基本庫(kù)的裁剪,使系統(tǒng)保證了較低的內(nèi)存占用率以及優(yōu)良的實(shí)時(shí)性。實(shí)驗(yàn)證明,該系統(tǒng)能夠很好地實(shí)現(xiàn)塔機(jī)狀態(tài)與防碰撞監(jiān)測(cè)。

      關(guān)鍵詞:塔機(jī)監(jiān)測(cè);嵌入式Linux;QTE;GUI;實(shí)時(shí)性

      中圖分類號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A

      1 引言(Introduction)

      隨著國(guó)內(nèi)經(jīng)濟(jì)的迅速發(fā)展,中國(guó)建筑業(yè)一直持續(xù)高速增長(zhǎng),與此同時(shí),建筑作業(yè)的密集化導(dǎo)致同一工作區(qū)域往往存在多臺(tái)塔機(jī)同時(shí)作業(yè)。由于駕駛員或地面指揮人員誤判,現(xiàn)場(chǎng)塔機(jī)相互碰撞、倒塔、碰撞周圍障礙物的事故時(shí)有發(fā)生,如何有效地監(jiān)測(cè)塔機(jī)各項(xiàng)運(yùn)行狀態(tài),并提供給駕駛員一個(gè)明確的外部狀態(tài)信息,成為解決問題的關(guān)鍵??紤]到駕駛艙有限的環(huán)境限制,本設(shè)計(jì)采用基于Linux平臺(tái)以及QTE庫(kù)設(shè)計(jì)的嵌入式GUI,其交互界面友好,操作簡(jiǎn)便。

      2 系統(tǒng)方案設(shè)計(jì)(Scheme design)

      (1)硬件平臺(tái)選擇

      ARM處理器在嵌入式領(lǐng)域具有領(lǐng)先的性能/功耗比,并且隨著ARM公司的發(fā)展,該處理器擁有廣泛的第三方支持,使得基于ARM的開發(fā)更為靈活。搭載ARM1176JZF-S內(nèi)核的S3C6410處理器采用64/32位內(nèi)部總線架構(gòu),使得其在32位處理器的功耗上能夠達(dá)到64位處理器的速度。同時(shí)該處理器強(qiáng)大的硬件加速器提供了優(yōu)秀的視頻、音頻與二維圖形的處理速度?;诖?,選擇使用S3C6410作為本系統(tǒng)核心處理器。

      (2)操作系統(tǒng)選擇

      作為實(shí)時(shí)性要求較高的嵌入式系統(tǒng),穩(wěn)定性是對(duì)操作系統(tǒng)的基本要求。而Linux則具有良好的穩(wěn)定性[1],借助Linux優(yōu)秀的跨平臺(tái)能力,可以在PC虛擬機(jī)上搭建Linux平臺(tái)環(huán)境,交叉編譯ARM平臺(tái)上運(yùn)行的程序,提升開發(fā)效率。通過對(duì)Linux內(nèi)核的裁剪,可進(jìn)一步縮小系統(tǒng)體積,減少不必要的資源占用[2]。構(gòu)建最適合塔機(jī)監(jiān)測(cè)界面的系統(tǒng)平臺(tái)。

      (3)嵌入式圖形庫(kù)QTE

      Linux桌面GUI系統(tǒng)一般都基于X Window系統(tǒng),但X Window本身并不是一個(gè)直接的圖形操作界面,它只是作為圖形環(huán)境與UNIX系統(tǒng)內(nèi)核溝通的中間橋梁[3]。而龐大臃腫的X Window并不適合在嵌入式系統(tǒng)中運(yùn)行,因此本系統(tǒng)采用Qt的嵌入式版本QTE圖形庫(kù)。QTE直接取代了X Server及X Library等角色,僅采用Framebuffer作為底層圖形接口,從而大大減少了系統(tǒng)開銷[4]。并由于QTE良好的可移植性,可裁剪的模塊化設(shè)計(jì),使得其十分適合嵌入式系統(tǒng)設(shè)計(jì)。Qt/X11與QTE系統(tǒng)架構(gòu)對(duì)比如圖1所示。

      3 系統(tǒng)設(shè)計(jì)框架(Design framework)

      考慮到嵌入式系統(tǒng)的限制性,本系統(tǒng)內(nèi)部使用輕量級(jí)的SQLite數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)管理,并優(yōu)化了線程間的調(diào)度與防碰撞算法。系統(tǒng)分別對(duì)接收到的WiMi-net無線模塊與傳感器數(shù)據(jù)做分包提取與模數(shù)轉(zhuǎn)換,在得到系統(tǒng)能識(shí)別的數(shù)據(jù)后將用戶輸入信息(本地塔機(jī)高度,前后臂長(zhǎng),坐標(biāo)位置,工地大小,形狀,障礙物信息等)一起存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)將得到的數(shù)據(jù)送入防碰撞算法模塊進(jìn)行分析,并模擬運(yùn)行狀態(tài)顯示到LCD上。

      GUI的設(shè)計(jì)需要考慮系統(tǒng)與駕駛員的接口,主要的交互在于駕駛員對(duì)系統(tǒng)數(shù)據(jù)庫(kù),無線通訊的管理,以及系統(tǒng)反饋給駕駛員塔機(jī)運(yùn)行狀態(tài)的清晰顯示。其中又包括了系統(tǒng)工作狀態(tài)報(bào)告,塔機(jī)正常運(yùn)行報(bào)告,危險(xiǎn)狀態(tài)預(yù)警,界面調(diào)節(jié)功能等。由此設(shè)計(jì)塔機(jī)監(jiān)測(cè)系統(tǒng)用例圖如圖2所示。

      系統(tǒng)主界面如圖3所示,右側(cè)狀態(tài)欄用來提示系統(tǒng)工作狀態(tài)與塔機(jī)危險(xiǎn)狀態(tài)預(yù)警,包括碰撞預(yù)警,異常狀態(tài)預(yù)警等。同時(shí)當(dāng)前塔機(jī)各項(xiàng)運(yùn)行參數(shù)在下方實(shí)時(shí)顯示,方便駕駛員清楚地了解當(dāng)前塔機(jī)運(yùn)行情況。左側(cè)是工作區(qū)域模擬運(yùn)行區(qū),系統(tǒng)允許同時(shí)監(jiān)測(cè)最多16個(gè)塔機(jī),本塔機(jī)為藍(lán)色,其他塔機(jī)為綠色,當(dāng)有大概率碰撞危險(xiǎn)產(chǎn)生時(shí),以紅色間斷閃爍為警示。可以使用滑條縮放該區(qū)域,方便監(jiān)視整個(gè)工地或是單個(gè)塔機(jī),方向鍵控制平移,也可以使用觸摸筆在屏幕上進(jìn)行拖動(dòng)。

      4 系統(tǒng)核心技術(shù)(Key technology)

      (1)Linux內(nèi)核裁剪

      基于Linux-3.12.7版本的內(nèi)核而言,我們不需要也不應(yīng)該將其完整地運(yùn)行到受到資源限制的嵌入式系統(tǒng)中去。根據(jù)系統(tǒng)的實(shí)際需求,我們只需要保留網(wǎng)絡(luò)服務(wù)、各通信口相關(guān)驅(qū)動(dòng)、10.4寸觸屏驅(qū)動(dòng)、UDA1341音頻芯片驅(qū)動(dòng)、顯卡驅(qū)動(dòng)、聲卡驅(qū)動(dòng)以及其他保證系統(tǒng)正常運(yùn)行的后臺(tái)服務(wù)。在虛擬機(jī)中進(jìn)入Linux-3.12.7源碼包,輸入make xconfig進(jìn)入內(nèi)核配置。在選擇相應(yīng)的配置時(shí),有三種選擇方式,Y表示將該功能編譯進(jìn)內(nèi)核;N表示不將該功能編譯進(jìn)內(nèi)核;M表示將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊[5]。

      在Makefile文件中修改硬件平臺(tái)ARCH = arm以及交叉編譯器CROSS_COMPILE = arm-linux。輸入make dep編譯相關(guān)依賴文件,然后采用gzip壓縮方式編譯,執(zhí)行make zImage,得到內(nèi)核壓縮鏡像文件zImage并下載到S3C6410運(yùn)行適合本系統(tǒng)的Linux內(nèi)核。

      (2)QTE基本庫(kù)裁剪

      (3)Qt與SQLite數(shù)據(jù)庫(kù)連接

      5 結(jié)論(Conclusion)

      本文提出了一種基于Linux平臺(tái)與QTE庫(kù)的塔機(jī)監(jiān)測(cè)防撞系統(tǒng)GUI設(shè)計(jì)方法,在減少系統(tǒng)體積的同時(shí)提升了系統(tǒng)的響應(yīng)速度,并采用LCD觸摸屏加強(qiáng)了系統(tǒng)的交互能力。實(shí)驗(yàn)證明,該系統(tǒng)能實(shí)時(shí)顯示塔機(jī)各項(xiàng)工作指標(biāo)的功能,并在系統(tǒng)處于危險(xiǎn)運(yùn)行狀態(tài)時(shí)及時(shí)警告駕駛員,將事故發(fā)生率降到最低。后續(xù)的工作將在進(jìn)一步優(yōu)化內(nèi)存管理與防碰撞算法方面展開。

      參考文獻(xiàn)(References)

      [1] 李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2007.

      [2] 韓少云,奚海蛟,諶利.ARM嵌入式系統(tǒng)移植開發(fā)實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2012.

      [3] 周利.用Qt編制Linux中X-windows下的應(yīng)用程序[J].電腦編程技巧與維護(hù),2000(1):17-19.

      [4] Jasmin Blanchette,Mark Summerfield.C++ GUI Programming with Qt4. Second Edition[M].Prentice Hall,2008.

      [5] 徐晨輝.嵌入式Linux內(nèi)核裁剪及移植的研究與實(shí)現(xiàn)[D].上海:東華大學(xué),2009.

      [6] 游燕珍,趙國(guó)峰,徐川.基于Qt/E的嵌入式GUI的研究及其移植[J].微計(jì)算機(jī)信息,2008(14):120-123.

      [7] Grant Allen,Mike Owens[美].楊謙,等,譯.SQLite權(quán)威指南[M].北京:電子工業(yè)出版社,2012.

      作者簡(jiǎn)介:

      盧 揚(yáng)(1990-),男,研究生.研究領(lǐng)域:復(fù)雜系統(tǒng)理論與應(yīng)用.

      章 紅(1969-),女,副教授,碩士生導(dǎo)師. 研究領(lǐng)域:網(wǎng)絡(luò)化控制系統(tǒng)故障診斷與容錯(cuò),群體控制,計(jì)算機(jī)控制系統(tǒng)的分析與設(shè)計(jì)等.endprint

      摘 要:本文針對(duì)塔機(jī)駕駛艙內(nèi)駕駛員視野狹小,導(dǎo)致塔機(jī)碰撞事故多發(fā)的弊病,提出了一個(gè)基于QTE開發(fā)嵌入式系統(tǒng)GUI的解決方案。該系統(tǒng)實(shí)時(shí)監(jiān)測(cè)整個(gè)工地塔機(jī)的運(yùn)行狀態(tài),并直觀地模擬在LCD屏上運(yùn)行,同時(shí)監(jiān)測(cè)異常狀態(tài)的發(fā)生。通過觸屏界面響應(yīng)用戶各項(xiàng)操作,提升了系統(tǒng)的靈活性。經(jīng)過嵌入式Linux內(nèi)核以及QTE基本庫(kù)的裁剪,使系統(tǒng)保證了較低的內(nèi)存占用率以及優(yōu)良的實(shí)時(shí)性。實(shí)驗(yàn)證明,該系統(tǒng)能夠很好地實(shí)現(xiàn)塔機(jī)狀態(tài)與防碰撞監(jiān)測(cè)。

      關(guān)鍵詞:塔機(jī)監(jiān)測(cè);嵌入式Linux;QTE;GUI;實(shí)時(shí)性

      中圖分類號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A

      1 引言(Introduction)

      隨著國(guó)內(nèi)經(jīng)濟(jì)的迅速發(fā)展,中國(guó)建筑業(yè)一直持續(xù)高速增長(zhǎng),與此同時(shí),建筑作業(yè)的密集化導(dǎo)致同一工作區(qū)域往往存在多臺(tái)塔機(jī)同時(shí)作業(yè)。由于駕駛員或地面指揮人員誤判,現(xiàn)場(chǎng)塔機(jī)相互碰撞、倒塔、碰撞周圍障礙物的事故時(shí)有發(fā)生,如何有效地監(jiān)測(cè)塔機(jī)各項(xiàng)運(yùn)行狀態(tài),并提供給駕駛員一個(gè)明確的外部狀態(tài)信息,成為解決問題的關(guān)鍵??紤]到駕駛艙有限的環(huán)境限制,本設(shè)計(jì)采用基于Linux平臺(tái)以及QTE庫(kù)設(shè)計(jì)的嵌入式GUI,其交互界面友好,操作簡(jiǎn)便。

      2 系統(tǒng)方案設(shè)計(jì)(Scheme design)

      (1)硬件平臺(tái)選擇

      ARM處理器在嵌入式領(lǐng)域具有領(lǐng)先的性能/功耗比,并且隨著ARM公司的發(fā)展,該處理器擁有廣泛的第三方支持,使得基于ARM的開發(fā)更為靈活。搭載ARM1176JZF-S內(nèi)核的S3C6410處理器采用64/32位內(nèi)部總線架構(gòu),使得其在32位處理器的功耗上能夠達(dá)到64位處理器的速度。同時(shí)該處理器強(qiáng)大的硬件加速器提供了優(yōu)秀的視頻、音頻與二維圖形的處理速度。基于此,選擇使用S3C6410作為本系統(tǒng)核心處理器。

      (2)操作系統(tǒng)選擇

      作為實(shí)時(shí)性要求較高的嵌入式系統(tǒng),穩(wěn)定性是對(duì)操作系統(tǒng)的基本要求。而Linux則具有良好的穩(wěn)定性[1],借助Linux優(yōu)秀的跨平臺(tái)能力,可以在PC虛擬機(jī)上搭建Linux平臺(tái)環(huán)境,交叉編譯ARM平臺(tái)上運(yùn)行的程序,提升開發(fā)效率。通過對(duì)Linux內(nèi)核的裁剪,可進(jìn)一步縮小系統(tǒng)體積,減少不必要的資源占用[2]。構(gòu)建最適合塔機(jī)監(jiān)測(cè)界面的系統(tǒng)平臺(tái)。

      (3)嵌入式圖形庫(kù)QTE

      Linux桌面GUI系統(tǒng)一般都基于X Window系統(tǒng),但X Window本身并不是一個(gè)直接的圖形操作界面,它只是作為圖形環(huán)境與UNIX系統(tǒng)內(nèi)核溝通的中間橋梁[3]。而龐大臃腫的X Window并不適合在嵌入式系統(tǒng)中運(yùn)行,因此本系統(tǒng)采用Qt的嵌入式版本QTE圖形庫(kù)。QTE直接取代了X Server及X Library等角色,僅采用Framebuffer作為底層圖形接口,從而大大減少了系統(tǒng)開銷[4]。并由于QTE良好的可移植性,可裁剪的模塊化設(shè)計(jì),使得其十分適合嵌入式系統(tǒng)設(shè)計(jì)。Qt/X11與QTE系統(tǒng)架構(gòu)對(duì)比如圖1所示。

      3 系統(tǒng)設(shè)計(jì)框架(Design framework)

      考慮到嵌入式系統(tǒng)的限制性,本系統(tǒng)內(nèi)部使用輕量級(jí)的SQLite數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)管理,并優(yōu)化了線程間的調(diào)度與防碰撞算法。系統(tǒng)分別對(duì)接收到的WiMi-net無線模塊與傳感器數(shù)據(jù)做分包提取與模數(shù)轉(zhuǎn)換,在得到系統(tǒng)能識(shí)別的數(shù)據(jù)后將用戶輸入信息(本地塔機(jī)高度,前后臂長(zhǎng),坐標(biāo)位置,工地大小,形狀,障礙物信息等)一起存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)將得到的數(shù)據(jù)送入防碰撞算法模塊進(jìn)行分析,并模擬運(yùn)行狀態(tài)顯示到LCD上。

      GUI的設(shè)計(jì)需要考慮系統(tǒng)與駕駛員的接口,主要的交互在于駕駛員對(duì)系統(tǒng)數(shù)據(jù)庫(kù),無線通訊的管理,以及系統(tǒng)反饋給駕駛員塔機(jī)運(yùn)行狀態(tài)的清晰顯示。其中又包括了系統(tǒng)工作狀態(tài)報(bào)告,塔機(jī)正常運(yùn)行報(bào)告,危險(xiǎn)狀態(tài)預(yù)警,界面調(diào)節(jié)功能等。由此設(shè)計(jì)塔機(jī)監(jiān)測(cè)系統(tǒng)用例圖如圖2所示。

      系統(tǒng)主界面如圖3所示,右側(cè)狀態(tài)欄用來提示系統(tǒng)工作狀態(tài)與塔機(jī)危險(xiǎn)狀態(tài)預(yù)警,包括碰撞預(yù)警,異常狀態(tài)預(yù)警等。同時(shí)當(dāng)前塔機(jī)各項(xiàng)運(yùn)行參數(shù)在下方實(shí)時(shí)顯示,方便駕駛員清楚地了解當(dāng)前塔機(jī)運(yùn)行情況。左側(cè)是工作區(qū)域模擬運(yùn)行區(qū),系統(tǒng)允許同時(shí)監(jiān)測(cè)最多16個(gè)塔機(jī),本塔機(jī)為藍(lán)色,其他塔機(jī)為綠色,當(dāng)有大概率碰撞危險(xiǎn)產(chǎn)生時(shí),以紅色間斷閃爍為警示。可以使用滑條縮放該區(qū)域,方便監(jiān)視整個(gè)工地或是單個(gè)塔機(jī),方向鍵控制平移,也可以使用觸摸筆在屏幕上進(jìn)行拖動(dòng)。

      4 系統(tǒng)核心技術(shù)(Key technology)

      (1)Linux內(nèi)核裁剪

      基于Linux-3.12.7版本的內(nèi)核而言,我們不需要也不應(yīng)該將其完整地運(yùn)行到受到資源限制的嵌入式系統(tǒng)中去。根據(jù)系統(tǒng)的實(shí)際需求,我們只需要保留網(wǎng)絡(luò)服務(wù)、各通信口相關(guān)驅(qū)動(dòng)、10.4寸觸屏驅(qū)動(dòng)、UDA1341音頻芯片驅(qū)動(dòng)、顯卡驅(qū)動(dòng)、聲卡驅(qū)動(dòng)以及其他保證系統(tǒng)正常運(yùn)行的后臺(tái)服務(wù)。在虛擬機(jī)中進(jìn)入Linux-3.12.7源碼包,輸入make xconfig進(jìn)入內(nèi)核配置。在選擇相應(yīng)的配置時(shí),有三種選擇方式,Y表示將該功能編譯進(jìn)內(nèi)核;N表示不將該功能編譯進(jìn)內(nèi)核;M表示將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊[5]。

      在Makefile文件中修改硬件平臺(tái)ARCH = arm以及交叉編譯器CROSS_COMPILE = arm-linux。輸入make dep編譯相關(guān)依賴文件,然后采用gzip壓縮方式編譯,執(zhí)行make zImage,得到內(nèi)核壓縮鏡像文件zImage并下載到S3C6410運(yùn)行適合本系統(tǒng)的Linux內(nèi)核。

      (2)QTE基本庫(kù)裁剪

      (3)Qt與SQLite數(shù)據(jù)庫(kù)連接

      5 結(jié)論(Conclusion)

      本文提出了一種基于Linux平臺(tái)與QTE庫(kù)的塔機(jī)監(jiān)測(cè)防撞系統(tǒng)GUI設(shè)計(jì)方法,在減少系統(tǒng)體積的同時(shí)提升了系統(tǒng)的響應(yīng)速度,并采用LCD觸摸屏加強(qiáng)了系統(tǒng)的交互能力。實(shí)驗(yàn)證明,該系統(tǒng)能實(shí)時(shí)顯示塔機(jī)各項(xiàng)工作指標(biāo)的功能,并在系統(tǒng)處于危險(xiǎn)運(yùn)行狀態(tài)時(shí)及時(shí)警告駕駛員,將事故發(fā)生率降到最低。后續(xù)的工作將在進(jìn)一步優(yōu)化內(nèi)存管理與防碰撞算法方面展開。

      參考文獻(xiàn)(References)

      [1] 李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2007.

      [2] 韓少云,奚海蛟,諶利.ARM嵌入式系統(tǒng)移植開發(fā)實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2012.

      [3] 周利.用Qt編制Linux中X-windows下的應(yīng)用程序[J].電腦編程技巧與維護(hù),2000(1):17-19.

      [4] Jasmin Blanchette,Mark Summerfield.C++ GUI Programming with Qt4. Second Edition[M].Prentice Hall,2008.

      [5] 徐晨輝.嵌入式Linux內(nèi)核裁剪及移植的研究與實(shí)現(xiàn)[D].上海:東華大學(xué),2009.

      [6] 游燕珍,趙國(guó)峰,徐川.基于Qt/E的嵌入式GUI的研究及其移植[J].微計(jì)算機(jī)信息,2008(14):120-123.

      [7] Grant Allen,Mike Owens[美].楊謙,等,譯.SQLite權(quán)威指南[M].北京:電子工業(yè)出版社,2012.

      作者簡(jiǎn)介:

      盧 揚(yáng)(1990-),男,研究生.研究領(lǐng)域:復(fù)雜系統(tǒng)理論與應(yīng)用.

      章 紅(1969-),女,副教授,碩士生導(dǎo)師. 研究領(lǐng)域:網(wǎng)絡(luò)化控制系統(tǒng)故障診斷與容錯(cuò),群體控制,計(jì)算機(jī)控制系統(tǒng)的分析與設(shè)計(jì)等.endprint

      猜你喜歡
      實(shí)時(shí)性
      基于規(guī)則實(shí)時(shí)性的端云動(dòng)態(tài)分配方法研究
      基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時(shí)性仿真
      航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對(duì)比
      一種滿足實(shí)時(shí)性需求的測(cè)發(fā)控軟件改進(jìn)技術(shù)
      航天控制(2016年6期)2016-07-20 10:21:36
      網(wǎng)絡(luò)演算理論下的工業(yè)以太網(wǎng)的實(shí)時(shí)性分析
      一種車載Profibus總線系統(tǒng)的實(shí)時(shí)性分析
      公安县| 灵台县| 肥乡县| 乌兰察布市| 鹤庆县| 晋州市| 和林格尔县| 逊克县| 卢氏县| 湘潭市| 尚志市| 延吉市| 清水河县| 铁力市| 陵水| 株洲市| 绥棱县| 柘城县| 三原县| 瑞昌市| 丰宁| 资中县| 萝北县| 孟州市| 库尔勒市| 青州市| 江油市| 西贡区| 凤城市| 嫩江县| 卓资县| 大关县| 双城市| 临漳县| 澜沧| 怀仁县| 乌拉特后旗| 广西| 阳东县| 佳木斯市| 青铜峡市|