文章論述了變電站自動化系統(tǒng)控保單元人機(jī)界面的要求频澜;借鑒Windows應(yīng)用程序的設(shè)計(jì)思路鹰党,按面向?qū)ο蟮囊髽?gòu)造了以頁面為對象的人機(jī)界面程序的框架秧梨;介紹了頁面操作的具體實(shí)現(xiàn)方法翁漠,并提出了完成控保單元整個人機(jī)界面設(shè)計(jì)還需進(jìn)一步完成的工作。雖然基于單片機(jī)的人機(jī)界面程序不可能實(shí)現(xiàn)Windows應(yīng)用程序的核心——消息響應(yīng)機(jī)制妻行,但仍大大提高了界面的友好性和程序的可移植性舆焕,顯示了面向?qū)ο笤O(shè)計(jì)方法的優(yōu)越性。
近年來汉疮,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(OOP)已成為人們構(gòu)造程序的事實(shí)標(biāo)準(zhǔn)棍详,很多采用OOP方法設(shè)計(jì)的程序成為程序設(shè)計(jì)的典范,Windows應(yīng)用程序就是一例丛剿。借鑒Windows應(yīng)用程序界面設(shè)計(jì)思想冒萄,將面向?qū)ο蟮姆椒ㄒ肟乇卧藱C(jī)界面的設(shè)計(jì),使人機(jī)交互程序變得清晰簡潔橙数,同時大大提高了在不同功用控保單元上的可移植性宦言。
1 變電站自動化系統(tǒng)控保單元人機(jī)界面功能分析
1.1 控保單元
1.1.1 控保單元簡介
變電站綜合自動化系統(tǒng)已經(jīng)從早期的集中式單CPU發(fā)展到今天的分層分布式多CPU系統(tǒng)。目前變電站綜合自動化的發(fā)展趨勢是將功能強(qiáng)大的微機(jī)監(jiān)控系統(tǒng)與全數(shù)字化的微機(jī)保護(hù)測控技術(shù)商模、高速網(wǎng)絡(luò)通信技術(shù)結(jié)合起來奠旺,取代傳統(tǒng)的RTU,實(shí)現(xiàn)無人值班施流。目前國內(nèi)變電站綜合自動化發(fā)展的趨勢是將傳統(tǒng)上集中在一起的監(jiān)控 响疚、保護(hù)功能分散到各個現(xiàn)場中分布實(shí)施。具體來說就是在變電站中按照電氣間隔劃分單元瞪醋,每一個獨(dú)立控保裝置(如進(jìn)線忿晕、出線、變壓器银受、母聯(lián)践盼、電容器等)分別安裝各自獨(dú)立的控保單元。這些分散的控保單元再通過通信網(wǎng)絡(luò)與監(jiān)控主機(jī)連起來宾巍,構(gòu)成一個有機(jī)的整體因摸,從而實(shí)現(xiàn)集中管理、分散控制叭蜂。這種體系結(jié)構(gòu)符合變電站自動化系統(tǒng)的發(fā)展趨勢侦滩,設(shè)計(jì)規(guī)范,調(diào)整擴(kuò)建簡單唬研,設(shè)備布置整齊假祝,運(yùn)行維護(hù)方便。
1.1.2 控保單元人機(jī)界面正面示圖
圖1控保單元操作界面圖圖1所示的某種典型控保單元操作界面可分為4個區(qū)域:區(qū)域A為液晶顯示區(qū);區(qū)域B為鍵盤輸入?yún)^(qū)虎内;區(qū)域C為控制命令輸入?yún)^(qū)燕汗;區(qū)域D為指示燈及揚(yáng)聲器輸出區(qū)。注意:為了防止誤操作诅挖,特意將控制命令鍵同鍵盤輸入?yún)^(qū)域B分開厕扼,單獨(dú)列為區(qū)域C,并且加密碼保護(hù)懒潘。
1.2 鍵盤
鍵盤作為控保單元人機(jī)交互系統(tǒng)的主要組成部分,擔(dān)負(fù)著傳遞用戶命令至控保單元的任務(wù)互墓。按人機(jī)交互系統(tǒng)對其不同的響應(yīng)過程可將按鍵分為以下5類:
(1) 數(shù)字鍵+小數(shù)點(diǎn)鍵+回退鍵
這些鍵用做單個或連續(xù)數(shù)字的輸入必尼,并由交互系統(tǒng)軟件賦予其意義。
(2) 上/下移動選擇鍵
這兩個鍵用做菜單選擇篡撵、屏幕翻頁判莉、選項(xiàng)選定等。
(3) 確認(rèn)鍵
此鍵用做選定操作項(xiàng)育谬,類似于Windows中的[OK]鍵券盅。
(4) 取消鍵
用做取消當(dāng)前操作項(xiàng)或菜單退回到上級目錄,類似于Windows中的[CANCEL]鍵膛檀。
(5) 命令鍵
這些鍵用做合分閘锰镀、遠(yuǎn)動就地切換、事故復(fù)位等重要命令的輸入咖刃。
1.3 液晶屏幕
液晶屏幕在控保單元人機(jī)交互系統(tǒng)中擔(dān)負(fù)著傳遞控保單元信息至用戶的任務(wù)泳炉。為了使操作簡單方便,液晶屏幕信息的顯示采用了分層菜單結(jié)構(gòu)嚎杨,輔以上/下移動選擇鍵花鹅、確認(rèn)鍵、取消鍵就可完成整個菜單的完全檢索枫浙。菜單結(jié)構(gòu)是建立在“頁面”的基礎(chǔ)上的呐缸,所謂“頁面”,指的是液晶上顯示的一屏尼缨,由兩部分組成:靜態(tài)文本和動態(tài)數(shù)據(jù)疫谱。靜態(tài)文本包括說明性的文字及提示信息等,由漢字和字符組成综货,在人機(jī)交互軟件中是用字符串來表示的姚菱;動態(tài)數(shù)據(jù)指實(shí)時刷新的數(shù)值或可由用戶修改的信息,在人機(jī)交互軟件中是用數(shù)值變量來表示的葛暇,液晶頁面根據(jù)其組成的不同可分為以下幾類:
(1)純文本頁面皂汞。如目錄,這類頁面不包括數(shù)據(jù),因此顯示時只要刷新一次即可熄晕。
(2)文本+實(shí)時數(shù)據(jù)頁面傲丹。如測量電量顯示頁面,這類頁面由于包含實(shí)時刷新的數(shù)據(jù)尔网,顯示時酬俯,數(shù)據(jù)顯示部分須不斷刷新以保持實(shí)時有效,但用戶不能通過鍵盤對數(shù)據(jù)進(jìn)行修改等操作顷歌。
(3)文本+可修改數(shù)據(jù)頁面锰蓬。如定值修改頁面,這類頁面包含的可修改數(shù)據(jù)可由用戶通過鍵盤的數(shù)字鍵進(jìn)行改動眯漩。
(4)幫助信息頁面芹扭。如錯誤操作警告等,這類頁面通常由純文本組成赦抖,但與以上3類頁面都不同的是頁面在顯示一段時間后會自動切換到引起該幫助信息的頁面舱卡。
2 以頁面為對象的控保單元人機(jī)交互設(shè)計(jì)
2.1 Windows應(yīng)用程序界面與控保單元界面相似之處
Windows應(yīng)用程序的設(shè)計(jì)過程是典型的面向?qū)ο蟮脑O(shè)計(jì)方法,同時Windows應(yīng)用程序“窗口”界面與控保單元人機(jī)交互界面有很大相似之處:(1)窗口通過消息響應(yīng)機(jī)制響應(yīng)鍵盤或鼠標(biāo)等輸入設(shè)備的輸入信息队萤,而在控保單元的某個頁面也是響應(yīng)鍵盤的輸入轮锥;(2)兩者都是在一簡單的while()循環(huán)中響應(yīng)外部輸入的;(3)都用多層嵌套的switchcase語句來決定某一消息對應(yīng)進(jìn)行何種操作[2]要尔。由此舍杜,自然想到借鑒Windows應(yīng)用程序的設(shè)計(jì)思路設(shè)計(jì)控保單元人機(jī)界面。當(dāng)然赵辕,在單片機(jī)上設(shè)計(jì)菜單不同于Windows環(huán)境下軟件的開發(fā)蝴簇,因?yàn)樵S多Windows內(nèi)部的消息響應(yīng)機(jī)制以及由Windows封裝的數(shù)據(jù)結(jié)構(gòu)、對象和標(biāo)準(zhǔn)處理函數(shù)探快,在單片機(jī)系統(tǒng)中統(tǒng)統(tǒng)不存在[1]鹤曼。盡管如此,設(shè)計(jì)控保單元人機(jī)界面時仍然可以借鑒大量的Windows程序開發(fā)思路榨狐。
2.2 控保單元頁面
控保單元的頁面與Windows應(yīng)用程序中的窗口有很多相似之處暇创。首先頁面處理的核心也是一個循環(huán)機(jī)制,它一直運(yùn)行并響應(yīng)外部有效按鍵輸入咱漱,直到得到切換窗口的鍵碼屈腻。這與Windows窗口消息循環(huán)機(jī)制有很大相似之處;當(dāng)然温履,基于單片機(jī)的頁面按鍵響應(yīng)機(jī)制不能借用Windows的消息響應(yīng)機(jī)制姑王,而只能每得到一個按鍵響應(yīng)就處理一個。一個頁面生命周期流程表示如圖2:
圖2表示的流程實(shí)際上也是控保單元人機(jī)界面程序的入口程序main()的主體部分亥护,只需在前面加上液晶盆战、通訊模塊的初始化及全局變量的初始化就構(gòu)成了main()程序粗排。流程圖中的幾個重要模塊說明如下:
初始化并顯示頁面包括以下幾個操作:
(1) 調(diào)用一清屏函數(shù)ClearPage(),清除上次頁面的遺留物诈火;
(2) 顯示當(dāng)前頁面內(nèi)容兽赁。如前所說,頁面由靜態(tài)文本和動態(tài)數(shù)據(jù)兩部分組成冷守,因此這里也分兩步顯示頁面內(nèi)容:
a.調(diào)用DisplayTxt(unsigned char*)函數(shù)顯示當(dāng)前頁面的靜態(tài)文本刀崖,靜態(tài)文本在屏幕上是逐行分布的,舉例來說拍摇,一個256*128點(diǎn)陣的液晶屏幕亮钦,顯示一個漢字需16*16,英文字符需8*16充活,因此蜂莉,整個屏幕可以分成8行,每行可顯示16個漢字或32個英文字符堪唐。調(diào)用8次DisplayTxt函數(shù)就可完成頁面的靜態(tài)文本的顯示。DisplayTxt函數(shù)所帶的行參就是指向某一行文本的指針翎蹈。
b.顯示當(dāng)前頁面的動態(tài)數(shù)據(jù)淮菠。首先頁面應(yīng)刷新保存在緩沖區(qū)內(nèi)的當(dāng)前頁面的動態(tài)數(shù)據(jù),此步驟調(diào)用Refr eshData(STRUCT*)荤堪,傳遞參數(shù)是一個指向頁面結(jié)構(gòu)的指針合陵。該函數(shù)負(fù)責(zé)從控保單元的數(shù)據(jù)采集CPU得到實(shí)時動態(tài)數(shù)據(jù),并保存在本地緩沖區(qū)以備顯示办适。然后頁面調(diào)用DisplayData()顯示動態(tài)數(shù)據(jù)玉唉。
鍵盤掃描循環(huán)是一無條件的while()循環(huán),它通過鍵盤掃描函數(shù)ScanKeyboard()返回鍵碼并進(jìn)行相應(yīng)的操作点溶,直到接收到的按鍵會導(dǎo)致頁面切換為止婚拭,這時,根據(jù)當(dāng)前頁面的一個指針?biāo)傅男马撁姹榷耍绦蚪Y(jié)束當(dāng)前頁面墅波,轉(zhuǎn)而進(jìn)入新頁面的生命周期。循環(huán)中侵念,除了包含鍵掃描函數(shù)ScanKeyboard()外帚棚,如果該頁面有動態(tài)數(shù)據(jù),還應(yīng)包含刷新數(shù)據(jù)的函數(shù)RefreshData(STRUCT*)捎虚,以保持?jǐn)?shù)據(jù)的實(shí)時性兆性。
處理按鍵是用一個兩層嵌套的switch-case語句來實(shí)現(xiàn)的。如前面1.2節(jié)所述泳柴,將按鍵分為5類赋荆,而每一類按鍵又根據(jù)當(dāng)前頁面不同類型分別進(jìn)行處理。
默認(rèn)處理一般可設(shè)為不響應(yīng)。
3 頁面操作的具體實(shí)現(xiàn)
3.1 按鍵處理
按鍵處理函數(shù)是整個應(yīng)用程序的核心糠睡,在這里挽鞠,程序定義某一頁面下對何按鍵作何處理。下面分析一下每種按鍵的處理狈孔。
3.1.1 數(shù)字鍵+小數(shù)點(diǎn)鍵+回退鍵
這些鍵只有在有可修改數(shù)據(jù)的頁面下才會響應(yīng)信认,因此對它們只有一種處理,即將輸入數(shù)字鍵翻譯成對應(yīng)的數(shù)值均抽。
3.1.2 上/下移動選擇鍵
不同的頁面下嫁赏,這兩個鍵的響應(yīng)處理也不同,分為:
(1)切換到新的頁面油挥。例如潦蝇,顯示測量電量時,一屏顯示不下深寥,需多屏顯示時攘乒,在顯示其中某一屏?xí)r按上/下移動選擇鍵,將顯示相連的屏幕怀程。 (2) 操作條目的移動袁挟。菜單的當(dāng)前操作條目是用反色顯示的方法表示的,上/下移動選擇鍵使反色顯示區(qū)移動到用戶選擇的操作條目遣备。
(3)可選項(xiàng)的選擇拘栅。可選項(xiàng)指的是界面提供給用戶通過上/下選擇鍵選定的值休贴,例如界面提供通訊速率的幾種選擇角涯,上/下選擇鍵使用戶在這些可選速率之間切換,直到選中所需通訊速率钥陪。
3.1.3 確認(rèn)鍵
確認(rèn)鍵的響應(yīng)有以下幾種可能:
(1)切換到新的頁面腻区。
(2)切換當(dāng)前條目的狀態(tài)。在設(shè)置參數(shù)時螟扮,選中條目有修改態(tài)和查詢態(tài)兩種狀態(tài)变抡,用確認(rèn)鍵使設(shè)置值在反色和正常之間切換,來代表修改態(tài)和查詢態(tài)之間的切換括绣。
(3) 確認(rèn)當(dāng)前的輸入酌省。
3.1.4 取消鍵
取消鍵只有一種響應(yīng)處理:退出當(dāng)前頁面,進(jìn)入新的頁面顯示(通常是返回到當(dāng)前頁面的前一頁面)监氢。
3.2 頁面結(jié)構(gòu)
上述頁面顯示流程的分析以及按鍵處理的分析布蔗,給出了一個頁面生命周期內(nèi)的所有活動以及這些活動所需的頁面屬性。下面我們就根據(jù)上述頁面顯示流程的分析以及按鍵處理的分析浪腐,定義頁面結(jié)構(gòu)纵揍。由上述的分析顿乒,頁面活動分顯示和響應(yīng)按鍵兩大部分,因此頁面結(jié)構(gòu)也分與之相關(guān)的兩部分泽谨。如下所示:
上面只定義了部分與顯示有關(guān)的變量璧榄,與按鍵響應(yīng)有關(guān)的變量也只定義了有關(guān)取消鍵的變量。這是因?yàn)楸疚牡哪康闹皇墙o出借鑒Windows程序的頁面設(shè)計(jì)框架思路吧雹,具體到頁面結(jié)構(gòu)中各變量的具體定義骨杂,只需根據(jù)前面流程的分析以及按鍵處理的分析用到了那些頁面的屬性,加入對應(yīng)的頁面變量即可雄卷。而按鍵處理隨實(shí)際情況而定搓蚪,人機(jī)界面的設(shè)計(jì)風(fēng)格也因人而異,所以具體定義頁面結(jié)構(gòu)變量由讀者需要而定丁鹉。
4 完成控保單元整個人機(jī)界面設(shè)計(jì)
上一節(jié)完成了以頁面為中心的控保單元人機(jī)界面主流程妒潭,并給出了頁面結(jié)構(gòu)的定義。要完成控保單元整個人機(jī)界面設(shè)計(jì)榆博,還缺少基本的顯示仲及、鍵掃描、通訊接口函數(shù)侧焚。不同于Windows應(yīng)用程序可以利用大量現(xiàn)成的Windows API函數(shù)锭偿,在控保單元人機(jī)界面的設(shè)計(jì)中,這些底層接口函數(shù)都需自己設(shè)計(jì)雏仆。另外在接口函數(shù)基礎(chǔ)上的一些頁面方法(函數(shù))也需自己設(shè)計(jì)葫柴。由于接口函數(shù)隨硬件而異聂弓,頁面方法隨用戶需要而定狠浮,下面只按功能列出它們:
(1) 有關(guān)按鍵處理的功能模塊。應(yīng)包括按鍵掃描模塊拔若、輸入轉(zhuǎn)換模塊(將輸入一串?dāng)?shù)字鍵翻譯成一個浮點(diǎn)數(shù))门冷。
(2) 有關(guān)顯示功能模塊。應(yīng)包括文本顯示模塊驳楞、數(shù)值顯示模塊等叮凸。
(3) 通訊模塊。應(yīng)包括通訊接口模塊献烦、轉(zhuǎn)換模塊(將數(shù)據(jù)打包傳送給通訊接口及將接受到的數(shù)據(jù)包還原)滓窍。
5 結(jié)束語
上文將面向?qū)ο蟮姆椒☉?yīng)用于控保單元人際界面設(shè)計(jì)的全過程,尤其借鑒了Windows應(yīng)用程序的設(shè)計(jì)思路巩那,雖然基于單片機(jī)的人際界面程序不可能實(shí)現(xiàn)Windows應(yīng)用程序的核心——消息響應(yīng)機(jī)制吏夯,但是仍然大大提高了界面友好性及程序的可移植性,顯示了面向?qū)ο蠓椒ㄔO(shè)計(jì)的優(yōu)越性即横。
參考文獻(xiàn)
[1]朱泳康.MPS4000系統(tǒng)中控保單元軟件的設(shè)計(jì)噪生、開發(fā)和實(shí)現(xiàn).清華大學(xué)碩士論文.2000裆赵,6.
[2]Peter Norton,Rob McGregor.孫鳳英,魏軍跺嗽,徐京等譯.MFC開發(fā)Windows 95/NT4應(yīng)用程序.北京:清華大學(xué)出版社战授,1998,4.
[3]朱藝穎桨嫁,沐連順植兰,孫培略.運(yùn)用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)人機(jī)系統(tǒng).電網(wǎng)技術(shù),1998瞧甩,(9).
近年來汉疮,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(OOP)已成為人們構(gòu)造程序的事實(shí)標(biāo)準(zhǔn)棍详,很多采用OOP方法設(shè)計(jì)的程序成為程序設(shè)計(jì)的典范,Windows應(yīng)用程序就是一例丛剿。借鑒Windows應(yīng)用程序界面設(shè)計(jì)思想冒萄,將面向?qū)ο蟮姆椒ㄒ肟乇卧藱C(jī)界面的設(shè)計(jì),使人機(jī)交互程序變得清晰簡潔橙数,同時大大提高了在不同功用控保單元上的可移植性宦言。
1 變電站自動化系統(tǒng)控保單元人機(jī)界面功能分析
1.1 控保單元
1.1.1 控保單元簡介
變電站綜合自動化系統(tǒng)已經(jīng)從早期的集中式單CPU發(fā)展到今天的分層分布式多CPU系統(tǒng)。目前變電站綜合自動化的發(fā)展趨勢是將功能強(qiáng)大的微機(jī)監(jiān)控系統(tǒng)與全數(shù)字化的微機(jī)保護(hù)測控技術(shù)商模、高速網(wǎng)絡(luò)通信技術(shù)結(jié)合起來奠旺,取代傳統(tǒng)的RTU,實(shí)現(xiàn)無人值班施流。目前國內(nèi)變電站綜合自動化發(fā)展的趨勢是將傳統(tǒng)上集中在一起的監(jiān)控 响疚、保護(hù)功能分散到各個現(xiàn)場中分布實(shí)施。具體來說就是在變電站中按照電氣間隔劃分單元瞪醋,每一個獨(dú)立控保裝置(如進(jìn)線忿晕、出線、變壓器银受、母聯(lián)践盼、電容器等)分別安裝各自獨(dú)立的控保單元。這些分散的控保單元再通過通信網(wǎng)絡(luò)與監(jiān)控主機(jī)連起來宾巍,構(gòu)成一個有機(jī)的整體因摸,從而實(shí)現(xiàn)集中管理、分散控制叭蜂。這種體系結(jié)構(gòu)符合變電站自動化系統(tǒng)的發(fā)展趨勢侦滩,設(shè)計(jì)規(guī)范,調(diào)整擴(kuò)建簡單唬研,設(shè)備布置整齊假祝,運(yùn)行維護(hù)方便。
1.1.2 控保單元人機(jī)界面正面示圖
圖1控保單元操作界面圖圖1所示的某種典型控保單元操作界面可分為4個區(qū)域:區(qū)域A為液晶顯示區(qū);區(qū)域B為鍵盤輸入?yún)^(qū)虎内;區(qū)域C為控制命令輸入?yún)^(qū)燕汗;區(qū)域D為指示燈及揚(yáng)聲器輸出區(qū)。注意:為了防止誤操作诅挖,特意將控制命令鍵同鍵盤輸入?yún)^(qū)域B分開厕扼,單獨(dú)列為區(qū)域C,并且加密碼保護(hù)懒潘。
1.2 鍵盤
鍵盤作為控保單元人機(jī)交互系統(tǒng)的主要組成部分,擔(dān)負(fù)著傳遞用戶命令至控保單元的任務(wù)互墓。按人機(jī)交互系統(tǒng)對其不同的響應(yīng)過程可將按鍵分為以下5類:
(1) 數(shù)字鍵+小數(shù)點(diǎn)鍵+回退鍵
這些鍵用做單個或連續(xù)數(shù)字的輸入必尼,并由交互系統(tǒng)軟件賦予其意義。
(2) 上/下移動選擇鍵
這兩個鍵用做菜單選擇篡撵、屏幕翻頁判莉、選項(xiàng)選定等。
(3) 確認(rèn)鍵
此鍵用做選定操作項(xiàng)育谬,類似于Windows中的[OK]鍵券盅。
(4) 取消鍵
用做取消當(dāng)前操作項(xiàng)或菜單退回到上級目錄,類似于Windows中的[CANCEL]鍵膛檀。
(5) 命令鍵
這些鍵用做合分閘锰镀、遠(yuǎn)動就地切換、事故復(fù)位等重要命令的輸入咖刃。
1.3 液晶屏幕
液晶屏幕在控保單元人機(jī)交互系統(tǒng)中擔(dān)負(fù)著傳遞控保單元信息至用戶的任務(wù)泳炉。為了使操作簡單方便,液晶屏幕信息的顯示采用了分層菜單結(jié)構(gòu)嚎杨,輔以上/下移動選擇鍵花鹅、確認(rèn)鍵、取消鍵就可完成整個菜單的完全檢索枫浙。菜單結(jié)構(gòu)是建立在“頁面”的基礎(chǔ)上的呐缸,所謂“頁面”,指的是液晶上顯示的一屏尼缨,由兩部分組成:靜態(tài)文本和動態(tài)數(shù)據(jù)疫谱。靜態(tài)文本包括說明性的文字及提示信息等,由漢字和字符組成综货,在人機(jī)交互軟件中是用字符串來表示的姚菱;動態(tài)數(shù)據(jù)指實(shí)時刷新的數(shù)值或可由用戶修改的信息,在人機(jī)交互軟件中是用數(shù)值變量來表示的葛暇,液晶頁面根據(jù)其組成的不同可分為以下幾類:
(1)純文本頁面皂汞。如目錄,這類頁面不包括數(shù)據(jù),因此顯示時只要刷新一次即可熄晕。
(2)文本+實(shí)時數(shù)據(jù)頁面傲丹。如測量電量顯示頁面,這類頁面由于包含實(shí)時刷新的數(shù)據(jù)尔网,顯示時酬俯,數(shù)據(jù)顯示部分須不斷刷新以保持實(shí)時有效,但用戶不能通過鍵盤對數(shù)據(jù)進(jìn)行修改等操作顷歌。
(3)文本+可修改數(shù)據(jù)頁面锰蓬。如定值修改頁面,這類頁面包含的可修改數(shù)據(jù)可由用戶通過鍵盤的數(shù)字鍵進(jìn)行改動眯漩。
(4)幫助信息頁面芹扭。如錯誤操作警告等,這類頁面通常由純文本組成赦抖,但與以上3類頁面都不同的是頁面在顯示一段時間后會自動切換到引起該幫助信息的頁面舱卡。
2 以頁面為對象的控保單元人機(jī)交互設(shè)計(jì)
2.1 Windows應(yīng)用程序界面與控保單元界面相似之處
Windows應(yīng)用程序的設(shè)計(jì)過程是典型的面向?qū)ο蟮脑O(shè)計(jì)方法,同時Windows應(yīng)用程序“窗口”界面與控保單元人機(jī)交互界面有很大相似之處:(1)窗口通過消息響應(yīng)機(jī)制響應(yīng)鍵盤或鼠標(biāo)等輸入設(shè)備的輸入信息队萤,而在控保單元的某個頁面也是響應(yīng)鍵盤的輸入轮锥;(2)兩者都是在一簡單的while()循環(huán)中響應(yīng)外部輸入的;(3)都用多層嵌套的switchcase語句來決定某一消息對應(yīng)進(jìn)行何種操作[2]要尔。由此舍杜,自然想到借鑒Windows應(yīng)用程序的設(shè)計(jì)思路設(shè)計(jì)控保單元人機(jī)界面。當(dāng)然赵辕,在單片機(jī)上設(shè)計(jì)菜單不同于Windows環(huán)境下軟件的開發(fā)蝴簇,因?yàn)樵S多Windows內(nèi)部的消息響應(yīng)機(jī)制以及由Windows封裝的數(shù)據(jù)結(jié)構(gòu)、對象和標(biāo)準(zhǔn)處理函數(shù)探快,在單片機(jī)系統(tǒng)中統(tǒng)統(tǒng)不存在[1]鹤曼。盡管如此,設(shè)計(jì)控保單元人機(jī)界面時仍然可以借鑒大量的Windows程序開發(fā)思路榨狐。
2.2 控保單元頁面
控保單元的頁面與Windows應(yīng)用程序中的窗口有很多相似之處暇创。首先頁面處理的核心也是一個循環(huán)機(jī)制,它一直運(yùn)行并響應(yīng)外部有效按鍵輸入咱漱,直到得到切換窗口的鍵碼屈腻。這與Windows窗口消息循環(huán)機(jī)制有很大相似之處;當(dāng)然温履,基于單片機(jī)的頁面按鍵響應(yīng)機(jī)制不能借用Windows的消息響應(yīng)機(jī)制姑王,而只能每得到一個按鍵響應(yīng)就處理一個。一個頁面生命周期流程表示如圖2:
圖2表示的流程實(shí)際上也是控保單元人機(jī)界面程序的入口程序main()的主體部分亥护,只需在前面加上液晶盆战、通訊模塊的初始化及全局變量的初始化就構(gòu)成了main()程序粗排。流程圖中的幾個重要模塊說明如下:
初始化并顯示頁面包括以下幾個操作:
(1) 調(diào)用一清屏函數(shù)ClearPage(),清除上次頁面的遺留物诈火;
(2) 顯示當(dāng)前頁面內(nèi)容兽赁。如前所說,頁面由靜態(tài)文本和動態(tài)數(shù)據(jù)兩部分組成冷守,因此這里也分兩步顯示頁面內(nèi)容:
a.調(diào)用DisplayTxt(unsigned char*)函數(shù)顯示當(dāng)前頁面的靜態(tài)文本刀崖,靜態(tài)文本在屏幕上是逐行分布的,舉例來說拍摇,一個256*128點(diǎn)陣的液晶屏幕亮钦,顯示一個漢字需16*16,英文字符需8*16充活,因此蜂莉,整個屏幕可以分成8行,每行可顯示16個漢字或32個英文字符堪唐。調(diào)用8次DisplayTxt函數(shù)就可完成頁面的靜態(tài)文本的顯示。DisplayTxt函數(shù)所帶的行參就是指向某一行文本的指針翎蹈。
b.顯示當(dāng)前頁面的動態(tài)數(shù)據(jù)淮菠。首先頁面應(yīng)刷新保存在緩沖區(qū)內(nèi)的當(dāng)前頁面的動態(tài)數(shù)據(jù),此步驟調(diào)用Refr eshData(STRUCT*)荤堪,傳遞參數(shù)是一個指向頁面結(jié)構(gòu)的指針合陵。該函數(shù)負(fù)責(zé)從控保單元的數(shù)據(jù)采集CPU得到實(shí)時動態(tài)數(shù)據(jù),并保存在本地緩沖區(qū)以備顯示办适。然后頁面調(diào)用DisplayData()顯示動態(tài)數(shù)據(jù)玉唉。
鍵盤掃描循環(huán)是一無條件的while()循環(huán),它通過鍵盤掃描函數(shù)ScanKeyboard()返回鍵碼并進(jìn)行相應(yīng)的操作点溶,直到接收到的按鍵會導(dǎo)致頁面切換為止婚拭,這時,根據(jù)當(dāng)前頁面的一個指針?biāo)傅男马撁姹榷耍绦蚪Y(jié)束當(dāng)前頁面墅波,轉(zhuǎn)而進(jìn)入新頁面的生命周期。循環(huán)中侵念,除了包含鍵掃描函數(shù)ScanKeyboard()外帚棚,如果該頁面有動態(tài)數(shù)據(jù),還應(yīng)包含刷新數(shù)據(jù)的函數(shù)RefreshData(STRUCT*)捎虚,以保持?jǐn)?shù)據(jù)的實(shí)時性兆性。
處理按鍵是用一個兩層嵌套的switch-case語句來實(shí)現(xiàn)的。如前面1.2節(jié)所述泳柴,將按鍵分為5類赋荆,而每一類按鍵又根據(jù)當(dāng)前頁面不同類型分別進(jìn)行處理。
默認(rèn)處理一般可設(shè)為不響應(yīng)。
3 頁面操作的具體實(shí)現(xiàn)
3.1 按鍵處理
按鍵處理函數(shù)是整個應(yīng)用程序的核心糠睡,在這里挽鞠,程序定義某一頁面下對何按鍵作何處理。下面分析一下每種按鍵的處理狈孔。
3.1.1 數(shù)字鍵+小數(shù)點(diǎn)鍵+回退鍵
這些鍵只有在有可修改數(shù)據(jù)的頁面下才會響應(yīng)信认,因此對它們只有一種處理,即將輸入數(shù)字鍵翻譯成對應(yīng)的數(shù)值均抽。
3.1.2 上/下移動選擇鍵
不同的頁面下嫁赏,這兩個鍵的響應(yīng)處理也不同,分為:
(1)切換到新的頁面油挥。例如潦蝇,顯示測量電量時,一屏顯示不下深寥,需多屏顯示時攘乒,在顯示其中某一屏?xí)r按上/下移動選擇鍵,將顯示相連的屏幕怀程。 (2) 操作條目的移動袁挟。菜單的當(dāng)前操作條目是用反色顯示的方法表示的,上/下移動選擇鍵使反色顯示區(qū)移動到用戶選擇的操作條目遣备。
(3)可選項(xiàng)的選擇拘栅。可選項(xiàng)指的是界面提供給用戶通過上/下選擇鍵選定的值休贴,例如界面提供通訊速率的幾種選擇角涯,上/下選擇鍵使用戶在這些可選速率之間切換,直到選中所需通訊速率钥陪。
3.1.3 確認(rèn)鍵
確認(rèn)鍵的響應(yīng)有以下幾種可能:
(1)切換到新的頁面腻区。
(2)切換當(dāng)前條目的狀態(tài)。在設(shè)置參數(shù)時螟扮,選中條目有修改態(tài)和查詢態(tài)兩種狀態(tài)变抡,用確認(rèn)鍵使設(shè)置值在反色和正常之間切換,來代表修改態(tài)和查詢態(tài)之間的切換括绣。
(3) 確認(rèn)當(dāng)前的輸入酌省。
3.1.4 取消鍵
取消鍵只有一種響應(yīng)處理:退出當(dāng)前頁面,進(jìn)入新的頁面顯示(通常是返回到當(dāng)前頁面的前一頁面)监氢。
3.2 頁面結(jié)構(gòu)
上述頁面顯示流程的分析以及按鍵處理的分析布蔗,給出了一個頁面生命周期內(nèi)的所有活動以及這些活動所需的頁面屬性。下面我們就根據(jù)上述頁面顯示流程的分析以及按鍵處理的分析浪腐,定義頁面結(jié)構(gòu)纵揍。由上述的分析顿乒,頁面活動分顯示和響應(yīng)按鍵兩大部分,因此頁面結(jié)構(gòu)也分與之相關(guān)的兩部分泽谨。如下所示:
上面只定義了部分與顯示有關(guān)的變量璧榄,與按鍵響應(yīng)有關(guān)的變量也只定義了有關(guān)取消鍵的變量。這是因?yàn)楸疚牡哪康闹皇墙o出借鑒Windows程序的頁面設(shè)計(jì)框架思路吧雹,具體到頁面結(jié)構(gòu)中各變量的具體定義骨杂,只需根據(jù)前面流程的分析以及按鍵處理的分析用到了那些頁面的屬性,加入對應(yīng)的頁面變量即可雄卷。而按鍵處理隨實(shí)際情況而定搓蚪,人機(jī)界面的設(shè)計(jì)風(fēng)格也因人而異,所以具體定義頁面結(jié)構(gòu)變量由讀者需要而定丁鹉。
4 完成控保單元整個人機(jī)界面設(shè)計(jì)
上一節(jié)完成了以頁面為中心的控保單元人機(jī)界面主流程妒潭,并給出了頁面結(jié)構(gòu)的定義。要完成控保單元整個人機(jī)界面設(shè)計(jì)榆博,還缺少基本的顯示仲及、鍵掃描、通訊接口函數(shù)侧焚。不同于Windows應(yīng)用程序可以利用大量現(xiàn)成的Windows API函數(shù)锭偿,在控保單元人機(jī)界面的設(shè)計(jì)中,這些底層接口函數(shù)都需自己設(shè)計(jì)雏仆。另外在接口函數(shù)基礎(chǔ)上的一些頁面方法(函數(shù))也需自己設(shè)計(jì)葫柴。由于接口函數(shù)隨硬件而異聂弓,頁面方法隨用戶需要而定狠浮,下面只按功能列出它們:
(1) 有關(guān)按鍵處理的功能模塊。應(yīng)包括按鍵掃描模塊拔若、輸入轉(zhuǎn)換模塊(將輸入一串?dāng)?shù)字鍵翻譯成一個浮點(diǎn)數(shù))门冷。
(2) 有關(guān)顯示功能模塊。應(yīng)包括文本顯示模塊驳楞、數(shù)值顯示模塊等叮凸。
(3) 通訊模塊。應(yīng)包括通訊接口模塊献烦、轉(zhuǎn)換模塊(將數(shù)據(jù)打包傳送給通訊接口及將接受到的數(shù)據(jù)包還原)滓窍。
5 結(jié)束語
上文將面向?qū)ο蟮姆椒☉?yīng)用于控保單元人際界面設(shè)計(jì)的全過程,尤其借鑒了Windows應(yīng)用程序的設(shè)計(jì)思路巩那,雖然基于單片機(jī)的人際界面程序不可能實(shí)現(xiàn)Windows應(yīng)用程序的核心——消息響應(yīng)機(jī)制吏夯,但是仍然大大提高了界面友好性及程序的可移植性,顯示了面向?qū)ο蠓椒ㄔO(shè)計(jì)的優(yōu)越性即横。
參考文獻(xiàn)
[1]朱泳康.MPS4000系統(tǒng)中控保單元軟件的設(shè)計(jì)噪生、開發(fā)和實(shí)現(xiàn).清華大學(xué)碩士論文.2000裆赵,6.
[2]Peter Norton,Rob McGregor.孫鳳英,魏軍跺嗽,徐京等譯.MFC開發(fā)Windows 95/NT4應(yīng)用程序.北京:清華大學(xué)出版社战授,1998,4.
[3]朱藝穎桨嫁,沐連順植兰,孫培略.運(yùn)用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)人機(jī)系統(tǒng).電網(wǎng)技術(shù),1998瞧甩,(9).
聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng)钉跷,轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享,并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)湖弱,也不構(gòu)成任何其他建議册榔。本站部分作品是由網(wǎng)友自主投稿和發(fā)布、編輯整理上傳祖修,對此類作品本站僅提供交流平臺瘤薪,不為其版權(quán)負(fù)責(zé)。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻炊健、圖片揽仔、文字如涉及作品版權(quán)問題,請第一時間告知凰茫,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容琅戏,以保證您的權(quán)益!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn必工。
網(wǎng)友評論
匿名:
最新反饋
注冊獲取更多行業(yè)信息
- 暫無反饋
無須注冊申窘,輕松溝通
編輯推薦
- 2025新年特刊:打造新質(zhì)生產(chǎn)力孔轴,智啟未來新篇章
- 定義制造業(yè)未來的數(shù)控加工中心技術(shù)專題
- 航空航天及交通領(lǐng)域先進(jìn)制造技術(shù)應(yīng)用專題
- 解碼消費(fèi)電子產(chǎn)品生產(chǎn)的數(shù)字化之路技術(shù)專題
- 精密智能機(jī)床碎捺,助力制造升級技術(shù)專題
- 汽車輕量化驅(qū)動下的零部件加工應(yīng)用專題
- 高性能銑刀實(shí)現(xiàn)高精加工生產(chǎn)技術(shù)專題
- 航空航天發(fā)動機(jī)解決方案專題
- 高效齒輪加工生產(chǎn)技術(shù)方案專題
- 金屬加工液的性能不止?jié)櫥夹g(shù)應(yīng)用專題