一種HCI自適應(yīng)的解決辦法
5 工程應(yīng)用
5.1 工程介紹
我們?cè)谝粋€(gè)系列工程中采用了以下方案構(gòu)造HCI的菜單體系。某公司研發(fā)一款嵌入式的數(shù)據(jù)采集產(chǎn)品,該產(chǎn)品的代碼與數(shù)據(jù)獨(dú)立存儲(chǔ)在兩個(gè)Flash芯片,通過采集外界的模擬量和數(shù)字量對(duì)其處理后進(jìn)行輸出。產(chǎn)品的人機(jī)交互界面采用按鍵、LED數(shù)碼管,計(jì)算控制單元采用飛思卡爾半導(dǎo)體的微處理器Coldfire V2系列,該CPU基于變長(zhǎng)RISC處理器核心,具有32位地址線和數(shù)據(jù)線以及集成的調(diào)試模塊,MAC/eMAC單元能提供高性能的品質(zhì)。
嵌入式操作系統(tǒng)采用Nucleus PLUS,Nucleus PLUS實(shí)時(shí)操作系統(tǒng)是Accelerated Technology公司開發(fā)的嵌入式RTOS產(chǎn)品,只需一次性購(gòu)買Licenses,就可以獲得操作系統(tǒng)的源碼。最終是以C庫(kù)的形式提供給用戶,可以選擇所需要的部分鏈入到應(yīng)用程序中。具有如下特性:
1)快速響應(yīng)時(shí)間:對(duì)臨界資源的檢測(cè)時(shí)間不依賴于占有該臨界資源的線程執(zhí)行時(shí)間長(zhǎng)短,一旦低優(yōu)先級(jí)線程釋放掉臨界資源(不管其是否執(zhí)行完),高優(yōu)先級(jí)線程就會(huì)搶占運(yùn)行。
2)模塊相互獨(dú)立:每個(gè)任務(wù)的執(zhí)行時(shí)間和其他任務(wù)的處理時(shí)間無關(guān)。
3)較高吞吐量:隨著任務(wù)數(shù)目的增多,任務(wù)的調(diào)度時(shí)間為常數(shù)。
4)具有可擴(kuò)展性:利用現(xiàn)有系統(tǒng)調(diào)用的結(jié)合可得到新的系統(tǒng)調(diào)用。
5.2 驗(yàn)證過程
我們擬在這個(gè)項(xiàng)目開發(fā)中實(shí)現(xiàn)普適設(shè)備的嵌入式人機(jī)交互界面,在其中應(yīng)用可適應(yīng)性的思想。
首先是硬件設(shè)計(jì),該產(chǎn)品設(shè)計(jì)了8個(gè)Ied數(shù)碼管,8個(gè)按鍵Key1~Key8。這部分設(shè)計(jì)的功用體現(xiàn)在兩個(gè)方面:
1)數(shù)據(jù)采集設(shè)備通過LED顯示采集的數(shù)據(jù)和處理結(jié)果;
2)用戶通過按鍵可以查看和設(shè)置設(shè)備的參數(shù)。
其次是一些必要的定義,對(duì)按鍵的功能通過項(xiàng)目組討論做了如表1的定義。
表1的定義給消息定義提供一個(gè)依據(jù)。按功能鍵送入一個(gè)OK消息,按取消鍵則發(fā)送了一個(gè)CANCEL消息,其他按鍵事件以此類推。于是我們便得到一個(gè)消息枚舉量的定義。
表1 按鍵定義
界面狀態(tài)定義。把人機(jī)交互工作分為工作、驗(yàn)證和設(shè)置狀態(tài)。每種狀態(tài)用一個(gè)MenuStatus枚舉常量表示,NORMAL表示工作狀態(tài),CHECKI-NG表示驗(yàn)證狀態(tài),SETHNG表示設(shè)置狀態(tài)。正常工作時(shí)處于NORMAL狀態(tài),一旦按下功能鍵會(huì)進(jìn)入菜單成為驗(yàn)證或設(shè)置態(tài)。
交互行為定義如下:
1)常態(tài)時(shí)默認(rèn)為各通道實(shí)時(shí)數(shù)據(jù)循環(huán)顯示,有報(bào)警時(shí),可顯示報(bào)警標(biāo)識(shí);
2)默認(rèn)常態(tài)下按功能鍵進(jìn)入1層菜單,按上翻鍵、下翻鍵顯示1-、2-、3-、…、14-Reset;
3)狀態(tài)2-和狀態(tài)4-可用作擴(kuò)展;
4)狀態(tài)3-時(shí),按功能鍵進(jìn)入日期時(shí)間設(shè)置菜單,按上翻鍵、下翻鍵顯示日期、時(shí)間,設(shè)置好后,按功能鍵確定退出;
5)狀態(tài)4-時(shí),按功能鍵進(jìn)入?yún)?shù)設(shè)置菜單,按上翻鍵、下翻鍵顯示4-1、4-2、4-3……、4-19,表示通道選擇;
狀態(tài)4-x時(shí),按功能鍵進(jìn)入x通道的參數(shù)設(shè)置菜單,按上翻鍵、下翻鍵顯示4-x-O、4-x-2、4-x-3、…、4-x-8時(shí),按功能鍵進(jìn)入x通道的y(0≤y≤8)參數(shù)設(shè)置菜單,按加1鍵、減1鍵和移位可以進(jìn)行參數(shù)修改操作;修改好參數(shù)按功能鍵確定退出;
6)在任一狀態(tài)時(shí),按Key7則返回上層;
7)在任一狀態(tài)時(shí),按取消鍵可返回常態(tài)。
然后按照上面定義的交互行為,定義菜單節(jié)點(diǎn)的功能函數(shù)。在菜單的創(chuàng)建時(shí)把函數(shù)的指針賦值給節(jié)點(diǎn)。該模型同樣可以用于實(shí)現(xiàn)通過通信進(jìn)行的交互。
上述HCI的實(shí)例,不但實(shí)現(xiàn)簡(jiǎn)潔,開發(fā)效率高,而且是結(jié)構(gòu)開放性的,便于界面規(guī)模的控制。
6 結(jié)束語
通過工程實(shí)踐驗(yàn)證,該基于可適應(yīng)性考慮的嵌入式HCI方案有如下特點(diǎn):
1)易于維護(hù),在拓?fù)浣Y(jié)構(gòu)不變的情況下,隨按鍵或輸入的不同,數(shù)據(jù)結(jié)構(gòu)易于加以修改。菜單節(jié)點(diǎn)可以隨實(shí)際項(xiàng)目需求增減成員,代理類也可隨實(shí)際需求修改。
2)開放性好,便于擴(kuò)展。只要內(nèi)存容量允許,菜單規(guī)模理論上不受限,并且增刪節(jié)點(diǎn)容易實(shí)現(xiàn)。菜單結(jié)構(gòu)可以靜態(tài)聲明,也可以使用動(dòng)態(tài)內(nèi)存分配。
3)通用性強(qiáng),不但適應(yīng)于Led數(shù)碼管與按鍵的組合,而且適應(yīng)于LCD屏幕與按鍵或觸摸屏。只要是用戶與系統(tǒng)交互,能產(chǎn)生消息驅(qū)動(dòng)的地方都可以使用。
4)效率高,從根節(jié)點(diǎn)到任一節(jié)點(diǎn)的路由不需要軟件實(shí)現(xiàn),由用戶交互決定。雖然是網(wǎng)狀模型,但對(duì)用戶而言,從功能上仍是個(gè)層狀結(jié)構(gòu),脈絡(luò)比較清楚,容易被開發(fā)人員掌握。
另外,在具體應(yīng)用中,可適應(yīng)性的實(shí)現(xiàn)還可能以混合的模式出現(xiàn)。
未來的研究是考察在宿主機(jī)與目標(biāo)機(jī)交互的情況下,如何實(shí)現(xiàn)HCI方案到目標(biāo)機(jī)的遷移,實(shí)現(xiàn)目標(biāo)機(jī)HCI動(dòng)態(tài)配置。
評(píng)論