盧揚 章紅
摘 要:本文針對塔機駕駛艙內(nèi)駕駛員視野狹小,導致塔機碰撞事故多發(fā)的弊病,提出了一個基于QTE開發(fā)嵌入式系統(tǒng)GUI的解決方案。該系統(tǒng)實時監(jiān)測整個工地塔機的運行狀態(tài),并直觀地模擬在LCD屏上運行,同時監(jiān)測異常狀態(tài)的發(fā)生。通過觸屏界面響應用戶各項操作,提升了系統(tǒng)的靈活性。經(jīng)過嵌入式Linux內(nèi)核以及QTE基本庫的裁剪,使系統(tǒng)保證了較低的內(nèi)存占用率以及優(yōu)良的實時性。實驗證明,該系統(tǒng)能夠很好地實現(xiàn)塔機狀態(tài)與防碰撞監(jiān)測。
關(guān)鍵詞:塔機監(jiān)測;嵌入式Linux;QTE;GUI;實時性
中圖分類號:TP368.1 文獻標識碼:A
1 引言(Introduction)
隨著國內(nèi)經(jīng)濟的迅速發(fā)展,中國建筑業(yè)一直持續(xù)高速增長,與此同時,建筑作業(yè)的密集化導致同一工作區(qū)域往往存在多臺塔機同時作業(yè)。由于駕駛員或地面指揮人員誤判,現(xiàn)場塔機相互碰撞、倒塔、碰撞周圍障礙物的事故時有發(fā)生,如何有效地監(jiān)測塔機各項運行狀態(tài),并提供給駕駛員一個明確的外部狀態(tài)信息,成為解決問題的關(guān)鍵??紤]到駕駛艙有限的環(huán)境限制,本設(shè)計采用基于Linux平臺以及QTE庫設(shè)計的嵌入式GUI,其交互界面友好,操作簡便。
2 系統(tǒng)方案設(shè)計(Scheme design)
(1)硬件平臺選擇
ARM處理器在嵌入式領(lǐng)域具有領(lǐng)先的性能/功耗比,并且隨著ARM公司的發(fā)展,該處理器擁有廣泛的第三方支持,使得基于ARM的開發(fā)更為靈活。搭載ARM1176JZF-S內(nèi)核的S3C6410處理器采用64/32位內(nèi)部總線架構(gòu),使得其在32位處理器的功耗上能夠達到64位處理器的速度。同時該處理器強大的硬件加速器提供了優(yōu)秀的視頻、音頻與二維圖形的處理速度?;诖耍x擇使用S3C6410作為本系統(tǒng)核心處理器。
(2)操作系統(tǒng)選擇
作為實時性要求較高的嵌入式系統(tǒng),穩(wěn)定性是對操作系統(tǒng)的基本要求。而Linux則具有良好的穩(wěn)定性[1],借助Linux優(yōu)秀的跨平臺能力,可以在PC虛擬機上搭建Linux平臺環(huán)境,交叉編譯ARM平臺上運行的程序,提升開發(fā)效率。通過對Linux內(nèi)核的裁剪,可進一步縮小系統(tǒng)體積,減少不必要的資源占用[2]。構(gòu)建最適合塔機監(jiān)測界面的系統(tǒng)平臺。
(3)嵌入式圖形庫QTE
Linux桌面GUI系統(tǒng)一般都基于X Window系統(tǒng),但X Window本身并不是一個直接的圖形操作界面,它只是作為圖形環(huán)境與UNIX系統(tǒng)內(nèi)核溝通的中間橋梁[3]。而龐大臃腫的X Window并不適合在嵌入式系統(tǒng)中運行,因此本系統(tǒng)采用Qt的嵌入式版本QTE圖形庫。QTE直接取代了X Server及X Library等角色,僅采用Framebuffer作為底層圖形接口,從而大大減少了系統(tǒng)開銷[4]。并由于QTE良好的可移植性,可裁剪的模塊化設(shè)計,使得其十分適合嵌入式系統(tǒng)設(shè)計。Qt/X11與QTE系統(tǒng)架構(gòu)對比如圖1所示。
3 系統(tǒng)設(shè)計框架(Design framework)
考慮到嵌入式系統(tǒng)的限制性,本系統(tǒng)內(nèi)部使用輕量級的SQLite數(shù)據(jù)庫進行數(shù)據(jù)管理,并優(yōu)化了線程間的調(diào)度與防碰撞算法。系統(tǒng)分別對接收到的WiMi-net無線模塊與傳感器數(shù)據(jù)做分包提取與模數(shù)轉(zhuǎn)換,在得到系統(tǒng)能識別的數(shù)據(jù)后將用戶輸入信息(本地塔機高度,前后臂長,坐標位置,工地大小,形狀,障礙物信息等)一起存入數(shù)據(jù)庫,數(shù)據(jù)庫將得到的數(shù)據(jù)送入防碰撞算法模塊進行分析,并模擬運行狀態(tài)顯示到LCD上。
GUI的設(shè)計需要考慮系統(tǒng)與駕駛員的接口,主要的交互在于駕駛員對系統(tǒng)數(shù)據(jù)庫,無線通訊的管理,以及系統(tǒng)反饋給駕駛員塔機運行狀態(tài)的清晰顯示。其中又包括了系統(tǒng)工作狀態(tài)報告,塔機正常運行報告,危險狀態(tài)預警,界面調(diào)節(jié)功能等。由此設(shè)計塔機監(jiān)測系統(tǒng)用例圖如圖2所示。
系統(tǒng)主界面如圖3所示,右側(cè)狀態(tài)欄用來提示系統(tǒng)工作狀態(tài)與塔機危險狀態(tài)預警,包括碰撞預警,異常狀態(tài)預警等。同時當前塔機各項運行參數(shù)在下方實時顯示,方便駕駛員清楚地了解當前塔機運行情況。左側(cè)是工作區(qū)域模擬運行區(qū),系統(tǒng)允許同時監(jiān)測最多16個塔機,本塔機為藍色,其他塔機為綠色,當有大概率碰撞危險產(chǎn)生時,以紅色間斷閃爍為警示。可以使用滑條縮放該區(qū)域,方便監(jiān)視整個工地或是單個塔機,方向鍵控制平移,也可以使用觸摸筆在屏幕上進行拖動。
4 系統(tǒng)核心技術(shù)(Key technology)
(1)Linux內(nèi)核裁剪
基于Linux-3.12.7版本的內(nèi)核而言,我們不需要也不應該將其完整地運行到受到資源限制的嵌入式系統(tǒng)中去。根據(jù)系統(tǒng)的實際需求,我們只需要保留網(wǎng)絡(luò)服務(wù)、各通信口相關(guān)驅(qū)動、10.4寸觸屏驅(qū)動、UDA1341音頻芯片驅(qū)動、顯卡驅(qū)動、聲卡驅(qū)動以及其他保證系統(tǒng)正常運行的后臺服務(wù)。在虛擬機中進入Linux-3.12.7源碼包,輸入make xconfig進入內(nèi)核配置。在選擇相應的配置時,有三種選擇方式,Y表示將該功能編譯進內(nèi)核;N表示不將該功能編譯進內(nèi)核;M表示將該功能編譯成可以在需要時動態(tài)插入到內(nèi)核中的模塊[5]。
在Makefile文件中修改硬件平臺ARCH = arm以及交叉編譯器CROSS_COMPILE = arm-linux。輸入make dep編譯相關(guān)依賴文件,然后采用gzip壓縮方式編譯,執(zhí)行make zImage,得到內(nèi)核壓縮鏡像文件zImage并下載到S3C6410運行適合本系統(tǒng)的Linux內(nèi)核。
(2)QTE基本庫裁剪
(3)Qt與SQLite數(shù)據(jù)庫連接
5 結(jié)論(Conclusion)
本文提出了一種基于Linux平臺與QTE庫的塔機監(jiān)測防撞系統(tǒng)GUI設(shè)計方法,在減少系統(tǒng)體積的同時提升了系統(tǒng)的響應速度,并采用LCD觸摸屏加強了系統(tǒng)的交互能力。實驗證明,該系統(tǒng)能實時顯示塔機各項工作指標的功能,并在系統(tǒng)處于危險運行狀態(tài)時及時警告駕駛員,將事故發(fā)生率降到最低。后續(xù)的工作將在進一步優(yōu)化內(nèi)存管理與防碰撞算法方面展開。
參考文獻(References)
[1] 李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)[M].北京:清華大學出版社,2007.
[2] 韓少云,奚海蛟,諶利.ARM嵌入式系統(tǒng)移植開發(fā)實戰(zhàn)[M].北京:北京航空航天大學出版社,2012.
[3] 周利.用Qt編制Linux中X-windows下的應用程序[J].電腦編程技巧與維護,2000(1):17-19.
[4] Jasmin Blanchette,Mark Summerfield.C++ GUI Programming with Qt4. Second Edition[M].Prentice Hall,2008.
[5] 徐晨輝.嵌入式Linux內(nèi)核裁剪及移植的研究與實現(xiàn)[D].上海:東華大學,2009.
[6] 游燕珍,趙國峰,徐川.基于Qt/E的嵌入式GUI的研究及其移植[J].微計算機信息,2008(14):120-123.
[7] Grant Allen,Mike Owens[美].楊謙,等,譯.SQLite權(quán)威指南[M].北京:電子工業(yè)出版社,2012.
作者簡介:
盧 揚(1990-),男,研究生.研究領(lǐng)域:復雜系統(tǒng)理論與應用.
章 紅(1969-),女,副教授,碩士生導師. 研究領(lǐng)域:網(wǎng)絡(luò)化控制系統(tǒng)故障診斷與容錯,群體控制,計算機控制系統(tǒng)的分析與設(shè)計等.endprint
摘 要:本文針對塔機駕駛艙內(nèi)駕駛員視野狹小,導致塔機碰撞事故多發(fā)的弊病,提出了一個基于QTE開發(fā)嵌入式系統(tǒng)GUI的解決方案。該系統(tǒng)實時監(jiān)測整個工地塔機的運行狀態(tài),并直觀地模擬在LCD屏上運行,同時監(jiān)測異常狀態(tài)的發(fā)生。通過觸屏界面響應用戶各項操作,提升了系統(tǒng)的靈活性。經(jīng)過嵌入式Linux內(nèi)核以及QTE基本庫的裁剪,使系統(tǒng)保證了較低的內(nèi)存占用率以及優(yōu)良的實時性。實驗證明,該系統(tǒng)能夠很好地實現(xiàn)塔機狀態(tài)與防碰撞監(jiān)測。
關(guān)鍵詞:塔機監(jiān)測;嵌入式Linux;QTE;GUI;實時性
中圖分類號:TP368.1 文獻標識碼:A
1 引言(Introduction)
隨著國內(nèi)經(jīng)濟的迅速發(fā)展,中國建筑業(yè)一直持續(xù)高速增長,與此同時,建筑作業(yè)的密集化導致同一工作區(qū)域往往存在多臺塔機同時作業(yè)。由于駕駛員或地面指揮人員誤判,現(xiàn)場塔機相互碰撞、倒塔、碰撞周圍障礙物的事故時有發(fā)生,如何有效地監(jiān)測塔機各項運行狀態(tài),并提供給駕駛員一個明確的外部狀態(tài)信息,成為解決問題的關(guān)鍵??紤]到駕駛艙有限的環(huán)境限制,本設(shè)計采用基于Linux平臺以及QTE庫設(shè)計的嵌入式GUI,其交互界面友好,操作簡便。
2 系統(tǒng)方案設(shè)計(Scheme design)
(1)硬件平臺選擇
ARM處理器在嵌入式領(lǐng)域具有領(lǐng)先的性能/功耗比,并且隨著ARM公司的發(fā)展,該處理器擁有廣泛的第三方支持,使得基于ARM的開發(fā)更為靈活。搭載ARM1176JZF-S內(nèi)核的S3C6410處理器采用64/32位內(nèi)部總線架構(gòu),使得其在32位處理器的功耗上能夠達到64位處理器的速度。同時該處理器強大的硬件加速器提供了優(yōu)秀的視頻、音頻與二維圖形的處理速度?;诖?,選擇使用S3C6410作為本系統(tǒng)核心處理器。
(2)操作系統(tǒng)選擇
作為實時性要求較高的嵌入式系統(tǒng),穩(wěn)定性是對操作系統(tǒng)的基本要求。而Linux則具有良好的穩(wěn)定性[1],借助Linux優(yōu)秀的跨平臺能力,可以在PC虛擬機上搭建Linux平臺環(huán)境,交叉編譯ARM平臺上運行的程序,提升開發(fā)效率。通過對Linux內(nèi)核的裁剪,可進一步縮小系統(tǒng)體積,減少不必要的資源占用[2]。構(gòu)建最適合塔機監(jiān)測界面的系統(tǒng)平臺。
(3)嵌入式圖形庫QTE
Linux桌面GUI系統(tǒng)一般都基于X Window系統(tǒng),但X Window本身并不是一個直接的圖形操作界面,它只是作為圖形環(huán)境與UNIX系統(tǒng)內(nèi)核溝通的中間橋梁[3]。而龐大臃腫的X Window并不適合在嵌入式系統(tǒng)中運行,因此本系統(tǒng)采用Qt的嵌入式版本QTE圖形庫。QTE直接取代了X Server及X Library等角色,僅采用Framebuffer作為底層圖形接口,從而大大減少了系統(tǒng)開銷[4]。并由于QTE良好的可移植性,可裁剪的模塊化設(shè)計,使得其十分適合嵌入式系統(tǒng)設(shè)計。Qt/X11與QTE系統(tǒng)架構(gòu)對比如圖1所示。
3 系統(tǒng)設(shè)計框架(Design framework)
考慮到嵌入式系統(tǒng)的限制性,本系統(tǒng)內(nèi)部使用輕量級的SQLite數(shù)據(jù)庫進行數(shù)據(jù)管理,并優(yōu)化了線程間的調(diào)度與防碰撞算法。系統(tǒng)分別對接收到的WiMi-net無線模塊與傳感器數(shù)據(jù)做分包提取與模數(shù)轉(zhuǎn)換,在得到系統(tǒng)能識別的數(shù)據(jù)后將用戶輸入信息(本地塔機高度,前后臂長,坐標位置,工地大小,形狀,障礙物信息等)一起存入數(shù)據(jù)庫,數(shù)據(jù)庫將得到的數(shù)據(jù)送入防碰撞算法模塊進行分析,并模擬運行狀態(tài)顯示到LCD上。
GUI的設(shè)計需要考慮系統(tǒng)與駕駛員的接口,主要的交互在于駕駛員對系統(tǒng)數(shù)據(jù)庫,無線通訊的管理,以及系統(tǒng)反饋給駕駛員塔機運行狀態(tài)的清晰顯示。其中又包括了系統(tǒng)工作狀態(tài)報告,塔機正常運行報告,危險狀態(tài)預警,界面調(diào)節(jié)功能等。由此設(shè)計塔機監(jiān)測系統(tǒng)用例圖如圖2所示。
系統(tǒng)主界面如圖3所示,右側(cè)狀態(tài)欄用來提示系統(tǒng)工作狀態(tài)與塔機危險狀態(tài)預警,包括碰撞預警,異常狀態(tài)預警等。同時當前塔機各項運行參數(shù)在下方實時顯示,方便駕駛員清楚地了解當前塔機運行情況。左側(cè)是工作區(qū)域模擬運行區(qū),系統(tǒng)允許同時監(jiān)測最多16個塔機,本塔機為藍色,其他塔機為綠色,當有大概率碰撞危險產(chǎn)生時,以紅色間斷閃爍為警示??梢允褂没瑮l縮放該區(qū)域,方便監(jiān)視整個工地或是單個塔機,方向鍵控制平移,也可以使用觸摸筆在屏幕上進行拖動。
4 系統(tǒng)核心技術(shù)(Key technology)
(1)Linux內(nèi)核裁剪
基于Linux-3.12.7版本的內(nèi)核而言,我們不需要也不應該將其完整地運行到受到資源限制的嵌入式系統(tǒng)中去。根據(jù)系統(tǒng)的實際需求,我們只需要保留網(wǎng)絡(luò)服務(wù)、各通信口相關(guān)驅(qū)動、10.4寸觸屏驅(qū)動、UDA1341音頻芯片驅(qū)動、顯卡驅(qū)動、聲卡驅(qū)動以及其他保證系統(tǒng)正常運行的后臺服務(wù)。在虛擬機中進入Linux-3.12.7源碼包,輸入make xconfig進入內(nèi)核配置。在選擇相應的配置時,有三種選擇方式,Y表示將該功能編譯進內(nèi)核;N表示不將該功能編譯進內(nèi)核;M表示將該功能編譯成可以在需要時動態(tài)插入到內(nèi)核中的模塊[5]。
在Makefile文件中修改硬件平臺ARCH = arm以及交叉編譯器CROSS_COMPILE = arm-linux。輸入make dep編譯相關(guān)依賴文件,然后采用gzip壓縮方式編譯,執(zhí)行make zImage,得到內(nèi)核壓縮鏡像文件zImage并下載到S3C6410運行適合本系統(tǒng)的Linux內(nèi)核。
(2)QTE基本庫裁剪
(3)Qt與SQLite數(shù)據(jù)庫連接
5 結(jié)論(Conclusion)
本文提出了一種基于Linux平臺與QTE庫的塔機監(jiān)測防撞系統(tǒng)GUI設(shè)計方法,在減少系統(tǒng)體積的同時提升了系統(tǒng)的響應速度,并采用LCD觸摸屏加強了系統(tǒng)的交互能力。實驗證明,該系統(tǒng)能實時顯示塔機各項工作指標的功能,并在系統(tǒng)處于危險運行狀態(tài)時及時警告駕駛員,將事故發(fā)生率降到最低。后續(xù)的工作將在進一步優(yōu)化內(nèi)存管理與防碰撞算法方面展開。
參考文獻(References)
[1] 李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)[M].北京:清華大學出版社,2007.
[2] 韓少云,奚海蛟,諶利.ARM嵌入式系統(tǒng)移植開發(fā)實戰(zhàn)[M].北京:北京航空航天大學出版社,2012.
[3] 周利.用Qt編制Linux中X-windows下的應用程序[J].電腦編程技巧與維護,2000(1):17-19.
[4] Jasmin Blanchette,Mark Summerfield.C++ GUI Programming with Qt4. Second Edition[M].Prentice Hall,2008.
[5] 徐晨輝.嵌入式Linux內(nèi)核裁剪及移植的研究與實現(xiàn)[D].上海:東華大學,2009.
[6] 游燕珍,趙國峰,徐川.基于Qt/E的嵌入式GUI的研究及其移植[J].微計算機信息,2008(14):120-123.
[7] Grant Allen,Mike Owens[美].楊謙,等,譯.SQLite權(quán)威指南[M].北京:電子工業(yè)出版社,2012.
作者簡介:
盧 揚(1990-),男,研究生.研究領(lǐng)域:復雜系統(tǒng)理論與應用.
章 紅(1969-),女,副教授,碩士生導師. 研究領(lǐng)域:網(wǎng)絡(luò)化控制系統(tǒng)故障診斷與容錯,群體控制,計算機控制系統(tǒng)的分析與設(shè)計等.endprint
摘 要:本文針對塔機駕駛艙內(nèi)駕駛員視野狹小,導致塔機碰撞事故多發(fā)的弊病,提出了一個基于QTE開發(fā)嵌入式系統(tǒng)GUI的解決方案。該系統(tǒng)實時監(jiān)測整個工地塔機的運行狀態(tài),并直觀地模擬在LCD屏上運行,同時監(jiān)測異常狀態(tài)的發(fā)生。通過觸屏界面響應用戶各項操作,提升了系統(tǒng)的靈活性。經(jīng)過嵌入式Linux內(nèi)核以及QTE基本庫的裁剪,使系統(tǒng)保證了較低的內(nèi)存占用率以及優(yōu)良的實時性。實驗證明,該系統(tǒng)能夠很好地實現(xiàn)塔機狀態(tài)與防碰撞監(jiān)測。
關(guān)鍵詞:塔機監(jiān)測;嵌入式Linux;QTE;GUI;實時性
中圖分類號:TP368.1 文獻標識碼:A
1 引言(Introduction)
隨著國內(nèi)經(jīng)濟的迅速發(fā)展,中國建筑業(yè)一直持續(xù)高速增長,與此同時,建筑作業(yè)的密集化導致同一工作區(qū)域往往存在多臺塔機同時作業(yè)。由于駕駛員或地面指揮人員誤判,現(xiàn)場塔機相互碰撞、倒塔、碰撞周圍障礙物的事故時有發(fā)生,如何有效地監(jiān)測塔機各項運行狀態(tài),并提供給駕駛員一個明確的外部狀態(tài)信息,成為解決問題的關(guān)鍵??紤]到駕駛艙有限的環(huán)境限制,本設(shè)計采用基于Linux平臺以及QTE庫設(shè)計的嵌入式GUI,其交互界面友好,操作簡便。
2 系統(tǒng)方案設(shè)計(Scheme design)
(1)硬件平臺選擇
ARM處理器在嵌入式領(lǐng)域具有領(lǐng)先的性能/功耗比,并且隨著ARM公司的發(fā)展,該處理器擁有廣泛的第三方支持,使得基于ARM的開發(fā)更為靈活。搭載ARM1176JZF-S內(nèi)核的S3C6410處理器采用64/32位內(nèi)部總線架構(gòu),使得其在32位處理器的功耗上能夠達到64位處理器的速度。同時該處理器強大的硬件加速器提供了優(yōu)秀的視頻、音頻與二維圖形的處理速度?;诖?,選擇使用S3C6410作為本系統(tǒng)核心處理器。
(2)操作系統(tǒng)選擇
作為實時性要求較高的嵌入式系統(tǒng),穩(wěn)定性是對操作系統(tǒng)的基本要求。而Linux則具有良好的穩(wěn)定性[1],借助Linux優(yōu)秀的跨平臺能力,可以在PC虛擬機上搭建Linux平臺環(huán)境,交叉編譯ARM平臺上運行的程序,提升開發(fā)效率。通過對Linux內(nèi)核的裁剪,可進一步縮小系統(tǒng)體積,減少不必要的資源占用[2]。構(gòu)建最適合塔機監(jiān)測界面的系統(tǒng)平臺。
(3)嵌入式圖形庫QTE
Linux桌面GUI系統(tǒng)一般都基于X Window系統(tǒng),但X Window本身并不是一個直接的圖形操作界面,它只是作為圖形環(huán)境與UNIX系統(tǒng)內(nèi)核溝通的中間橋梁[3]。而龐大臃腫的X Window并不適合在嵌入式系統(tǒng)中運行,因此本系統(tǒng)采用Qt的嵌入式版本QTE圖形庫。QTE直接取代了X Server及X Library等角色,僅采用Framebuffer作為底層圖形接口,從而大大減少了系統(tǒng)開銷[4]。并由于QTE良好的可移植性,可裁剪的模塊化設(shè)計,使得其十分適合嵌入式系統(tǒng)設(shè)計。Qt/X11與QTE系統(tǒng)架構(gòu)對比如圖1所示。
3 系統(tǒng)設(shè)計框架(Design framework)
考慮到嵌入式系統(tǒng)的限制性,本系統(tǒng)內(nèi)部使用輕量級的SQLite數(shù)據(jù)庫進行數(shù)據(jù)管理,并優(yōu)化了線程間的調(diào)度與防碰撞算法。系統(tǒng)分別對接收到的WiMi-net無線模塊與傳感器數(shù)據(jù)做分包提取與模數(shù)轉(zhuǎn)換,在得到系統(tǒng)能識別的數(shù)據(jù)后將用戶輸入信息(本地塔機高度,前后臂長,坐標位置,工地大小,形狀,障礙物信息等)一起存入數(shù)據(jù)庫,數(shù)據(jù)庫將得到的數(shù)據(jù)送入防碰撞算法模塊進行分析,并模擬運行狀態(tài)顯示到LCD上。
GUI的設(shè)計需要考慮系統(tǒng)與駕駛員的接口,主要的交互在于駕駛員對系統(tǒng)數(shù)據(jù)庫,無線通訊的管理,以及系統(tǒng)反饋給駕駛員塔機運行狀態(tài)的清晰顯示。其中又包括了系統(tǒng)工作狀態(tài)報告,塔機正常運行報告,危險狀態(tài)預警,界面調(diào)節(jié)功能等。由此設(shè)計塔機監(jiān)測系統(tǒng)用例圖如圖2所示。
系統(tǒng)主界面如圖3所示,右側(cè)狀態(tài)欄用來提示系統(tǒng)工作狀態(tài)與塔機危險狀態(tài)預警,包括碰撞預警,異常狀態(tài)預警等。同時當前塔機各項運行參數(shù)在下方實時顯示,方便駕駛員清楚地了解當前塔機運行情況。左側(cè)是工作區(qū)域模擬運行區(qū),系統(tǒng)允許同時監(jiān)測最多16個塔機,本塔機為藍色,其他塔機為綠色,當有大概率碰撞危險產(chǎn)生時,以紅色間斷閃爍為警示??梢允褂没瑮l縮放該區(qū)域,方便監(jiān)視整個工地或是單個塔機,方向鍵控制平移,也可以使用觸摸筆在屏幕上進行拖動。
4 系統(tǒng)核心技術(shù)(Key technology)
(1)Linux內(nèi)核裁剪
基于Linux-3.12.7版本的內(nèi)核而言,我們不需要也不應該將其完整地運行到受到資源限制的嵌入式系統(tǒng)中去。根據(jù)系統(tǒng)的實際需求,我們只需要保留網(wǎng)絡(luò)服務(wù)、各通信口相關(guān)驅(qū)動、10.4寸觸屏驅(qū)動、UDA1341音頻芯片驅(qū)動、顯卡驅(qū)動、聲卡驅(qū)動以及其他保證系統(tǒng)正常運行的后臺服務(wù)。在虛擬機中進入Linux-3.12.7源碼包,輸入make xconfig進入內(nèi)核配置。在選擇相應的配置時,有三種選擇方式,Y表示將該功能編譯進內(nèi)核;N表示不將該功能編譯進內(nèi)核;M表示將該功能編譯成可以在需要時動態(tài)插入到內(nèi)核中的模塊[5]。
在Makefile文件中修改硬件平臺ARCH = arm以及交叉編譯器CROSS_COMPILE = arm-linux。輸入make dep編譯相關(guān)依賴文件,然后采用gzip壓縮方式編譯,執(zhí)行make zImage,得到內(nèi)核壓縮鏡像文件zImage并下載到S3C6410運行適合本系統(tǒng)的Linux內(nèi)核。
(2)QTE基本庫裁剪
(3)Qt與SQLite數(shù)據(jù)庫連接
5 結(jié)論(Conclusion)
本文提出了一種基于Linux平臺與QTE庫的塔機監(jiān)測防撞系統(tǒng)GUI設(shè)計方法,在減少系統(tǒng)體積的同時提升了系統(tǒng)的響應速度,并采用LCD觸摸屏加強了系統(tǒng)的交互能力。實驗證明,該系統(tǒng)能實時顯示塔機各項工作指標的功能,并在系統(tǒng)處于危險運行狀態(tài)時及時警告駕駛員,將事故發(fā)生率降到最低。后續(xù)的工作將在進一步優(yōu)化內(nèi)存管理與防碰撞算法方面展開。
參考文獻(References)
[1] 李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)[M].北京:清華大學出版社,2007.
[2] 韓少云,奚海蛟,諶利.ARM嵌入式系統(tǒng)移植開發(fā)實戰(zhàn)[M].北京:北京航空航天大學出版社,2012.
[3] 周利.用Qt編制Linux中X-windows下的應用程序[J].電腦編程技巧與維護,2000(1):17-19.
[4] Jasmin Blanchette,Mark Summerfield.C++ GUI Programming with Qt4. Second Edition[M].Prentice Hall,2008.
[5] 徐晨輝.嵌入式Linux內(nèi)核裁剪及移植的研究與實現(xiàn)[D].上海:東華大學,2009.
[6] 游燕珍,趙國峰,徐川.基于Qt/E的嵌入式GUI的研究及其移植[J].微計算機信息,2008(14):120-123.
[7] Grant Allen,Mike Owens[美].楊謙,等,譯.SQLite權(quán)威指南[M].北京:電子工業(yè)出版社,2012.
作者簡介:
盧 揚(1990-),男,研究生.研究領(lǐng)域:復雜系統(tǒng)理論與應用.
章 紅(1969-),女,副教授,碩士生導師. 研究領(lǐng)域:網(wǎng)絡(luò)化控制系統(tǒng)故障診斷與容錯,群體控制,計算機控制系統(tǒng)的分析與設(shè)計等.endprint