一種面向可適應性的嵌入式設備HCI方案
嵌入式系統(tǒng)是以應用為中心、軟硬件可剪裁的專用計算機系統(tǒng),其工程實踐正逐漸地引起研究人員的關(guān)注,在實際工程中有諸多因素需要考慮,比如微處理器的功耗,器件的可靠性,設備的抗惡劣環(huán)境能力,人機交互界面(HCI),現(xiàn)場通信等等問題。其中HCI是嵌入式系統(tǒng)工程中的一個重要課題。由于某些嵌入式系統(tǒng)研發(fā)的復雜性和工程實施中的不確定性,導致嵌入式系統(tǒng)HCI有僵化的趨勢,對此提出一種可適應性的解決思路是必要的。
1 嵌入式工程的HCI
圖形用戶界面是當前用戶界面的主流。HCI是決定嵌入式計算機系統(tǒng)是否友好的一個重要因素。嵌入式系統(tǒng)人機交互功能主要靠輸入輸出的設備與相應的軟件協(xié)同來實現(xiàn)??晒┤藱C交互使用的設備主要有鍵盤、顯示以及各種模式識別設備等。嵌入式系統(tǒng)的人機交互因其特殊性而與PC有所區(qū)別,多數(shù)的嵌入式系統(tǒng)都是顯示屏幕與鍵盤,或者帶觸摸屏定位的設備組成。對用戶而言,需要用按鍵或觸摸屏的動作告知系統(tǒng)如何按照人的意圖去輸出,絕大多數(shù)嵌入式系統(tǒng)都有個HCI系統(tǒng)供用戶使用。問題是在工程中交互設計時,設計者往往會把交互界面和系統(tǒng)的資源聯(lián)系起來,使得界面的設計不獨立于系統(tǒng)資源。軟件設計勢必在很大程度上受限于硬件資源。實踐中,通常的做法是根據(jù)現(xiàn)有的硬件條件臨時組織一個數(shù)據(jù)結(jié)構(gòu),把一系列字符串值“串”起來,之間可以實現(xiàn)相互跳轉(zhuǎn)。一個交互節(jié)點的快照描述一般需要幾部分組成:1)狀態(tài)枚舉量;2)顯示常量狀態(tài)值;3)前趨狀態(tài);4)后繼狀態(tài)。還可能需要包含節(jié)點Id標識等其他的輔助信息。顯然,這是用一種靜態(tài)的方法來生成一個菜單對象,代碼易讀性強,但各個部分相互依賴,編碼和調(diào)試比較繁瑣,需要設計者對各部分都十分清楚。最大的問題是可擴展性受限,對后續(xù)規(guī)模的增加造成一定的影響。工程實踐中,用戶的需求及隱含需求往往是復雜和不確定的。
本文的研究目的是建立一套能夠適應應用復雜性和不確定性的實現(xiàn)方案,為后續(xù)嵌入式系統(tǒng)開發(fā)提供一個工程性的解決思路。
2 可適應的嵌入式HCI
可適應的HCI是指可根據(jù)系統(tǒng)的計算環(huán)境或應用情境進行伴隨調(diào)節(jié)的界面??梢赃M一步區(qū)分為被動性適應和主動性適應(或自適應)。
可適應性HCI在嵌入式系統(tǒng)開發(fā)中有著越來越迫切的要求。通常該需求來源于2個方面,一個是用戶需求的變更;另一個是系統(tǒng)執(zhí)行中的應用環(huán)境變化。由這2種因素出發(fā),依據(jù)可適應性的行為模式,嵌入式HCI的可適應性從以下2個方面展開研究:
所謂靜態(tài)可適應性是指與系統(tǒng)靜態(tài)配置相關(guān)的可適應性,通常適應行為發(fā)生在2次系統(tǒng)啟動之間。這種適應的需求通常是外來的,比如用戶需求的修改,設計方案的變化。在工程中,常常出現(xiàn)迭代式的適應性修改,所以靜態(tài)可適應性也是一個很有現(xiàn)實意義的需求。這種可適應性的實現(xiàn)必須借助非易失性存儲器來進行,用來存儲變化后的定義及配置參數(shù),使得順利完成適應行為。
動態(tài)可適應性是指在系統(tǒng)運行過程中,可以依據(jù)環(huán)境的變化進行在線自適應修改,即普適環(huán)境下的修改。通常普適設備在使用環(huán)境中遷移,引起了環(huán)境參數(shù)的強制性變化,系統(tǒng)的HCI與環(huán)境就會產(chǎn)生矛盾,因此普適策略下的自適應調(diào)整是很有必要的。依據(jù)收集到的系統(tǒng)狀態(tài)信息,判斷是否HCI與系統(tǒng)配置同步,依靠算法實時糾正系統(tǒng)配置來實現(xiàn)自適應。普適環(huán)境下的自適應特點在于動態(tài)性,只有在出現(xiàn)矛盾的時候才做普適調(diào)整,在設計中必須對匹配性進行考慮。
3 基于多重鏈表的嵌入式HCI
3.1 模型建立
多重鏈表在組織順序型結(jié)構(gòu)數(shù)據(jù)時具有較快的搜索速度,下面給出一個基于多重鏈表的模型,每個節(jié)點扇出為4,分別指向上層節(jié)點、下層節(jié)點及左、右的鄰居節(jié)點,扇入不限。每個節(jié)點與相鄰的節(jié)點之間都有雙向連接,并且每個節(jié)點均可帶子節(jié)點進行擴展。
模型從功能上講是個層次結(jié)構(gòu),從數(shù)據(jù)模型上看是網(wǎng)狀結(jié)構(gòu),允許有一個以上的節(jié)點無雙親,并且一個節(jié)點可以有多于一個的雙親。每層節(jié)點的數(shù)目不固定,可視實際情況而變化。每層都是一個閉環(huán)的雙向回路,可進行水平雙向遍歷。層與層之間由父節(jié)點與長子節(jié)點雙向連接。父層節(jié)點對子層節(jié)點是一對一聯(lián)系,由父節(jié)點進入子層時在長子節(jié)點駐足;子層節(jié)點對父節(jié)點是多對一聯(lián)系,意味著由每個子節(jié)點都可回溯至父節(jié)點。由父層切換至子層的每次遍歷必須經(jīng)過長子節(jié)點,然后可由長子節(jié)點依次進行水平循環(huán)遍歷,子層切換至父層則比較靈活,每個子節(jié)點均可到達其父節(jié)點。
3.2 方案實現(xiàn)
3.2.1 內(nèi)存結(jié)構(gòu)設計
節(jié)點應該具備4個域,除了標示身份外還至少應該具備指向上層父節(jié)點的指針域、指向下層子節(jié)點的指針域以及指向同層左、右兄弟的指針域。
圖1是一個簡單的HCI結(jié)構(gòu)圖,從功能上看,它分為5層,第一層有5個節(jié)點項形成一個閉環(huán),第二層閉環(huán)是第一層第一個節(jié)點的子節(jié)點組,該子節(jié)點組的第二項又有子節(jié)點組。如此下去共有5層,處在最高位置的節(jié)點其父指針為空,最低位置的節(jié)點的兒子指針為空。
評論