基于μCOS的預(yù)定義UI交互設(shè)計(jì)
3.1 操作界面
根據(jù)電能計(jì)量終端的監(jiān)控內(nèi)容,設(shè)計(jì)菜單窗口和各菜單項(xiàng)對(duì)應(yīng)的監(jiān)控界面。設(shè)備上電后,將顯示版本號(hào),接著進(jìn)入菜單窗口。菜單窗口有4行,其中前2行顯示菜單項(xiàng),后2行顯示實(shí)時(shí)時(shí)間。菜單項(xiàng)共有4個(gè),分別為交流電(包括市電和油電)、風(fēng)電和光電參數(shù)。通過(guò)上下按鍵在主窗口的前兩行進(jìn)行菜單項(xiàng)切換。菜單窗口設(shè)計(jì)如圖3所示。本文引用地址:http://www.ex-cimer.com/article/149764.htm
在選擇的菜單項(xiàng)上點(diǎn)擊enter鍵進(jìn)入該菜單項(xiàng)對(duì)應(yīng)的監(jiān)控界面,監(jiān)控內(nèi)容分屏顯示。交流電子菜單分7屏來(lái)顯示交流電接入類(lèi)型(市電/油電)、交流電壓、交流電量、有功功率、市電/油電停電時(shí)間、市電/油電來(lái)電時(shí)間、功率因數(shù)等,圖4(a)為其中一屏;光電/風(fēng)電子菜單分2屏來(lái)顯示光電/風(fēng)電電壓、光電/風(fēng)電電流、光電/風(fēng)電電量、光電/風(fēng)電功率等,圖4(b)為其中一屏。用戶(hù)可通過(guò)up,down鍵和esc鍵來(lái)切屏和返回至菜單窗口。
3.2 預(yù)定義菜單設(shè)計(jì)
μCOS是一個(gè)源碼公開(kāi)、可移植、可固化、可裁剪、搶占式、支持多任務(wù)的實(shí)時(shí)操作系統(tǒng),運(yùn)行于沒(méi)有MMU的嵌入式微處理器上,采用可剝奪型內(nèi)核進(jìn)行任務(wù)調(diào)度,實(shí)時(shí)性好,小巧且移植方便,適合工業(yè)控制領(lǐng)域使用。在μCOS中,設(shè)置一個(gè)UI任務(wù),完成響應(yīng)用戶(hù)的鍵盤(pán)輸入、選擇菜單和根據(jù)用戶(hù)選擇的菜單執(zhí)行相應(yīng)操作。菜單設(shè)計(jì)成多層次形式。菜單設(shè)計(jì)采用預(yù)定義的集中描述,由程序解析菜單定義形式??身憫?yīng)的按鍵集也以數(shù)組的形式在菜單數(shù)組中定義。鍵盤(pán)服務(wù)設(shè)計(jì)成中斷級(jí)任務(wù),通過(guò)專(zhuān)用的消息隊(duì)列發(fā)送鍵值到UI任務(wù),實(shí)現(xiàn)實(shí)時(shí)信息顯示。
預(yù)定義的菜單由3部分控制:
①菜單顯示區(qū)域坐標(biāo)。用來(lái)定義菜單顯示區(qū)域左上角字符坐標(biāo)(符號(hào)常量MENU_AREA_LT_X,MENU_AREA_LT_Y,)和右下角字符坐標(biāo)(符號(hào)常量MENU_AREA_RB_X,MENU_AREA_RB_Y),顯示的菜單要限制在這個(gè)區(qū)域中。
②菜單定義。設(shè)計(jì)一個(gè)結(jié)構(gòu)體數(shù)組,數(shù)組中的每個(gè)結(jié)構(gòu)體描述一個(gè)菜單項(xiàng)的各項(xiàng)設(shè)置,這個(gè)結(jié)構(gòu)體數(shù)組稱(chēng)為“菜單定義結(jié)構(gòu)體數(shù)組”(Menu Deftne Structure,MDS),在C代碼中命名為Menu_Define[]。
③當(dāng)前有效菜單項(xiàng)指針。定義一個(gè)整型變量,稱(chēng)為“菜單指針”(Menu Pointer,MP),MP的值與MDS的數(shù)組下標(biāo)相對(duì)應(yīng),指明了當(dāng)前有效的菜單項(xiàng)。菜單定義采用枚舉類(lèi)型標(biāo)識(shí),以提高代碼的可讀性。
評(píng)論