朱敦達
摘 要 Linux操作系統在產品當中應用的越來越廣泛,在Linux操作系統中進行軟件開發成為當前軟件研究的一個熱點問題,本文介紹了幾種比較常見的嵌入式Linux組態軟件開發的特點,之后對可以應用在qt平臺之上的Linux開發環境進行了介紹,總結了使用qt進行Linux程序開發的基本方法,并著重介紹了如何利用qt進行組態軟件的基礎設計,并總結了該項技術如何應用于具體的平臺之上。
關鍵詞 組態軟件 qt平臺 數據庫開發
中圖分類號:TP391 文獻標識碼:A
Linux操作系統的用戶數量不斷增多,由于Linux系統的代碼是開放性的,因此在網絡方面具有強大優勢,使用Linux操作系統已經逐漸成為工業應用領域的選擇。隨著嵌入式Linux開發應用的越來越普遍,各種嵌入式Linux操作系統的開發技術已經逐漸變得完善,根據系統的數據庫和日志文件可以對技術的支持和應用進行維護,在嵌入式系統當中植入Linux可以應用的組態軟件越來越成為一種趨勢,多平臺支持的組態軟件越來越成為一種可能,常見的組態軟件有Supervisory Control等,這種組態軟件可以同時兼容Linux系統和Win NT系統,根據系統軟件應用的現狀,本文介紹了一些利用嵌入式Linux系統組態軟件進行設計的方法。
1嵌入性Linux軟件設計
1.1嵌入式GUI
比較常見的Linux主要由miniGUI和主要有飛漫公司開發的Micro Windows以及由Troltech公司開發的qt和由GTK開發的GTK+。
使用miniGUI進行開發的第一步首先是建立一個比較成熟的引擎,比如使用SVGALib或者使用LibGGI,進行開發的重中之重在于窗口的設置,在圖形接口的設計方面,需要引入MiniGUI的開發,需要引入的是圖形層面的抽象設計和輸入層面的抽象設計,利用的是GAL和IAL的概念。可以嘗試利用GAL或者LAL進行圖形的設計,利用MiniGUI進行圖形引擎的設計,便于圖形進行移植和保留。并且程序設計出來可以和普通的Windows系統兼容,在進行win系統應用設計的時候,也可以采用例如miniGUI這樣的方法。
如果是使用MicroWindows目前的開發主要是底層的引擎,如何進行窗口的開發或者是圖形的設計還有待研究,但是任何操作系統如果沒有窗口的支持都是沒有辦法進行操作的,因此如果僅僅是對顯示設備進行操作,這種操作系統就顯得過于小巧,如何將這種系統移植到設備之上會成為一個問題,如果最上層的API可以起到支持Win32或者支持NanoX的作用,那么就有可能實現win32和X Window窗口保持一致,這些系統如果可以兼容互相移植起來就會顯得比較容易。
在系統設計的時候常用的GTK也是一種開放源代碼的圖形設計程序,這種程序是Tool Kit的縮寫,目前所主要采用的圖形所主要使用的就是這種比較常見的高層數據庫,由于這種軟件的模塊設計和C語言程序的編程具備良好的兼容屬性,因此運行比較穩定,常見的運行庫也比較小巧,加上GTK和X服務器的體積僅僅占有3MB左右的空間,因此具備良好的兼容性,可以節省大量存儲空間,這種軟件完全可以用來開發嵌入式GUI系統,進行系統應用的開發可以免費得到網上可能獲取的各種資源,這種應用程序可以免費從網上獲取各種代碼,具備上述優勢之后Linux系統常見的操作之一就是獲得GNOME應用GTK開發一些較為強大的功能。
利用qt平臺可以進行和C++程序一樣的圖形界面設計,根據程序的框架進行一些多平臺的系統應用,注重用戶體驗的同時可以有精美的用戶界面設計,所具有的元素主要是一些圖形的用戶界面,利用面向用戶的思想,根據用戶對擴展應用的熟悉程度,可以形成一種面向對象的思想,因此用戶對界面進行設計是具有應用基礎的,基于一種面向對象的設計思想,用戶對界面的擴展也顯得設計方便,在進行組件編程的時候也具有應用方便的優勢。
因此根據MinGUI或者Micro Window和GTK進行Linux系統軟件的設計,對于一般工業用戶或者單純的系統應用用戶來說都比較方便,對于普通工業領域的用戶或者單純Linux系統的用戶,進行開發設計都需要時間適應。考慮到組件的開發需要多系統平臺,需要多用戶的應用,需要利用多控件的支持,因此需要利用豐富的軟件庫支持,進行qt開發需要程序設計方面的選擇,利用qt平臺進行開發是最好的選擇。
1.2進行qt應用開發的程序
可以嘗試利用如下兩種方法進行嵌入式Linux系統環境的開發,一種是嘗試利用qt平臺提供的設計工具qt designer進行系統用戶界面的設計,或者是利用圖形界面的生成工具直接進行圖形界面的設計,可以嘗試利用圖形界面進行多用戶界面的快速設計,嘗試利用多種程序代碼進行系統的開發應用,通過多種程序的開發,可以在多種系統當中生成應用程序的代碼,利用快速的開發手段,進行程序設計可以實現基于Linux環境和Window系統的交叉編譯,通過多種程序設計的qt designer的用戶對象設計可以編譯MOC和用戶編輯器UIC,進行代碼轉換和代碼編譯可以生成額外的執行文件。還可以通過手動編輯的編譯方法來進行程序的設計和實現,通過利用windows系統環境下的VC++編寫,可以實現代碼的優化設計,在VC++平臺之下可以實現Tools菜單當中的功能,在彈出的對話框中可以有Add選項,選擇ins and Macro files等功能就可以實現。
2系統組態軟件的設計和相關技術的實現
2.1組態軟件設計的基本理論
運用組態軟件進行開發環境和運行環境的設計需要利用Linux系統或者Window系統進行程序的交叉編譯,可以嘗試利用Intel環境和PXA250平臺進行軟件的環境設計。可以嘗試通過I/O程序從設備上獲取數據,通過數據整合之后在屏幕上進行顯示,還可以嘗試利用圖形界面的方式將投影直觀的展示到計算機屏幕當中,同時還可以按照組態的設計和操作人員的指令將相關數據匯總到設備平臺之上,對執行機構的設計進行參數調控。通過對數據采集分析的應用,將動畫界面和報警設置進行調配,通過動畫進行動態設計,在警報設置的時候利用用戶進行多流程的設計,在輸入和輸出設置當中利用多用戶界面解決實際問題,動態軟件的開發所主要利用的就是用戶的界面設計程序,通過數據庫系統和通信組件的合成,可以設計出設備驅動組件,其中不僅可以設計實時監控系統也可以設計數據的動態核心引擎,圖形界面的設計和驅動程序的設計都可以通過軟件的數據庫實現,可以嘗試利用內部協議進行數據共享和數據添加操作。
2.2實現組態軟件的技術
組態軟件的技術實現需要多方面的技術特點進行支持,首先是程序底層的設計,進行圖像的模擬需要根據顯示儀器的狀態進行設置,對于圖形和界面的設計需要根據現場的狀況進行設計,根據事件的驅動進行調整,事件驅動支持系統需要運用多種程序進行數據庫的選擇,根據圖形和應用的數據對象之間的支持數據庫進行選擇,建立起動畫和圖形界面的聯系,選擇圖形需要整個動態數據庫搭建起橋梁,進行第三方的應用和核心組的設計需要利用數據庫進行文件支持。Qt組件的設計需要基于framebuffer進行,在Linux系統架構之下需要根據系統架構的版本進行設計,找準動態接口之后設計出相應的LCD接口和初始化端口,包括畫面緩沖區域和相應的DMA 區域的控制,同時需要針對畫面緩沖設置一對讀寫代碼,具體根據查找的需要可以適用不同的數據接口,根據qt系統底層的抽象設計可以設計QScreen或者類似于QGfx的設計,根據QScreen可以嘗試抽象的底層現實數據,如果明了顯示設備的描述和操作之后,在系統打開和關閉功能的設計之上就可以建立不同的操作對象。Qt的底層設計有一些類似于Qscreen的種類,可以進行底層設計的同時,對于顯示設備的基本描述和操作方法的設計也能進行,如果聲明了對于基礎顯示設備的描述和操作之后,還可以在打開和關閉方面進行操作,在打開和關閉的時候可以嘗試不同的操作對象的創建,在QGfx的設計和抽象顯示的設備操作方面進行接口的設計和畫面比例的選擇,可以設計畫面的幀速率和矩形設計等步驟,進行簡單的ALPHA操作。
進行qt的操作可以基于qt技術實現Signal的操作,不同于大多數的GUI工具,大多數的GUI都可以進行數據軟件的控制,所控制的都是一些函數的模擬,在QT的設計當中,進行Signal和Slot設計都需要進行一些基礎替代,回調部分函數的指針,在應用Slot的時候需要關注對象間的復雜操作,圖形和圖像之間需要根據數據接口進行窗口圖形的設計和實時數據的現實,圖形畫面的鏈接主要根據窗口圖形的設計和實時數據的傳輸建立相關性對象,在設計的時候需要關注動畫屬性,可以嘗試將物理屬性和參數特征結合到一起,這樣在系統運轉的過程中,系統界面也會活動起來,形成的圖像就會逼真而生動。
Qt中所有的軟件設計需要基于Qevert,qt的回路設計的就是列隊里面取得的本地窗口需要轉換成QEvent,然后需要將相關的事件轉化后發到QObject當中去,根據具體的QObject設計相應具體的函數進行調用和接收,這是一種內部程序的生成機制。Qt中與內部程序相對應的生成機制都是建立在底層輸入設備之上的,qt當中的輸入設備都具有一些鍵盤和鼠標組件,其中的鼠標可以抽象為QWSMouseHandle,鍵盤設備當中的抽象軟件大都是利用QWSMouseHandle進行設計的。
2.3組態軟件的核心
和windows操作系統類似的還有一些數據庫的操作系統,需要建立相應的數據庫進行對照,對數據庫進行配置之后對相應的設置文件進行編譯和操作,在Linux系統的數據庫當中,可以嘗試Oracle和sql等多種,常見的數據庫就是MYSQL。該數據庫是根據客戶機和服務器建立起來的簡單的管理數據庫,通過服務器和相應的客戶程序連接起來,根據客戶程序的不同和數據庫組成的不同,進行相應的代碼開發,方便用戶自由的使用。根據強大和靈活的屬性,可以進行豐富端口的設計,相應的編譯程序和端口程序也比較小巧,在系統頂層設計MySQL和ODBC等基本結構,可以方便的進行數據庫的訪問等操作,在對應的多種設計語言的幫助之下,可以方便的對不同的編譯程序進行設計。例如以MySQL為例,可以在Linux系統當中實現多步驟的操作。
3結語
在總結了幾種常見的嵌入式Linux系統的GUI設計方法和特征的應用之后,在動態數據組件的設計之中可以嘗試進行qt系統的開發和應用,本文所著重闡述的就是qt程序的開發,所著重論述的就是系統組件的實現和相關技術的合成,當組成了一種嵌入式系統之后,就可以實現在Linux系統環境當中進行qt系統工具的開發和Linux系統組件的設計。
參考文獻
[1] 廖熹,易克非.基于嵌入式Linux系統下的Qt測試軟件開發[J].兵工自動化,2013,32(08):94-96.
[2] 劉治國,陳新華.基于Linux和Qt的智能家居系統的設計與實現[J].電子技術應用,2012,38(04):23-26.