新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式linux系統的GUI方案設計

        基于嵌入式linux系統的GUI方案設計

        作者: 時間:2012-03-02 來源:網絡 收藏

        此外,FrameBuffer設備還提供了若干ioctl命令,通過這些命令可以獲得顯示設備的一些固定信息(比如顯示內存大小)以及與顯示模式相關的可變信息(比如分辨率、象素結構、掃描線的字節寬度),同時可獲得偽彩色模式下的調色板信息等。

        3 的自主開發

        的總體設計思想是把所有操作都由對象和消息驅動,通過對現有的分析來對多種應用根據GUI的要求進行總結,然后抽象出各種組件類。GUI的所有組件和數據都被設計成對象,組件對象通過消息來通信。嵌入式GUI在消息驅動下可形成整體并構成。其整體框架和體系結構如圖2所示。



        系統中的所有消息節點將構成空閑隊列和消息隊列,其中消息隊列存放當前EGUI系統中沒有處理的消息。消息隊列由消息管理器進行操作和管理。圖2中的輸入設備抽象層、操作系統抽象層和組件對象集合都是消息發生器,它們都會產生EGUI消息。調用消息管理器的操作可將生成的消息放入到消息隊列中。消息管理器用于管理消息隊列和空閑隊列,當有消息產生時,消息管理器將執行消息入隊PUSH ()操作,其處理過程是先從空閑隊列中摘下一個節點,形成一個消息節點,再將它掛到消息隊列的隊尾。桌面對象管理器負責分發消息,它可通過調用消息管理器的出隊操作POP()來取得待處理的消息,處理過程是將消息隊列的第一個消息節點摘下,并取得該消息節點的信息,然后將該消息節點掛到空閑隊列的隊尾。桌面對象管理器取得消息后,將按照一定的策略對取得的消息進行分發,并讓接收該消息的組件對象中的消息處理函數來處理該消息。分發消息時,如果消息指定了接收對象,則將消息路由到接收對象;而非鍵盤的系統消息。將被路由到桌面對象管理器的第一個子對象;對于用戶定義的消息,系統會將其路由到指定的對象。而組件對象處理消息時,如果處理操作要改變屏幕數據,組件對象將調用繪圖操作Draw重繪自己的外觀。整個系統就是這樣不斷地產生消息、分發消息、處理消息,從而形成一個無限循環,同時驅動EGUI運行。

        4 結束語

        針對當前嵌入式GUI的特點,本文給出了可支持漢字顯示、鍵盤輸入的多線程嵌入式GUI系統的設計方法。該方法設計的系統采用窗口模式,而且便于操作,同時具有可視化界面、操作靈活、資源占用少等優點,并可支持JPG格式的圖像文件。

        本文引用地址:http://www.104case.com/article/149535.htm linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 得荣县| 南丹县| 登封市| 建阳市| 托克逊县| 宁乡县| 阿图什市| 麦盖提县| 门源| 靖边县| 福泉市| 宁陵县| 穆棱市| 东方市| 黑山县| 阜宁县| 沁水县| 潍坊市| 台中县| 连平县| 衡南县| 出国| 亳州市| 拜城县| 依兰县| 宁明县| 中宁县| 新竹县| 上饶市| 兖州市| 新泰市| 福安市| 日照市| 嘉祥县| 建湖县| 公主岭市| 乌海市| 于田县| 托里县| 邵武市| 普兰县|