一種網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明提供一種網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示方法和裝置,包括公式編輯器模塊及數(shù)據(jù)處理及圖形顯示單元;所述公式編輯器模塊包括:內(nèi)置參數(shù)、函數(shù)、運(yùn)算符單元、自定義參數(shù)和函數(shù)的導(dǎo)入單元、公式編輯器表達(dá)式的輸入單元、表達(dá)式的智能糾錯(cuò)和信息提示單元、表達(dá)式的計(jì)算單元相互連接及相互通訊;所述數(shù)據(jù)處理與圖形顯示單元包括:數(shù)據(jù)格式選擇、格式化數(shù)據(jù)數(shù)組、偏移和比例、顯示內(nèi)存和界面顯示和刷新五個(gè)部分。采用上述方案:1.解決了用戶所輸入的表達(dá)式中直接包含復(fù)數(shù)常量(如:S21/(1-S11)+(1+3i))不能計(jì)算的技術(shù)難題;2.提供的公式編輯器程序模塊解決了用戶不能導(dǎo)入自定義參數(shù)的技術(shù)問(wèn)題,允許用戶自定義參數(shù)。
【專(zhuān)利說(shuō)明】一種網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示【技術(shù)領(lǐng)域】,尤其涉及的是一 種網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示方法和裝置。
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)分析儀是用來(lái)測(cè)量射頻、微波和毫米波網(wǎng)絡(luò)特性的儀器,它通過(guò)施加合適的 激勵(lì)信號(hào)到被測(cè)網(wǎng)絡(luò)并接收和處理網(wǎng)絡(luò)的響應(yīng)信號(hào),計(jì)算和量化被測(cè)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)。網(wǎng) 絡(luò)分析儀提供單端口、響應(yīng)隔離、全雙端口等多種校準(zhǔn)方式,內(nèi)設(shè)對(duì)數(shù)幅度、Smith圓圖、極 坐標(biāo)等多種數(shù)據(jù)顯示格式。本文所述的軌跡是指一連串的測(cè)量數(shù)據(jù)點(diǎn),軌跡的設(shè)置將影響 測(cè)量數(shù)據(jù)的數(shù)學(xué)運(yùn)算和顯示,只有軌跡處于激活狀態(tài)時(shí),才可以更改它的設(shè)置。所述的S參 數(shù)(散射參數(shù))用來(lái)描述一個(gè)器件如何改變輸入的信號(hào),它描述了被測(cè)件的反射和傳輸特 性。
[0003] 隨著網(wǎng)絡(luò)分析儀測(cè)試領(lǐng)域的擴(kuò)展和各種新型測(cè)試技術(shù)的出現(xiàn),特別是對(duì)多端口被 測(cè)件、放大器等被測(cè)件的一些專(zhuān)業(yè)技術(shù)指標(biāo)測(cè)試需求的出現(xiàn),網(wǎng)絡(luò)分析儀固有的測(cè)量功能 已經(jīng)無(wú)法滿足一些用戶的需求,等待網(wǎng)絡(luò)分析儀推出相應(yīng)的測(cè)量顯然是不現(xiàn)實(shí)的,因此如 何利用網(wǎng)絡(luò)分析儀現(xiàn)有測(cè)量參數(shù),根據(jù)用戶需求對(duì)基本參數(shù)進(jìn)行運(yùn)算,得到用戶需求的最 終測(cè)量結(jié)果,公式編譯器為這一需求的實(shí)現(xiàn)提供了可能。
[0004] 現(xiàn)有技術(shù)的技術(shù)方案:
[0005] 1現(xiàn)有的網(wǎng)絡(luò)分析儀的公式編輯采用的是方程的方式進(jìn)行編輯,并且方程表達(dá)式 的常量數(shù)據(jù)不能直接輸入復(fù)數(shù)常量作為表達(dá)式的一部分,例如輸入S2lAl_Sll) + (l+3i) 是無(wú)法計(jì)算的,這樣就不能對(duì)測(cè)量軌跡的幅度和相位同時(shí)進(jìn)行直觀的數(shù)學(xué)改變。
[0006] 2.現(xiàn)有的網(wǎng)絡(luò)分析儀方程編輯器模塊要求表達(dá)式輸入的參數(shù)必須是程序本身已 內(nèi)置進(jìn)去的測(cè)量參數(shù),不能是用戶自定義的數(shù)據(jù)參數(shù)。并且沒(méi)有給出參數(shù)的導(dǎo)入接口,不能 滿足用戶一些特殊需求。
[0007] 3.現(xiàn)有的網(wǎng)絡(luò)分析儀方程編輯器模塊,當(dāng)用戶輸入一個(gè)不可計(jì)算的公式,方程編 輯器模塊僅能提示公式是否可以計(jì)算,不能智能指出錯(cuò)誤所在位置和錯(cuò)誤的類(lèi)型,也不能 給出具體的錯(cuò)誤提示信息,必須用戶自己糾錯(cuò)和修正。
[0008] 4.在高效率地實(shí)時(shí)繪圖時(shí)會(huì)有圖形刷新相對(duì)較慢,或者在圖形刷新過(guò)快時(shí)出現(xiàn)圖 形閃爍的現(xiàn)象。
[0009] 因此,現(xiàn)有技術(shù)存在缺陷,需要改進(jìn)。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種網(wǎng)絡(luò)分析儀公式編 輯器及其數(shù)據(jù)圖形顯示方法和裝置。
[0011] 本發(fā)明的技術(shù)方案如下:
[0012] 一種網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其中,包括公式編輯器模塊 及數(shù)據(jù)處理及圖形顯示單元;所述公式編輯器模塊包括:內(nèi)置參數(shù)、函數(shù)、運(yùn)算符單元、自 定義參數(shù)和函數(shù)的導(dǎo)入單元、公式編輯器表達(dá)式的輸入單元、表達(dá)式的智能糾錯(cuò)和信息提 示單元、表達(dá)式的計(jì)算單元相互連接及相互通訊;所述數(shù)據(jù)處理與圖形顯示單元包括:數(shù) 據(jù)格式選擇、格式化數(shù)據(jù)數(shù)組、偏移和比例、顯示內(nèi)存和界面顯示和刷新五個(gè)部分。
[0013] 所述的網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其中,所述內(nèi)置參數(shù)、函 數(shù)、運(yùn)算符單元,用于選擇要輸入的參數(shù)、函數(shù)和運(yùn)算符;所述自定義參數(shù)和函數(shù)的導(dǎo)入功 能單元,用于導(dǎo)入自定義的參數(shù)、函數(shù)后使用;所述公式編輯器表達(dá)式的輸入單元,用于支 持鍵盤(pán)輸入或通過(guò)鼠標(biāo)左鍵選擇的方式輸入?yún)?shù)、函數(shù)、數(shù)組及運(yùn)算符;所述表達(dá)式的智能 糾錯(cuò)和信息提示功能單元,用于分析處理用戶輸入的表達(dá)式的語(yǔ)法和結(jié)構(gòu);所述表達(dá)式的 計(jì)算單元,通過(guò)程序定時(shí)的方式每隔一定的時(shí)間判斷當(dāng)前所輸入的公式是否可以計(jì)算;所 述表達(dá)式的計(jì)算單元直接支持復(fù)數(shù)常量的輸入和運(yùn)算處理。
[0014] 所述的網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其中,所述智能糾錯(cuò)、信息 提示單元和表達(dá)式計(jì)算單元的處理步驟為:步驟1 :表達(dá)式的輸入后;步驟2 :刪除多余的 空格;步驟3 :大寫(xiě)字符改為小寫(xiě)字符并在表達(dá)式字符串末端添加結(jié)束符;步驟4 :判斷是 否有簡(jiǎn)單語(yǔ)法錯(cuò)誤,如有簡(jiǎn)單語(yǔ)法錯(cuò)誤,則進(jìn)入智能糾錯(cuò)和信息提示單元,發(fā)送錯(cuò)誤代碼, 在錯(cuò)誤處高亮顯示,查詢(xún)錯(cuò)誤代碼表給出提示信息后進(jìn)入步驟5 ;如判斷沒(méi)有簡(jiǎn)單語(yǔ)法錯(cuò) 誤,則進(jìn)入步驟6 ;步驟5 :表達(dá)式修改后進(jìn)入步驟2 ;步驟6 :參數(shù)或函數(shù)的數(shù)據(jù)的獲?。徊?驟7 :判斷是否有復(fù)雜語(yǔ)法錯(cuò)誤,如是則進(jìn)入智能糾錯(cuò)和信息提示單元,發(fā)送錯(cuò)誤代碼,在 錯(cuò)誤處高亮顯示,查詢(xún)錯(cuò)誤代碼表給出提示信息后進(jìn)入步驟5 ;如否則進(jìn)入步驟8 ;步驟8 : 構(gòu)造二叉樹(shù)并運(yùn)算,將運(yùn)算結(jié)果給顯示處理模塊;步驟9 :判斷是否是最后一個(gè)數(shù)據(jù)點(diǎn),如 是則結(jié)束,如否則進(jìn)入步驟6。
[0015] 所述的網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其中,所述數(shù)據(jù)格式選擇, 用于選擇不同數(shù)據(jù)格式進(jìn)行圖形顯示;所述格式化數(shù)據(jù)數(shù)組,用于數(shù)據(jù)格式化處理后存入 格式化數(shù)組中;所述偏移和比例,用于為圖形顯示做最基本的顯示參數(shù)設(shè)置;所述顯示內(nèi) 存,用于保存著分析儀的顯示映像,顯示的內(nèi)容包括圖形、文本及軟件菜單,如果顯示圖形 被寫(xiě)入,則同時(shí)保存在顯示內(nèi)存中。
[0016] 所述的網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其中,所述顯示內(nèi)存和界 面顯示和刷新的具體步驟為:步驟A :初始化變量;步驟B :等待數(shù)據(jù)顯示信號(hào)量;步驟C :判 斷是否背景重繪,如果則進(jìn)入步驟D ;如否則進(jìn)入步驟E ;步驟D :繪制背景區(qū)域;步驟E :拷 貝背景區(qū)域到內(nèi)存位圖;步驟F :判斷是否顯示內(nèi)存軌跡,如是則進(jìn)入步驟G,如否則進(jìn)入步 驟Η ;步驟G :在內(nèi)存位圖中畫(huà)內(nèi)存軌跡;步驟Η :拷貝內(nèi)存位圖到屏幕顯示;步驟I :判斷是 否結(jié)束,如是則結(jié)束,如否則進(jìn)入步驟Β。采用上述方案:
[0017] 1.解決了用戶所輸入的表達(dá)式中直接包含復(fù)數(shù)常量(如:S2lAl-Sll) + (l+3i)) 不能計(jì)算的技術(shù)難題。本專(zhuān)利提供的公式編輯器允許用戶直接輸入復(fù)數(shù)常量,僅要求復(fù)數(shù) 常量用括號(hào)" 0 "括起來(lái),比如:S2lAl-Sll) + (l+3i)。在表達(dá)式計(jì)算單元會(huì)把表達(dá)式中的 復(fù)數(shù)(a+bj)轉(zhuǎn)換成<a:b>形式進(jìn)行處理,這一處理方法有效地解決了用戶直接輸入復(fù)數(shù)常 量到表達(dá)式中不能進(jìn)行解析、計(jì)算的技術(shù)難題。表達(dá)式中的變量S21和S11都可以是復(fù)數(shù) 類(lèi)型。整個(gè)表達(dá)式的解析和計(jì)算都是采用復(fù)數(shù)格式進(jìn)行。當(dāng)一個(gè)可計(jì)算的公式輸入到公式 編輯框,并勾選使能按鈕后,當(dāng)前激活的軌跡曲線或圖形對(duì)應(yīng)的每個(gè)測(cè)量點(diǎn)的數(shù)據(jù)將被公 式運(yùn)算結(jié)果所替換,并且軌跡可隨數(shù)據(jù)進(jìn)行實(shí)時(shí)更新。
[0018] 2.提供的公式編輯器程序模塊解決了用戶不能導(dǎo)入自定義參數(shù)的技術(shù)問(wèn)題,允許 用戶自定義參數(shù),如這種類(lèi)型的參數(shù)data[201] = {0,1,0,1....},采用這種自定義參數(shù)可 以離散的處理或觀察一些數(shù)據(jù)點(diǎn),可以滿足用戶的一些特殊需求。在編輯器的用戶界面上 有專(zhuān)用的窗口輸入用戶要導(dǎo)入的新參數(shù)。同時(shí)還提供了自定義函數(shù)的導(dǎo)入功能,函數(shù)的導(dǎo) 入是采用文件加動(dòng)態(tài)庫(kù)的方式完成的,操作方便。這種開(kāi)放的程序設(shè)計(jì)思想大大提高了此 程序模塊自身的復(fù)用性,可以應(yīng)用于多種測(cè)試儀器的公式編輯和解析、計(jì)算,既方便了程序 的再次開(kāi)發(fā),又為儀器用戶提供了方便。
[0019] 3.提供的公式編輯器提供了用戶輸入表達(dá)式的智能糾錯(cuò)及信息提示功能。當(dāng)用戶 輸入一個(gè)不可計(jì)算的公式,公式編輯器能夠智能的指出錯(cuò)誤所在位置,并能準(zhǔn)確地給出語(yǔ) 法錯(cuò)誤類(lèi)型的信息提示,用戶可以根據(jù)這些提示信息快捷的修正公式,提高工作效率;另外 在表達(dá)式語(yǔ)法判斷的算法處理中,采用了 STL (Standard Template Library)標(biāo)準(zhǔn)模板庫(kù)基 本數(shù)據(jù)結(jié)構(gòu)和基本算法,提高了程序的運(yùn)行效率。并且采用了兩級(jí)語(yǔ)法判斷的思想,初級(jí)語(yǔ) 法判斷會(huì)檢查明顯的語(yǔ)法錯(cuò)誤,復(fù)雜的語(yǔ)法判斷會(huì)檢查剩余的所有錯(cuò)誤,這種分級(jí)處理語(yǔ) 法錯(cuò)誤的方法,既減輕了語(yǔ)法分析的難度又節(jié)省了整個(gè)程序處理的時(shí)間。
[0020] 4.對(duì)于高效率地實(shí)時(shí)繪圖出現(xiàn)波形或圖形閃爍的技術(shù)問(wèn)題,本專(zhuān)利是采用雙緩沖 顯示的方案解決這一問(wèn)題。雙緩沖的實(shí)現(xiàn)原理就是除了在屏幕上有圖形進(jìn)行顯示外,在內(nèi) 存中也要有圖形在繪制。就是把要顯示圖形先在內(nèi)存中繪制好,然后再一次性的將內(nèi)存中 的圖形按照一個(gè)點(diǎn)、一個(gè)點(diǎn)的覆蓋到屏幕上去(這個(gè)過(guò)程非??欤?yàn)槭潜容^規(guī)整的內(nèi)存 拷貝)。這樣在內(nèi)存中繪圖時(shí),隨便用什么反差大的背景色清楚都不會(huì)閃爍,因?yàn)閮?nèi)存中的 圖形用戶是看不到的。當(dāng)由內(nèi)存拷貝到屏幕上時(shí),因?yàn)閮?nèi)存中最終的圖形與屏幕顯示的圖 形差別很?。ㄈ绻麤](méi)有變動(dòng),當(dāng)然就沒(méi)有差別),這樣處理的效果就不會(huì)讓人眼有圖形閃爍 的感覺(jué),也就是利用人類(lèi)自身的視覺(jué)保留機(jī)能。并且在軟件架構(gòu)中采用了多線程的編程思 想進(jìn)行人機(jī)交互和數(shù)據(jù)圖形顯示,主線程負(fù)責(zé)直接與用戶交互,然后又創(chuàng)建了一個(gè)專(zhuān)門(mén)的 工作線程用于數(shù)據(jù)圖形顯示,這樣就把主線程解放出來(lái),可以實(shí)時(shí)響應(yīng)人機(jī)交互信息。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0021] 圖1為本發(fā)明裝置的結(jié)構(gòu)示意圖。
[0022] 圖2為本發(fā)明中智能糾錯(cuò)、信息提示單元和表達(dá)式計(jì)算單元的程序處理流程圖。
[0023] 圖3為本發(fā)明界面顯示和刷新的流程圖。
【具體實(shí)施方式】
[0024] 以下結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0025] 實(shí)施例1
[0026] 本發(fā)明裝置包括公式編輯器模塊1及數(shù)據(jù)處理及圖形顯示單元2 ;
[0027] 公式編輯器模塊包括:內(nèi)置參數(shù)、函數(shù)、運(yùn)算符單元101、自定義參數(shù)和函數(shù)的導(dǎo) 入單元103、公式編輯器表達(dá)式的輸入單元102、表達(dá)式的智能糾錯(cuò)和信息提示單元104、表 達(dá)式的計(jì)算單元相互連接及相互通訊105 ;
[0028] 內(nèi)置參數(shù)、函數(shù)、運(yùn)算符單元101 :用戶通過(guò)下拉菜單方式選擇要輸入的參數(shù)、函 數(shù)和運(yùn)算符,這些參數(shù)和函數(shù)都是程序本身默認(rèn)自帶的,是最基本的測(cè)量參數(shù)、數(shù)學(xué)函數(shù)以 及專(zhuān)業(yè)功能函數(shù)。運(yùn)算符除了包含基本的數(shù)學(xué)運(yùn)算符還包含" 等符號(hào)。
[0029] 自定義參數(shù)和函數(shù)的導(dǎo)入功能單元103 :用于導(dǎo)入用戶自定義的參數(shù)、函數(shù),導(dǎo) 入后可以像內(nèi)置參數(shù)和函數(shù)那樣使用,增加了程序的靈活性。特別是測(cè)量參數(shù)的導(dǎo)入功 能是本發(fā)明的創(chuàng)新點(diǎn)之一,此功能能夠提供數(shù)組參數(shù)的導(dǎo)入,比如一個(gè)數(shù)組是data[201], 用戶可以初始化數(shù)組的各個(gè)元素值,比如data[201] = {0, 1.0, 1,……},如果公式是 S21*data[201]*(l-3i),計(jì)算結(jié)果就會(huì)實(shí)時(shí)的顯示到軌跡界面上,這種功能可以離散的對(duì) 每個(gè)測(cè)量數(shù)據(jù)點(diǎn)進(jìn)行單獨(dú)數(shù)據(jù)處理處理,極為靈活。
[0030] 公式編輯器表達(dá)式的輸入單兀102 :支持鍵盤(pán)輸入或通過(guò)鼠標(biāo)左鍵選擇的方式輸 入?yún)?shù)、函數(shù)、數(shù)組及運(yùn)算符等。另外公式編輯器還有表達(dá)式保存的功能,用戶對(duì)表達(dá)式保 存后,可以通過(guò)表達(dá)式輸入框的下拉選項(xiàng)進(jìn)行選擇已保存的所有表達(dá)式,選擇已保存的所 有表達(dá)式后則此表達(dá)式公式就會(huì)自動(dòng)的輸入到表達(dá)式輸入框。
[0031] 表達(dá)式的智能糾錯(cuò)和信息提示單元104 :用于分析處理用戶輸入的表達(dá)式的語(yǔ) 法和結(jié)構(gòu),首先判斷表達(dá)式是否可以計(jì)算,如果表達(dá)式不可計(jì)算就要分析和判斷錯(cuò)誤的類(lèi) 型,并對(duì)錯(cuò)誤的位置進(jìn)行高亮顯示,并通過(guò)查詢(xún)錯(cuò)誤碼的形式準(zhǔn)確給出語(yǔ)法錯(cuò)誤類(lèi)型的信 息提示,便于用戶快速修改;另外在表達(dá)式語(yǔ)法判斷的算法處理中,采用了 STL(Standard Template Library)標(biāo)準(zhǔn)模板庫(kù)基本數(shù)據(jù)結(jié)構(gòu)和基本算法,提高了程序的運(yùn)行效率。并且采 用了兩級(jí)語(yǔ)法判斷的思想,初級(jí)語(yǔ)法判斷會(huì)檢查明顯的語(yǔ)法錯(cuò)誤,復(fù)雜的語(yǔ)法判斷會(huì)檢查 剩余的所有錯(cuò)誤,這種分級(jí)處理語(yǔ)法錯(cuò)誤的方法,既減輕了語(yǔ)法分析的難度又節(jié)省了整個(gè) 程序處理的時(shí)間。這一功能是本發(fā)明的創(chuàng)新點(diǎn)之一。
[0032] 表達(dá)式的計(jì)算單元105,通過(guò)程序定時(shí)的方式每隔一定的時(shí)間判斷當(dāng)前所輸入的 公式是否可以計(jì)算,如果可以計(jì)算就會(huì)把計(jì)算的結(jié)果實(shí)時(shí)傳遞給數(shù)據(jù)顯示處理模塊。表達(dá) 式的計(jì)算單元直接支持復(fù)數(shù)常量的輸入和運(yùn)算處理是本發(fā)明的創(chuàng)新點(diǎn)之一,例如,用戶可 以輸入(l+2i) *S11+cos (S21),表達(dá)式計(jì)算單元就會(huì)首先刪除沒(méi)用的空格字符,大寫(xiě)字符轉(zhuǎn) 換為小寫(xiě)字符,接著添加表達(dá)式結(jié)束符,然后分析表達(dá)式是否含有復(fù)數(shù)常量,如果含有復(fù)數(shù) 常量就把復(fù)數(shù)常量a+bi轉(zhuǎn)化成〈a:b>的形式,判斷函數(shù)和參數(shù),數(shù)值替換,根據(jù)運(yùn)算符的優(yōu) 先級(jí)對(duì)表達(dá)式添加括號(hào),以及用運(yùn)算符和參與運(yùn)算的數(shù)據(jù)構(gòu)造二叉樹(shù),運(yùn)算等等。
[0033] 下面是本發(fā)明的智能糾錯(cuò)、信息提示單元和表達(dá)式計(jì)算單元的程序處理流程圖, 如圖2所示,步驟1 :表達(dá)式的輸入;步驟2 :刪除多余的空格;步驟3 :大寫(xiě)字符改為小寫(xiě)字 符并在表達(dá)式字符串末端添加結(jié)束符;步驟4 :判斷是否有簡(jiǎn)單語(yǔ)法錯(cuò)誤,如有簡(jiǎn)單語(yǔ)法錯(cuò) 誤,則進(jìn)入智能糾錯(cuò)和信息提示單元,發(fā)送錯(cuò)誤代碼,在錯(cuò)誤處高亮顯示,查詢(xún)錯(cuò)誤代碼表 給出提示信息后進(jìn)入步驟5 ;如判斷沒(méi)有簡(jiǎn)單語(yǔ)法錯(cuò)誤,則進(jìn)入步驟6 ;步驟5 :表達(dá)式修改 后進(jìn)入步驟2 ;步驟6 :參數(shù)或函數(shù)的數(shù)據(jù)的獲?。徊襟E7 :判斷是否有復(fù)雜語(yǔ)法錯(cuò)誤,如是 則進(jìn)入智能糾錯(cuò)和信息提示單元,發(fā)送錯(cuò)誤代碼,在錯(cuò)誤處高亮顯示,查詢(xún)錯(cuò)誤代碼表給出 提示信息后進(jìn)入步驟5 ;如否則進(jìn)入步驟8 ;步驟8 :構(gòu)造二叉樹(shù)并運(yùn)算,將運(yùn)算結(jié)果給顯示 處理模塊;步驟9 :判斷是否是最后一個(gè)數(shù)據(jù)點(diǎn),如是則結(jié)束,如否則進(jìn)入步驟6 ;
[0034] 數(shù)據(jù)處理與圖形顯示單2元主要包括:數(shù)據(jù)格式選擇201、格式化數(shù)據(jù)數(shù)組202、偏 移和比例203、顯示內(nèi)存204和界面顯示和刷新205五個(gè)部分。
[0035] 數(shù)據(jù)格式選擇201 :此功能主要用于選擇不同數(shù)據(jù)格式進(jìn)行圖形顯示。由于公式 編輯器運(yùn)算的數(shù)據(jù)采用的是復(fù)數(shù)格式,但是用戶往往根據(jù)實(shí)際需要選擇不同的顯示格式, 比如極坐標(biāo)格式、斯密斯原圖等格式。
[0036] 格式化數(shù)據(jù)數(shù)組202 :數(shù)據(jù)格式化處理后存入格式化數(shù)組中,在圖形顯示的中光 標(biāo)和光標(biāo)搜索等功能都源于格式化數(shù)據(jù)。
[0037] 偏移和比例203 :此功能主要是為圖形顯示做最基本的顯示參數(shù)設(shè)置,比如每格 大小以及相對(duì)于哪個(gè)數(shù)值為中心進(jìn)行圖形顯示,用戶可以通過(guò)人機(jī)交互界面調(diào)整數(shù)據(jù)圖形 的顯示范圍和比例。
[0038] 顯示內(nèi)存204 :顯示內(nèi)存保存著分析儀的顯示映像,顯示的內(nèi)容包括圖形、文本及 軟件菜單等,如果用戶顯示圖形被寫(xiě)入,那么也將保存在顯示內(nèi)存中。當(dāng)執(zhí)行繪圖時(shí)這些數(shù) 據(jù)將從顯示內(nèi)存中提取出來(lái),顯示會(huì)頻繁更新和數(shù)據(jù)處理同步,效率極高。
[0039] 本發(fā)明在屏幕窗口中繪圖時(shí),繪圖過(guò)程大多放在窗口的OnDrawO函數(shù)或者 OnPaintO消息響應(yīng)函數(shù)中,OnDrawO在進(jìn)行屏幕顯示時(shí)是由OnPaintO進(jìn)行調(diào)用的。當(dāng) 窗口由于任何原因需要重繪時(shí),總是先用背景顏色將顯示區(qū)清除,然后才調(diào)用OnPaint () 函數(shù),而背景顏色往往與繪圖內(nèi)容反差很大,這樣在短時(shí)間內(nèi)背景色和顯示圖形的交替出 現(xiàn)使得顯示窗口看起來(lái)在閃爍。
[0040] 對(duì)于上述地高效率地實(shí)時(shí)繪圖出現(xiàn)波形或圖形閃爍的技術(shù)問(wèn)題,本專(zhuān)利是采用雙 緩沖顯示的方案解決這一問(wèn)題,這也是本專(zhuān)利的創(chuàng)新點(diǎn)之一。雙緩沖的實(shí)現(xiàn)原理就是除了 在屏幕上有圖形進(jìn)行顯示外,在內(nèi)存中也要有圖形在繪制。就是把要顯示圖形先在內(nèi)存中 繪制好,然后再一次性的將內(nèi)存中的圖形按照一個(gè)點(diǎn)、一個(gè)點(diǎn)的覆蓋到屏幕上去(這個(gè)過(guò) 程非???,因?yàn)槭潜容^規(guī)整的內(nèi)存拷貝)。這樣在內(nèi)存中繪圖時(shí),隨便用什么反差大的背景 色清除都不會(huì)閃爍,因?yàn)閮?nèi)存中的圖形用戶是看不到的。當(dāng)由內(nèi)存拷貝到屏幕上時(shí),因?yàn)閮?nèi) 存中最終的圖形與屏幕顯示的圖形差別很?。ㄈ绻麤](méi)有變動(dòng),當(dāng)然就沒(méi)有差別),這樣處理 的效果就不會(huì)讓人眼有圖形閃爍的感覺(jué),也就是利用人類(lèi)自身的視覺(jué)保留機(jī)能。
[0041] 另外,本發(fā)明采用了多線程的方式處理人機(jī)交互和數(shù)據(jù)圖形顯示、刷新205。主線 程負(fù)責(zé)直接與用戶交互,然后又創(chuàng)建了一個(gè)專(zhuān)門(mén)的工作線程用于數(shù)據(jù)圖形顯示,這樣就把 主線程解放出來(lái),可以實(shí)時(shí)響應(yīng)用戶交互信息。這里涉及到多線程的編程、線程間的通信、 信號(hào)量的控制等vc++軟件編程基本知識(shí)和技能。界面顯示和刷新的流程圖,如圖3所示,具 體步驟為:步驟A :初始化變量;步驟B :等待數(shù)據(jù)顯示信號(hào)量;步驟C :判斷是否背景重繪, 如果則進(jìn)入步驟D ;如否則進(jìn)入步驟E ;步驟D :繪制背景區(qū)域;步驟E :拷貝背景區(qū)域到內(nèi)存 位圖;步驟F :判斷是否顯示內(nèi)存軌跡,如是則進(jìn)入步驟G,如否則進(jìn)入步驟Η ;步驟G :在內(nèi) 存位圖中畫(huà)內(nèi)存軌跡;步驟Η :拷貝內(nèi)存位圖到屏幕顯示;步驟I :判斷是否結(jié)束,如是則結(jié) 束,如否則進(jìn)入步驟Β。
[0042] (1)首先使用 MFC 函數(shù) WaitForSingleOb ject (&DispEvent, INFINITE)等待數(shù)據(jù)顯 示信號(hào)量,操作系統(tǒng)一般在需要重繪圖形時(shí)激活此信號(hào)量;
[0043] (2)接著在內(nèi)存設(shè)備中進(jìn)行繪圖操作,完成所有圖形顯示任務(wù);
[0044] (3)然后將內(nèi)存設(shè)備中的位圖整個(gè)拷貝到窗口上完成顯示輸出操作。
[0045] (4)判斷是否停止圖形更新顯示,如果"否"則轉(zhuǎn)到(1)繼續(xù)執(zhí)行,并直至結(jié)束。
[0046] 本發(fā)明的優(yōu)點(diǎn)是:
[0047] 1.解決了用戶所輸入的表達(dá)式中直接包含復(fù)數(shù)常量(如:S2lAl_Sll) + (l+3i)) 不能計(jì)算的技術(shù)難題。本專(zhuān)利提供的公式編輯器允許用戶直接輸入復(fù)數(shù)常量,僅要求復(fù)數(shù) 常量用括號(hào)" 0 "括起來(lái),比如:S2lAl-Sll) + (l+3i)。在表達(dá)式計(jì)算單元會(huì)把表達(dá)式中的 復(fù)數(shù)(a+bj)轉(zhuǎn)換成<a:b>形式進(jìn)行處理,這一處理方法有效地解決了用戶直接輸入復(fù)數(shù)常 量到表達(dá)式中不能進(jìn)行解析、計(jì)算的技術(shù)難題。表達(dá)式中的變量S21和S11都可以是復(fù)數(shù) 類(lèi)型。整個(gè)表達(dá)式的解析和計(jì)算都是采用復(fù)數(shù)格式進(jìn)行。當(dāng)一個(gè)可計(jì)算的公式輸入到公式 編輯框,并勾選使能按鈕后,當(dāng)前激活的軌跡曲線或圖形對(duì)應(yīng)的每個(gè)測(cè)量點(diǎn)的數(shù)據(jù)將被公 式運(yùn)算結(jié)果所替換,并且軌跡可隨數(shù)據(jù)進(jìn)行實(shí)時(shí)更新。
[0048] 2.提供的公式編輯器程序模塊解決了用戶不能導(dǎo)入自定義參數(shù)的技術(shù)問(wèn)題,允許 用戶自定義參數(shù),如這種類(lèi)型的參數(shù)data[201] = {0,1,0,1....},采用這種自定義參數(shù)可 以離散的處理或觀察一些數(shù)據(jù)點(diǎn),可以滿足用戶的一些特殊需求。在編輯器的用戶界面上 有專(zhuān)用的窗口輸入用戶要導(dǎo)入的新參數(shù)。同時(shí)還提供了自定義函數(shù)的導(dǎo)入功能,函數(shù)的導(dǎo) 入是采用文件加動(dòng)態(tài)庫(kù)的方式完成的,操作方便。這種開(kāi)放的程序設(shè)計(jì)思想大大提高了此 程序模塊自身的復(fù)用性,可以應(yīng)用于多種測(cè)試儀器的公式編輯和解析、計(jì)算,既方便了程序 的再次開(kāi)發(fā),又為儀器用戶提供了方便。
[0049] 3.提供的公式編輯器提供了用戶輸入表達(dá)式的智能糾錯(cuò)及信息提示功能。當(dāng)用戶 輸入一個(gè)不可計(jì)算的公式,公式編輯器能夠智能的指出錯(cuò)誤所在位置,并能準(zhǔn)確地給出語(yǔ) 法錯(cuò)誤類(lèi)型的信息提示,用戶可以根據(jù)這些提示信息快捷的修正公式,提高工作效率;另外 在表達(dá)式語(yǔ)法判斷的算法處理中,采用了 STL (Standard Template Library)標(biāo)準(zhǔn)模板庫(kù)基 本數(shù)據(jù)結(jié)構(gòu)和基本算法,提高了程序的運(yùn)行效率。并且采用了兩級(jí)語(yǔ)法判斷的思想,初級(jí)語(yǔ) 法判斷會(huì)檢查明顯的語(yǔ)法錯(cuò)誤,復(fù)雜的語(yǔ)法判斷會(huì)檢查剩余的所有錯(cuò)誤,這種分級(jí)處理語(yǔ) 法錯(cuò)誤的方法,既減輕了語(yǔ)法分析的難度又節(jié)省了整個(gè)程序處理的時(shí)間。
[0050] 4.對(duì)于高效率地實(shí)時(shí)繪圖出現(xiàn)波形或圖形閃爍的技術(shù)問(wèn)題,本專(zhuān)利是采用雙緩沖 顯示的方案解決這一問(wèn)題。雙緩沖的實(shí)現(xiàn)原理就是除了在屏幕上有圖形進(jìn)行顯示外,在內(nèi) 存中也要有圖形在繪制。就是把要顯示圖形先在內(nèi)存中繪制好,然后再一次性的將內(nèi)存中 的圖形按照一個(gè)點(diǎn)、一個(gè)點(diǎn)的覆蓋到屏幕上去(這個(gè)過(guò)程非???,因?yàn)槭潜容^規(guī)整的內(nèi)存 拷貝)。這樣在內(nèi)存中繪圖時(shí),隨便用什么反差大的背景色清楚都不會(huì)閃爍,因?yàn)閮?nèi)存中的 圖形用戶是看不到的。當(dāng)由內(nèi)存拷貝到屏幕上時(shí),因?yàn)閮?nèi)存中最終的圖形與屏幕顯示的圖 形差別很?。ㄈ绻麤](méi)有變動(dòng),當(dāng)然就沒(méi)有差別),這樣處理的效果就不會(huì)讓人眼有圖形閃爍 的感覺(jué),也就是利用人類(lèi)自身的視覺(jué)保留機(jī)能。并且在軟件架構(gòu)中采用了多線程的編程思 想進(jìn)行人機(jī)交互和數(shù)據(jù)圖形顯示,主線程負(fù)責(zé)直接與用戶交互,然后又創(chuàng)建了一個(gè)專(zhuān)門(mén)的 工作線程用于數(shù)據(jù)圖形顯示,這樣就把主線程解放出來(lái),可以實(shí)時(shí)響應(yīng)人機(jī)交互信息。
[0051] 應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)上述說(shuō)明加以改進(jìn)或變換, 而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1. 一種網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其特征在于,包括公式編輯 器模塊及數(shù)據(jù)處理與圖形顯示單元;所述公式編輯器模塊包括:內(nèi)置參數(shù)、函數(shù)、運(yùn)算符單 元、自定義參數(shù)和函數(shù)的導(dǎo)入單元、公式編輯器表達(dá)式的輸入單元、表達(dá)式的智能糾錯(cuò)和信 息提示單元、表達(dá)式的計(jì)算單元相互連接及相互通訊;所述數(shù)據(jù)處理與圖形顯示單元包括: 數(shù)據(jù)格式選擇、格式化數(shù)據(jù)數(shù)組、偏移和比例、顯示內(nèi)存和界面顯示和刷新五個(gè)部分。
2. 如權(quán)利要求1所述的網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其特征在于, 所述內(nèi)置參數(shù)、函數(shù)、運(yùn)算符單元,用于選擇要輸入的參數(shù)、函數(shù)和運(yùn)算符;所述自定義參數(shù) 和函數(shù)的導(dǎo)入功能單元,用于導(dǎo)入自定義的參數(shù)、函數(shù)后使用;所述公式編輯器表達(dá)式的 輸入單元,用于支持鍵盤(pán)輸入或通過(guò)鼠標(biāo)左鍵選擇的方式輸入?yún)?shù)、函數(shù)、數(shù)組及運(yùn)算符; 所述表達(dá)式的智能糾錯(cuò)和信息提示功能單元,用于分析處理用戶輸入的表達(dá)式的語(yǔ)法和結(jié) 構(gòu);所述表達(dá)式的計(jì)算單元,通過(guò)程序定時(shí)的方式每隔一定的時(shí)間判斷當(dāng)前所輸入的公式 是否可以計(jì)算;所述表達(dá)式的計(jì)算單元直接支持復(fù)數(shù)常量的輸入和運(yùn)算處理。
3. 如權(quán)利要求1所述的網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其特征在于, 所述智能糾錯(cuò)、信息提示單元和表達(dá)式計(jì)算單元的處理步驟為:步驟1 :表達(dá)式的輸入后; 步驟2 :刪除多余的空格;步驟3 :大寫(xiě)字符改為小寫(xiě)字符并在表達(dá)式字符串末端添加結(jié)束 符;步驟4 :判斷是否有簡(jiǎn)單語(yǔ)法錯(cuò)誤,如有簡(jiǎn)單語(yǔ)法錯(cuò)誤,則進(jìn)入智能糾錯(cuò)和信息提示單 元,發(fā)送錯(cuò)誤代碼,在錯(cuò)誤處高亮顯示,查詢(xún)錯(cuò)誤代碼表給出提示信息后進(jìn)入步驟5 ;如判 斷沒(méi)有簡(jiǎn)單語(yǔ)法錯(cuò)誤,則進(jìn)入步驟6 ;步驟5 :表達(dá)式修改后進(jìn)入步驟2 ;步驟6 :參數(shù)或函數(shù) 的數(shù)據(jù)的獲??;步驟7 :判斷是否有復(fù)雜語(yǔ)法錯(cuò)誤,如是則進(jìn)入智能糾錯(cuò)和信息提示單元, 發(fā)送錯(cuò)誤代碼,在錯(cuò)誤處高亮顯示,查詢(xún)錯(cuò)誤代碼表給出提示信息后進(jìn)入步驟5 ;如否則進(jìn) 入步驟8 ;步驟8 :構(gòu)造二叉樹(shù)并運(yùn)算,將運(yùn)算結(jié)果給顯示處理模塊;步驟9 :判斷是否是最 后一個(gè)數(shù)據(jù)點(diǎn),如是則結(jié)束,如否則進(jìn)入步驟6。
4. 如權(quán)利要求1所述的網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其特征在于, 所述數(shù)據(jù)格式選擇,用于選擇不同數(shù)據(jù)格式進(jìn)行圖形顯示;所述格式化數(shù)據(jù)數(shù)組,用于數(shù)據(jù) 格式化處理后存入格式化數(shù)組中;所述偏移和比例,用于為圖形顯示做最基本的顯示參數(shù) 設(shè)置;所述顯示內(nèi)存,用于保存著分析儀的顯示映像,顯示的內(nèi)容包括圖形、文本及軟件菜 單,如果顯示圖形被寫(xiě)入,則同時(shí)保存在顯示內(nèi)存中。
5. 如權(quán)利要求1所述的網(wǎng)絡(luò)分析儀公式編輯器及其數(shù)據(jù)圖形顯示裝置,其特征在于, 所述顯示內(nèi)存和界面顯示和刷新的具體步驟為:步驟A :初始化變量;步驟B :等待數(shù)據(jù)顯 示信號(hào)量;步驟C :判斷是否背景重繪,如果則進(jìn)入步驟D ;如否則進(jìn)入步驟E ;步驟D :繪制 背景區(qū)域;步驟E:拷貝背景區(qū)域到內(nèi)存位圖;步驟F:判斷是否顯示內(nèi)存軌跡,如是則進(jìn)入 步驟G,如否則進(jìn)入步驟Η ;步驟G :在內(nèi)存位圖中畫(huà)內(nèi)存軌跡;步驟Η :拷貝內(nèi)存位圖到屏幕 顯示;步驟I :判斷是否結(jié)束,如是則結(jié)束,如否則進(jìn)入步驟Β。
【文檔編號(hào)】G06F3/14GK104102468SQ201410353673
【公開(kāi)日】2014年10月15日 申請(qǐng)日期:2014年7月23日 優(yōu)先權(quán)日:2014年7月23日
【發(fā)明者】李明太, 李樹(shù)彪, 劉丹, 郭永瑞, 趙立軍, 莊志遠(yuǎn), 袁國(guó)平, 楊明飛 申請(qǐng)人:中國(guó)電子科技集團(tuán)公司第四十一研究所