任意波形編輯軟件中手動(dòng)任意繪制功能的設(shè)計(jì)
(4)波形的處理也是手動(dòng)繪制功能的一個(gè)亮點(diǎn),其中包括剪切、插入、翻轉(zhuǎn)、粘貼等,用到的原理是一樣的,即是對(duì)波形處理前和處理后的數(shù)據(jù)都進(jìn)行存儲(chǔ),然后進(jìn)行一對(duì)一的更新。在設(shè)計(jì)過(guò)程中,使用鏈表完成。這樣既保證了數(shù)據(jù)的實(shí)時(shí)更新,也可以不浪費(fèi)內(nèi)存來(lái)管理數(shù)據(jù)。圖2即為手動(dòng)繪制的一個(gè)任意波形。本文引用地址:http://www.ex-cimer.com/article/195839.htm
3.2 任意波形編輯軟件中拖動(dòng)放大功能的實(shí)現(xiàn)
在波形顯示區(qū)域內(nèi)移動(dòng)鼠標(biāo),當(dāng)放到了合適的位置,然后按下鼠標(biāo)左鍵,開始拖動(dòng)鼠標(biāo)。拖動(dòng)過(guò)程中按住鼠標(biāo)左鍵不放,這時(shí)會(huì)出現(xiàn)一個(gè)矩形,矩形的左上角即是鼠標(biāo)開始按下的位置,矩形的右下角是當(dāng)前鼠標(biāo)的位置。
因此,矩形的大小隨鼠標(biāo)的移動(dòng)而更新。直到拖動(dòng)到需要的位置,放開左鍵,至此放大操作完成??梢钥吹奖痪匦伟鼑牡牟ㄐ尾糠直蝗溜@示。
此功能的設(shè)計(jì)中,需用到函數(shù)SetAxisRange()改變顯示區(qū)的橫縱向范圍,還用到“手動(dòng)繪制波形”設(shè)計(jì)中使用的時(shí)鐘控件。于是在整個(gè)軟件的設(shè)計(jì)中用到兩個(gè)時(shí)鐘控件:
第一個(gè)時(shí)鐘在手動(dòng)繪制波形時(shí)用來(lái)采集離散的波形點(diǎn).另外還負(fù)責(zé)實(shí)時(shí)顯示鼠標(biāo)坐標(biāo)的功能;
第二個(gè)時(shí)鐘就是現(xiàn)在為了繪制不斷更新的矩形而設(shè)的。需要注意的是:兩個(gè)時(shí)鐘控件不能同時(shí)處于激活狀態(tài),即時(shí)鐘1初始為非激活狀態(tài)(unenable),當(dāng)選中了“鼠標(biāo)拖動(dòng)放大波形”菜單項(xiàng)時(shí),先停止時(shí)鐘1,再將時(shí)鐘2激活(enable)。除了控件時(shí)鐘控件的使用,在鼠標(biāo)拖動(dòng)過(guò)程中還需執(zhí)行不斷刷新波形的操作。
因?yàn)?,?dāng)生成矩形時(shí),該矩形有填充色,會(huì)覆蓋顯示區(qū)的波形,為了使矩形看起來(lái)是只有邊框而沒有填充色的效果,需要不斷地刷新波形。因此,操作過(guò)程中會(huì)看到波形有輕微的抖動(dòng)現(xiàn)象。其實(shí)現(xiàn)的原理和波形擴(kuò)展的原理是一致的,將當(dāng)前區(qū)域內(nèi)的波形參數(shù)存儲(chǔ),并將其復(fù)制一份,然后對(duì)其進(jìn)行插值處理。如果需要也可以對(duì)波形進(jìn)行平滑處理,平滑處理的方法是求平均值。
先選定一個(gè)要進(jìn)行平滑處理的波形點(diǎn),然后將它左面幾個(gè)點(diǎn)和右面幾個(gè)點(diǎn)的幅度值相加,再除以相加的總波形點(diǎn)數(shù)。這樣平滑處理后的波形將有一定程度的失真,因每個(gè)點(diǎn)的幅值是其左邊和右邊各8個(gè)點(diǎn)的幅值的平均值,因此更新后的幅值將有所減小。但平滑效果較好,對(duì)于比較不規(guī)則的波形,連續(xù)進(jìn)行多次平滑處理之后,波形將變得較為光滑平坦。圖2即為鼠標(biāo)拖動(dòng)放大波形操作過(guò)程示意圖。
4 結(jié) 語(yǔ)
基于LabWindows,/CVI的任意波形編輯軟件中手動(dòng)任意繪制軟件成本低、效率高、移植性好,無(wú)論是采用何種發(fā)送數(shù)據(jù)的方式,都比較容易進(jìn)行接口操作,在虛擬儀器的圖形界面編程領(lǐng)域有著良好的發(fā)展前景。與此同時(shí),手動(dòng)任意繪制波形軟件不必受到具體儀器的功能限制,這給設(shè)計(jì)帶來(lái)了很大的靈活性。目前,筆者開發(fā)的任意波形發(fā)生器手動(dòng)任意繪制軟件可以選用串口和USB接口發(fā)送數(shù)據(jù),也可以實(shí)現(xiàn)和VXI通信。已經(jīng)應(yīng)用到100 MSPS任意波形發(fā)生器上。經(jīng)過(guò)各種測(cè)試,性能穩(wěn)定,操作簡(jiǎn)單,使用方便。以后還可以根據(jù)不同的儀器要求,進(jìn)一步增加具有其他功能的虛擬儀器,做進(jìn)一步的擴(kuò)展,使得系統(tǒng)更加完善。
評(píng)論