freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于網(wǎng)絡(luò)的虛擬儀器測(cè)試系統(tǒng)畢業(yè)論文-資料下載頁(yè)

2025-06-27 20:36本頁(yè)面
  

【正文】 if(error!=VI_SUCCESS) {error_handler(/*oscillograph*/m_Session,error)。return。}//************************************數(shù)據(jù)點(diǎn)的采集部分**************************************//利用字符轉(zhuǎn)換符和viScanf函數(shù)來(lái)進(jìn)行讀取數(shù)據(jù)并定義一個(gè)無(wú)符號(hào)的字符數(shù)組來(lái)對(duì)讀//取的數(shù)據(jù)進(jìn)行存儲(chǔ)--隨后進(jìn)行數(shù)據(jù)//**************************************的轉(zhuǎn)換和數(shù)據(jù)的處理2005/5/17 viPrintf(/*oscillograph*/m_Session,:waveform:data?\n)。 unsigned char temp[2000]。 for(int i=0。i2000。i++) { error=viScanf(/*oscillograph*/m_Session,%c,amp。temp[i])。 if(error!=VI_SUCCESS) {error_handler(/*oscillograph*/m_Session,error)。 return。} }//*****************************************數(shù)據(jù)的轉(zhuǎn)換***************************************** int j=0。 for(i=18。i2000。i+=20,j++) { temp[j]=(int)temp[i]。 n++。//數(shù)據(jù)的個(gè)數(shù) }數(shù)據(jù)采集這一塊我花了不少的時(shí)間,不斷的對(duì)指令進(jìn)行測(cè)試,但是以為只要通過(guò):waveform:data?指令然后進(jìn)行讀取就OK了??!然而,查看資料才曉得示波器采集回來(lái)的數(shù)據(jù)是想前面所示的那樣,有頭部數(shù)據(jù)以及二進(jìn)制數(shù)據(jù)塊,這就把我給難住了!二進(jìn)制數(shù)據(jù)該怎么讀呢??從安捷倫網(wǎng)站上下載下來(lái)的資料中雖然提供了怎樣進(jìn)行波形數(shù)據(jù)的讀取的方法,但它并沒(méi)有給出在VISA情況下的數(shù)據(jù)的讀取的方法。但是它也給了我一定的提示:頭部給出了數(shù)據(jù)塊的字節(jié)的個(gè)數(shù),既然是字節(jié),也就是一個(gè)字符。那么這樣的話就可以讀取數(shù)據(jù)了。然后經(jīng)過(guò)我的測(cè)試,一切OK!我好高興~~~~~讀回?cái)?shù)據(jù)之后,就是數(shù)據(jù)的顯示問(wèn)題。至于這個(gè)我采用了別人給我的一個(gè)類,通過(guò)該類我可以比較輕松的進(jìn)行數(shù)據(jù)的顯示工作。我只要將讀回的波形數(shù)據(jù)進(jìn)行處理,并將數(shù)據(jù)傳遞給給類的一個(gè)數(shù)組就可以了!!//*****************************************數(shù)據(jù)的轉(zhuǎn)換***************************************** int j=0。 for(i=18。i2000。i+=20,j++) { temp[j]=(int)temp[i]。 n++。//數(shù)據(jù)的個(gè)數(shù) }//*****************************************數(shù)據(jù)存儲(chǔ)******************************************* for(int k=0。kn。k++) { [k]=(((float)temp[k]preamble[9])*preamble[7]+preamble[8])*m_Y。//這里使用Y } Invalidate()。//這個(gè)用于屏幕畫面的刷新兩大問(wèn)題的解決,示波器也就基本上可以告一個(gè)段落了?。∑渌墓δ艿膶?shí)現(xiàn)相對(duì)來(lái)說(shuō)要容易的些!下面是示波器顯示窗口部分初始化代碼://*******下面是另外一種方法更方便控制示波器的顯示的尺度,也就是在對(duì)話框模板上//添加一個(gè)靜態(tài)控件,并調(diào)節(jié)它的尺度到你需要的范圍,并最好是更改一下它的ID,然//后通過(guò)下列語(yǔ)句來(lái)進(jìn)行創(chuàng)建顯示 CRect m_nRect。 CStatic* pStatic=(CStatic*)GetDlgItem(IDC_STATIC_SHOW)。 pStaticGetClientRect(amp。m_nRect)。 (IDC_STATIC_SHOW,this)。 =m_nRect。 =+20。 =+15。 =。 =。在基本的問(wèn)題解決之后,希望對(duì)于顯示在示波器上的波形具有縮放功能,使自己的示波器更完美。于是就添加了兩個(gè)Slider控件來(lái)控制波形的拉伸,起初的設(shè)計(jì)就是刷新窗口的問(wèn)題:因?yàn)橥ㄟ^(guò)滑塊來(lái)改變XY的值,但需要它能及時(shí)的在窗口上得到響應(yīng),這個(gè)問(wèn)題使我有點(diǎn)頭痛。起初的設(shè)計(jì)比較的粗糙,通過(guò)鼠標(biāo)的點(diǎn)擊消息來(lái)進(jìn)行對(duì)整個(gè)窗口的刷新。不過(guò),這樣的設(shè)計(jì)實(shí)在是太難看了,后來(lái),通過(guò)上網(wǎng)咨詢,論壇的朋友建議我使用線程函數(shù)進(jìn)行對(duì)特定的窗口進(jìn)行刷新。于是,我開(kāi)始接觸線程,并去了解線程,并通過(guò)書本上的例子的練習(xí),加深了解以及和同學(xué)進(jìn)行探討,終于將問(wèn)題得以解決。具體代碼見(jiàn)附錄,下面是線程函數(shù)的代碼:static CEvent g_End。//事件對(duì)象的建立struct data //需要傳遞的數(shù)據(jù){ CRect rect。 COSCILLOGRAPH* dlg。 CStatic* m_pCS。}m_Data。//***************************關(guān)鍵的線程函數(shù)UINT ThreadProc(LPVOID param){ if(::WaitForSingleObject(g_End,0)==WAIT_OBJECT_0)//該語(yǔ)句用來(lái)判斷是否掛起或結(jié)束線程 { data* p=(data*)param。//這里是針對(duì)指定控件如靜態(tài)控件的刷新,相對(duì)對(duì)話框的刷新,這種刷新不會(huì)出現(xiàn)閃屏問(wèn)題pm_pCSInvalidateRect(prect,TRUE)。 ()。 return 0。 } return 0。}5 萬(wàn)用表模塊 Agilent E1412A 安捷倫的E1412A 6位半高精度萬(wàn)用表是一個(gè)規(guī)格為C,具有一個(gè)槽,基于消息基的VXI模塊,它與E1312A模塊只是規(guī)格上的不同。它具有更多的功能和更高的執(zhí)行效率,而在價(jià)格上卻與5位半的萬(wàn)用表相當(dāng)。該萬(wàn)用表提供了廣泛的測(cè)量功能包括電壓、幅值、電阻、和頻率的高級(jí)測(cè)量以及對(duì)測(cè)試TTL輸出和直流電壓比測(cè)量。標(biāo)準(zhǔn)的測(cè)量包括ac/dc電壓、ac/dc電流、2-4線電阻和頻率與周期的測(cè)量。測(cè)量直流電壓時(shí),該萬(wàn)用表可以提供每秒65次范圍變化和每秒30次函數(shù)變化。 Agilent E1412A 通過(guò)閱讀Agilent E1412A的用戶使用手冊(cè),了解到Agilent E1412A能進(jìn)行高精度的測(cè)量。然而,為了到達(dá)最好的測(cè)量效果,必須做一些準(zhǔn)備工作來(lái)消除一些潛在的測(cè)量誤差。在使用手冊(cè)中給出了一些常見(jiàn)的錯(cuò)誤,并提供了一些解決的辦法。譬如在DC電壓測(cè)量過(guò)程中,就會(huì)遇上如下的一些常見(jiàn)的錯(cuò)誤:熱電動(dòng)勢(shì)、阻抗錯(cuò)誤、電流泄漏錯(cuò)誤、不合格電源的噪聲、共模以及磁環(huán)路和地環(huán)路引起的噪聲等等,都提供了一些解決的思路。而在進(jìn)行測(cè)量之前也需要對(duì)萬(wàn)用表進(jìn)行適當(dāng)?shù)呐渲?比如說(shuō)AC信號(hào)的過(guò)慮(設(shè)置三種不同的AC過(guò)濾器,可以提高低頻測(cè)量的精度或是在進(jìn)行AC電壓以及電流測(cè)量時(shí)提高讀取速率。又如DC輸入阻抗(在正常的情況下,所有的DC電壓范圍的輸入阻抗是10兆歐姆來(lái)最小化噪聲。你可以為100mVdc, 1Vdc and 10Vdc 范圍的直流電壓設(shè)置輸入阻抗高于10G歐姆以利于減少測(cè)量負(fù)載的錯(cuò)誤。)還有許多配置,用戶手冊(cè)中都給出了說(shuō)明。最簡(jiǎn)單的測(cè)量是通過(guò)使用MEASURE命令來(lái)進(jìn)行的,該命令用來(lái)配置函數(shù),啟動(dòng)測(cè)量和置數(shù)據(jù)于緩沖區(qū)以便計(jì)算機(jī)利用IO命令的讀取。一條MEASURE命令將會(huì)啟動(dòng)多個(gè)測(cè)量(如果觸發(fā)數(shù)或采樣數(shù)大于1);如果讀回?cái)?shù)據(jù)的速度不夠快以至于模塊的輸出緩沖區(qū)滿時(shí),測(cè)量將會(huì)停止直至有空間來(lái)存儲(chǔ)數(shù)據(jù)時(shí)才重新啟動(dòng)測(cè)量。譬如:*RST //復(fù)位萬(wàn)用表MEAS:VOLT:DC?//配置dc電壓測(cè)量,并從萬(wàn)用表返回?cái)?shù)據(jù)ENTER statement//將數(shù)據(jù)傳送給計(jì)算機(jī) 而指令read?也是可以用來(lái)啟動(dòng)測(cè)量的,在使用read?指令之前,需要使用所需的測(cè)量函數(shù)對(duì)萬(wàn)用表進(jìn)行配置。該命令啟動(dòng)測(cè)量并將數(shù)據(jù)直接放入輸出緩沖區(qū),接著由用戶提供IO函數(shù)來(lái)取回?cái)?shù)據(jù)并發(fā)送給計(jì)算機(jī)。一條read?指令可以啟動(dòng)多個(gè)測(cè)量(如果觸發(fā)數(shù)或采樣數(shù)大于1時(shí));如果讀回?cái)?shù)據(jù)的速度不夠快以至于模塊的輸出緩沖區(qū)滿時(shí),測(cè)量將會(huì)停止直至有空間來(lái)存儲(chǔ)數(shù)據(jù)時(shí)才重新啟動(dòng)測(cè)量。read?指令被分解為兩個(gè)命令:init和fetc?.指令init置萬(wàn)用表于等待觸發(fā)狀態(tài),外部觸發(fā)發(fā)生來(lái)啟動(dòng)測(cè)量,測(cè)量值被存儲(chǔ)于萬(wàn)用表內(nèi)部存儲(chǔ)器中。而指令fetc?將萬(wàn)用表的內(nèi)存中的數(shù)據(jù)輸出到輸出緩沖區(qū)中并由計(jì)算機(jī)取回?cái)?shù)據(jù)。注意:在使用init和fetc?命令時(shí)應(yīng)當(dāng)小心,萬(wàn)用表的內(nèi)部存儲(chǔ)器的容量只有有512個(gè)字節(jié),超過(guò)該范圍的最先的數(shù)據(jù)將會(huì)被丟棄。每個(gè)測(cè)量以LF(換行符)結(jié)束。HPIB End or Indentify信號(hào)將會(huì)在最后一個(gè)字節(jié)被發(fā)送。如果多個(gè)測(cè)量被返回,測(cè)量值會(huì)以逗號(hào)分隔,EOI也會(huì)在最后一個(gè)字節(jié)被發(fā)送。例如:++LF,++12LF,++12LFEOI。 做外部觸發(fā)測(cè)量時(shí),必須提供TTL外部觸發(fā)信號(hào)到BNC(同軸電纜插接件);測(cè)量將會(huì)被這個(gè)信號(hào)低脈沖觸發(fā)。注意:Configure命令用于指定函數(shù)配置萬(wàn)用表,該命令并不啟動(dòng)測(cè)量。對(duì)萬(wàn)用表的測(cè)量過(guò)程有了一定的了解之后,心中也有了一定的思路,如下圖:萬(wàn)用表的初始化測(cè)量配置啟動(dòng)測(cè)量結(jié)果顯示觸發(fā)器、輸入輸出配置配置測(cè)量函數(shù)和參數(shù)以及參數(shù)的附加參數(shù)對(duì)于萬(wàn)用表的初始化,我將其設(shè)置為多選按鈕來(lái)進(jìn)行配置,設(shè)計(jì)的思想是這樣的:采用多選按鈕,也就意味著可以不選,采用默認(rèn)的參數(shù)值;而用戶如果需要設(shè)置的話,則單擊選中按鈕,會(huì)彈出一個(gè)對(duì)話框提供用戶選擇如下所示:圖5-1上面就是我的萬(wàn)用表的基本的框圖了。而測(cè)量結(jié)果的顯示部分則是通過(guò)彈出式信息框的形式來(lái)對(duì)測(cè)量結(jié)果進(jìn)行顯示。這里給出了程序的部分代碼如下://這里對(duì)萬(wàn)用表的輸入輸出以及采樣進(jìn)行設(shè)置,而這些參數(shù)的值是通過(guò)用戶界面中的//控件進(jìn)行傳遞的viPrintf(/*multimeter*/,SAMPLE:COUNT%s\n,m_nStr_Sample)。viPrintf(/*multimeter*/,INPUT:IMPEDANCE:AUTO %s\n,m_nStr_Input)。viPrintf(/*multimeter*/,OUTPUT:%s\n,m_nStr_Output)。//觸發(fā)器設(shè)置按鈕的點(diǎn)擊-這里是一個(gè)大的循環(huán),對(duì)用戶是否對(duì)觸發(fā)器進(jìn)行了設(shè)置操作//通過(guò)變量m_btrigger進(jìn)行判斷 if(m_btrigger==1) {viPrintf(/*multimeter*/,TRIG:SOURCE %s\n,)。viPrintf(/*multimeter*/,TRIG:COUNT %s\n,)。 viPrintf(/*multimeter*/,TRIG:DELAY %s\n,)。//這里要對(duì)延時(shí)做處理判斷//*******************參數(shù)是否已經(jīng)被選擇的判斷2005/5/22********************* int m_nID。 m_nID=GetCheckedRadioButton(IDC_RADIO_VOLTAGE,IDC_RADIO_PERIOD)。 if(m_nID==0) { MessageBox(請(qǐng)先選擇測(cè)量參數(shù)!,提示信息,MB_OK)。 return。} switch(m_nID)//通過(guò)這個(gè)switch語(yǔ)句對(duì)用戶選擇的測(cè)量參數(shù)的判斷 {case IDC_RADIO_VOLTAGE://電壓測(cè)量 viPrintf(/*multimeter*/,CONF:VOLT:%s %s,%s\n,)。 if(DC==) {viPrintf(/*multimeter*/,VOLT:DC:%s\n,)。 viPrintf(/*multimeter*/,VOLT:DC:%s\n,)。} break。 ………………//通過(guò)如下的SCPI命令啟動(dòng)測(cè)量 viPrintf(/*multimeter*/,INIT。FETC?\n)。//通過(guò)函數(shù)viScanf()來(lái)讀取讀取數(shù)據(jù),并通過(guò)一個(gè)彈出式信息框?qū)y(cè)量結(jié)果進(jìn)行顯示 char buff[100]。 viScanf(/*multimeter*/,%s,buff)。 CString temp。 (Result is %s,buff)。 MessageBox(temp,測(cè)量結(jié)果顯示,MB_OK)。在萬(wàn)用表的設(shè)計(jì)和編程過(guò)程中,由于有了函數(shù)信號(hào)發(fā)生器以及示波器的經(jīng)驗(yàn),所以工作進(jìn)度就相對(duì)來(lái)的快一些,關(guān)鍵的的問(wèn)題還在于程序的調(diào)試上。6 測(cè)試系統(tǒng)的測(cè)試舉例 利用函數(shù)信號(hào)發(fā)生器調(diào)頻波和調(diào)制波的實(shí)現(xiàn)首先,運(yùn)行主程序如下:通過(guò)單擊此按鈕來(lái)搜索儀器資源 如左圖所示,通過(guò)單擊查找資源按鈕來(lái)搜索儀器 并通過(guò)一個(gè)列表控件將有效的資源列于表中,通 過(guò)雙擊列表框中的資源地址來(lái)激活建立會(huì)話按鈕 從而允許用戶建立會(huì)話(會(huì)話建立成功與否會(huì)提 示用戶相關(guān)的信息)。在三個(gè)模塊的按鈕的處理函 數(shù)中,對(duì)地址進(jìn)行有效的判斷,從而無(wú)需用戶來(lái) 記憶儀器的地址,即使單擊錯(cuò)誤也沒(méi)有什么關(guān) 圖6-1 系,重新進(jìn)行建立即可。因?yàn)槭钦{(diào)頻波,所以需要對(duì)載波和調(diào)制信號(hào)進(jìn)行設(shè)置,這里只給出了設(shè)置窗口的一部分:圖
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1