3.2 界面區(qū)域與外界輸入的相互配合響應(yīng)
由以上可知,顯示的圖形雖然形形色色,但是他們都可以抽象成具有共同屬性的某種數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)就好比是圖形界面的靈魂,掌握了數(shù)據(jù)結(jié)構(gòu),就可以讓圖形界面隨之而變。那么如何設(shè)計(jì)、控制、改變這些數(shù)據(jù)結(jié)構(gòu)就成為實(shí)現(xiàn)用戶(hù)圖形界面(gui)的關(guān)鍵了。
要響應(yīng)外界用戶(hù)的輸入,我們需要制定一套機(jī)制運(yùn)行法則,而這套機(jī)制運(yùn)行法則就是狀態(tài)機(jī)(system status machine),也是用戶(hù)用以操作儀器的操作平臺(tái)(operation platform)。依據(jù)這套運(yùn)行法則,我們的系統(tǒng)根據(jù)外界的輸入來(lái)更改各種界面下使用的數(shù)據(jù)結(jié)構(gòu),從而實(shí)現(xiàn)用戶(hù)對(duì)圖形界面的操作。當(dāng)然,在實(shí)際的設(shè)計(jì)中,操作平臺(tái)(operation platform)不僅僅是改變gui的數(shù)據(jù)結(jié)構(gòu),還要考慮任務(wù)調(diào)度以及其他任務(wù)模塊中的數(shù)據(jù)結(jié)構(gòu)的改變。
4 數(shù)字示波器的用戶(hù)圖形界面(gui)的軟件設(shè)計(jì)流程
設(shè)計(jì)出一個(gè)好的用戶(hù)圖形界面,是一個(gè)龐大而巨細(xì)的工程。涉及到方方面面的相互之間的關(guān)系,也涉及到實(shí)現(xiàn)過(guò)程中的許多細(xì)節(jié)的問(wèn)題。如何理清這些繁多的變化的關(guān)系,是設(shè)計(jì)的關(guān)鍵。rigol團(tuán)隊(duì)曾經(jīng)使用一些全局變量,來(lái)做為各種狀態(tài)、各種模式下的標(biāo)示,用以改變用戶(hù)的圖形界面。但是因?yàn)樽兞康谋姸啵瑢?dǎo)致變量之間的搭配的可能性成倍的增加,狀態(tài)的轉(zhuǎn)移關(guān)系也就會(huì)成倍的增加。這對(duì)于編程者來(lái)說(shuō),與其說(shuō)是在編程,還不如說(shuō)是在做一道及其龐雜的邏輯組合題。
所以,這樣的思路在理論上是可行的,但在實(shí)際中是不可取的。我們應(yīng)該盡量的去其枝葉,找到能夠貫穿整個(gè)系統(tǒng),標(biāo)示不同的狀態(tài)以及模式的變量或者結(jié)構(gòu)。最終,我們以鍵盤(pán)的輸入鍵值為主線,輔以各種的全局變量,來(lái)控制系統(tǒng)狀態(tài)的變化。鍵值雖然有許多許多,但是因?yàn)橹挥羞@么一個(gè)變量做為狀態(tài)量,系統(tǒng)狀態(tài)的變化,就可以在掌控之中了。所以,在這個(gè)系統(tǒng)中,鍵值變量key_id成為了主角,用戶(hù)界面將圍繞其進(jìn)行改變。
鍵值變量key_id要根據(jù)用戶(hù)的輸入進(jìn)行改變。在這里我們就不描繪狀態(tài)
變量是如何轉(zhuǎn)移的。我們介紹對(duì)于既定的鍵值變量key_id是如何完成用戶(hù)圖形界面的輸出的。
5 結(jié)語(yǔ)
目前,國(guó)內(nèi)的數(shù)字示波器,除了測(cè)量信號(hào)的性能指標(biāo)較低外,在系統(tǒng)的整體性、用戶(hù)的可操作性等功能上不及國(guó)外產(chǎn)品考慮得周詳。
由以上可知,顯示的圖形雖然形形色色,但是他們都可以抽象成具有共同屬性的某種數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)就好比是圖形界面的靈魂,掌握了數(shù)據(jù)結(jié)構(gòu),就可以讓圖形界面隨之而變。那么如何設(shè)計(jì)、控制、改變這些數(shù)據(jù)結(jié)構(gòu)就成為實(shí)現(xiàn)用戶(hù)圖形界面(gui)的關(guān)鍵了。
要響應(yīng)外界用戶(hù)的輸入,我們需要制定一套機(jī)制運(yùn)行法則,而這套機(jī)制運(yùn)行法則就是狀態(tài)機(jī)(system status machine),也是用戶(hù)用以操作儀器的操作平臺(tái)(operation platform)。依據(jù)這套運(yùn)行法則,我們的系統(tǒng)根據(jù)外界的輸入來(lái)更改各種界面下使用的數(shù)據(jù)結(jié)構(gòu),從而實(shí)現(xiàn)用戶(hù)對(duì)圖形界面的操作。當(dāng)然,在實(shí)際的設(shè)計(jì)中,操作平臺(tái)(operation platform)不僅僅是改變gui的數(shù)據(jù)結(jié)構(gòu),還要考慮任務(wù)調(diào)度以及其他任務(wù)模塊中的數(shù)據(jù)結(jié)構(gòu)的改變。
4 數(shù)字示波器的用戶(hù)圖形界面(gui)的軟件設(shè)計(jì)流程
設(shè)計(jì)出一個(gè)好的用戶(hù)圖形界面,是一個(gè)龐大而巨細(xì)的工程。涉及到方方面面的相互之間的關(guān)系,也涉及到實(shí)現(xiàn)過(guò)程中的許多細(xì)節(jié)的問(wèn)題。如何理清這些繁多的變化的關(guān)系,是設(shè)計(jì)的關(guān)鍵。rigol團(tuán)隊(duì)曾經(jīng)使用一些全局變量,來(lái)做為各種狀態(tài)、各種模式下的標(biāo)示,用以改變用戶(hù)的圖形界面。但是因?yàn)樽兞康谋姸啵瑢?dǎo)致變量之間的搭配的可能性成倍的增加,狀態(tài)的轉(zhuǎn)移關(guān)系也就會(huì)成倍的增加。這對(duì)于編程者來(lái)說(shuō),與其說(shuō)是在編程,還不如說(shuō)是在做一道及其龐雜的邏輯組合題。
所以,這樣的思路在理論上是可行的,但在實(shí)際中是不可取的。我們應(yīng)該盡量的去其枝葉,找到能夠貫穿整個(gè)系統(tǒng),標(biāo)示不同的狀態(tài)以及模式的變量或者結(jié)構(gòu)。最終,我們以鍵盤(pán)的輸入鍵值為主線,輔以各種的全局變量,來(lái)控制系統(tǒng)狀態(tài)的變化。鍵值雖然有許多許多,但是因?yàn)橹挥羞@么一個(gè)變量做為狀態(tài)量,系統(tǒng)狀態(tài)的變化,就可以在掌控之中了。所以,在這個(gè)系統(tǒng)中,鍵值變量key_id成為了主角,用戶(hù)界面將圍繞其進(jìn)行改變。
鍵值變量key_id要根據(jù)用戶(hù)的輸入進(jìn)行改變。在這里我們就不描繪狀態(tài)
變量是如何轉(zhuǎn)移的。我們介紹對(duì)于既定的鍵值變量key_id是如何完成用戶(hù)圖形界面的輸出的。
5 結(jié)語(yǔ)
目前,國(guó)內(nèi)的數(shù)字示波器,除了測(cè)量信號(hào)的性能指標(biāo)較低外,在系統(tǒng)的整體性、用戶(hù)的可操作性等功能上不及國(guó)外產(chǎn)品考慮得周詳。