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

正文內(nèi)容

基于rs232接口的數(shù)據(jù)采集分析系統(tǒng)研究于碩(更新版)

  

【正文】 nerWnd,WM_SIGMA_MSG,pTSigma(),0)。 ReadFile(pTSigmam_hPort,amp。dwErrorFlags,amp。 memset(amp。}bool TSigma::SetOwner( HWND hWnd ){ m_hOwnerWnd = hWnd。os,amp。 ClearCommError(m_hPort,amp。 COMSTAT ComStat。}void TSigma::Disconnect(){ //TODO : Send some message to Inform TSIGMA to disconnect! IMPORTANT!! if(m_bConnected==false) return。 =false。 return false。 =50。 SetCommMask(m_hPort,EV_RXCHAR)。}TSigma::~TSigma(void){ if(m_bConnected) Disconnect()。 m_nDataBits = 8。 HWND m_hOwnerWnd。 int m_nStopBit。 bool GetDeviceSn( char* sigma_sn )。 void SetApertureAera(float area)。t check date is invalid :) //Port name must like this: COM1 COM2... void SetBaudRate(int baud)。這次做畢設(shè),在參考資料較少的情況下,使用了新版界面Ribbon設(shè)計(jì),不斷的嘗試和探索,極大的提高了我的自學(xué)和實(shí)踐能力。5. 按下Disconnect按鈕斷開(kāi)計(jì)算機(jī)與功率計(jì)的連接,并到設(shè)備管理器中檢查COM1端口是否已經(jīng)釋放。 ctrl_editSetEditText(curValue)。 } SCROLLINFO ScrollInfo。定時(shí)器設(shè)置: SetTimer(ID_TIMER_ASKDATA,GetDocument()m_peroid,NULL)。 }Ribbon控件的使用 RibbonRibbon是Visual Studio 2010最新提供的界面方案,實(shí)際上我們?cè)谟肙ffice2007的時(shí)候就看到過(guò)了。 pDCMoveTo(START_X,()START_Y)。 sprintf_s(text,sizeof(text),%,i*axis_y_interval)。 根據(jù)最大值繪制縱向表格,并添加縱坐標(biāo) (PS_SOLID,1,RGB(200,200,200))。 pDCMoveTo(i,0)。 =(period*nSize*axis_x_interval/1000)+START_X+START_X。 }}數(shù)據(jù)的繪圖顯示在繪制的過(guò)程中,我們將當(dāng)前屏幕的位置計(jì)算出來(lái),只繪制當(dāng)前屏幕顯示的內(nèi)容,而不是繪制所有畫(huà)幅來(lái)提高繪圖效率。 int m_peroid。采集過(guò)程中,在右上方的CurrentValue框中可以看到當(dāng)前功率,選中Hold復(fù)選框后,當(dāng)前功率數(shù)值將鎖定,取消Hold之后恢復(fù)顯示當(dāng)前功率。} 程序主要功能的設(shè)計(jì)概述程序要完成數(shù)據(jù)的采集和動(dòng)態(tài)顯示,并且能將采集的數(shù)據(jù)存儲(chǔ)起來(lái)。 return false。 bool GetProbeModel( char* probe_model )。Get*函數(shù)這些函數(shù)有 bool GetApertureAera(floatamp。很明顯,當(dāng)我們有大量參數(shù)需要傳遞的時(shí)候,指針作為參數(shù)最為合適。查詢相關(guān)的器件信息: bool GetDeviceSn( char* sigma_sn )。有關(guān)參數(shù)的設(shè)置以及查詢: void SetApertureAera(float area)。 設(shè)置串口的相關(guān)參數(shù): void SetPortName(const CStringamp。使用時(shí),只需要簡(jiǎn)單的實(shí)例化及設(shè)置即可完成所需要的功能。每條命令或數(shù)據(jù)都是一個(gè)字符串,并且以回車換行(\r\n)結(jié)束。如果規(guī)定的待讀取數(shù)據(jù)量大且設(shè)定的超時(shí)時(shí)間也較長(zhǎng),而接收緩沖區(qū)較小,則可能引起線程阻塞。 14. CommEvent:這是一個(gè)非常重要的屬性。例如用戶希望接收緩沖區(qū)中達(dá)到一個(gè)字符就接收一個(gè)字符,可將Rthreshold設(shè)置為1。 8. Input:從接收緩沖區(qū)中讀取數(shù)據(jù)并清空該緩沖區(qū),該屬性設(shè)計(jì)時(shí)無(wú)效,運(yùn)行時(shí)只讀。利用MSComm控件實(shí)現(xiàn)計(jì)算機(jī)通信的關(guān)鍵是理解并正確設(shè)置MSComm控件眾多屬性和方法。對(duì)數(shù)據(jù)位周期中心采樣的偏差也不會(huì)超過(guò)位周期時(shí)間的1/16。通信中有兩點(diǎn)影響著數(shù)據(jù)的正確接收。在空閑狀態(tài),線路呈現(xiàn)出高電平或者“1”狀態(tài)。實(shí)際上,RS232的25條引腳中大部分是很少用的,在計(jì)算機(jī)與終端的通信中,一般只用3~9條引腳。有四種檢錯(cuò)方式:偶、奇、高和低。每個(gè)包是指一個(gè)字節(jié),包括開(kāi)始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。其他線用于握手,但是不是必須的。如錄像機(jī)廠家中的Sony與松下對(duì)錄像機(jī)的RS422控制協(xié)議是有差異的,視頻服務(wù)器上的控制協(xié)議則更多了,如Louth、Odetis協(xié)議是公開(kāi)的,而ProLINK則是基于Profile上的。電腦一般有兩個(gè)串行口:COM1和COM2,你到計(jì)算機(jī)后面能看到9針D形接口就是了。但是僅僅是一個(gè)串行接口,也有著各種各樣不同的標(biāo)準(zhǔn),比如:RS232C、RS422/RS485(這是我們一提到串口就會(huì)立刻想到的),上文中提到的SATA、USB,還有IEEE1394等等。另外,就是對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,以便于檢索;或者把數(shù)據(jù)恢復(fù)成原來(lái)物理量的形式,以可輸出的形態(tài)在輸出設(shè)備上輸出,例如打印,顯示,繪圖等??傊?,不論在哪個(gè)應(yīng)用領(lǐng)域中,數(shù)據(jù)采集與處理將直接影響工作效率和所取得的經(jīng)濟(jì)效益。該階段的數(shù)據(jù)采集分析系統(tǒng)主要有兩類,一類以儀器儀表和采集器,通用接口總線和計(jì)算機(jī)等構(gòu)成。 圖 01 數(shù)據(jù)采集系統(tǒng)的基本組成數(shù)據(jù)采集分析系統(tǒng)的任務(wù)就是采集傳感器輸出的模擬信號(hào)并轉(zhuǎn)換成計(jì)算機(jī)能識(shí)別的數(shù)據(jù)信號(hào),然后送入計(jì)算機(jī)進(jìn)行相應(yīng)的計(jì)算和處理,得出所需的數(shù)據(jù)。各數(shù)據(jù)采集種類型信號(hào)采集的難易程度差別很大。數(shù)據(jù)采集(DAQ),是指從傳感器和其它待測(cè)設(shè)備等模擬和數(shù)字被測(cè)單元中自動(dòng)采非電量或者電量信號(hào),送到上位機(jī)中進(jìn)行分析,處理。最后,根據(jù)需求,利用Visual Studio 2010設(shè)計(jì)上位機(jī)軟件對(duì)基于RS232接口的激光功率計(jì)實(shí)現(xiàn)控制,數(shù)據(jù)采集以及實(shí)時(shí)分析。從古時(shí)的結(jié)繩計(jì)數(shù),到近代的各種指針式儀器,再到現(xiàn)在的各種數(shù)字式儀表、儀器,以及虛擬儀器,每一次測(cè)量技術(shù)的革新,都直接推動(dòng)了科技的進(jìn)步。基于PC的數(shù)據(jù)采集,通過(guò)模塊化硬件、應(yīng)用軟件和計(jì)算機(jī)的結(jié)合,進(jìn)行測(cè)量。在科研工作和學(xué)習(xí)中,我們經(jīng)常用到一些儀器儀表。因此,對(duì)本課題的研究有極其廣闊的發(fā)展前景和巨大的經(jīng)濟(jì)價(jià)值。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展和普及,數(shù)據(jù)采集分析系統(tǒng)在多個(gè)領(lǐng)域有著廣泛的應(yīng)用。數(shù)據(jù)采集分析系統(tǒng),從嚴(yán)格的意義上來(lái)說(shuō),應(yīng)該是用計(jì)算機(jī)控制的多路數(shù)據(jù)自動(dòng)檢測(cè)或巡回檢測(cè),并且能夠?qū)?shù)據(jù)實(shí)行存儲(chǔ)、處理、分析計(jì)算以及從檢測(cè)的數(shù)據(jù)中提取可用的信息,供顯示、記錄、打印或描繪的系統(tǒng)。在近端與遠(yuǎn)端通信過(guò)程中,采用串行RS232標(biāo)準(zhǔn),實(shí)現(xiàn)PC機(jī)與單片機(jī)間的數(shù)據(jù)傳輸。它是在1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、 調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。RS422是一種單機(jī)發(fā)送、多機(jī)接收的單向、平衡傳輸規(guī)范,被命名為T(mén)IA/EIA422A標(biāo)準(zhǔn)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。它表示每秒鐘傳送的bit的個(gè)數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是7和8位。典型的值為1。例如,如果數(shù)據(jù)是011,那么對(duì)于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個(gè)。接受端再將接受到的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)。起始位以“0”表示。脈沖周期、脈沖寬度總有誤差。在Windows下,對(duì)串口進(jìn)行控制主要有兩種方式,一是使用MSComm串口控件,其二是使用系統(tǒng)提供的API函數(shù)對(duì)串口進(jìn)行控制。 3. Portopen:設(shè)置或返回串口狀態(tài)。 11. Output:向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設(shè)計(jì)時(shí)無(wú)效,運(yùn)行可寫(xiě)。當(dāng)發(fā)送緩沖區(qū)中字符數(shù)小于該值時(shí),MSComm控件設(shè)置Commevent屬性為ComEvSend,并產(chǎn)生OnComm事件。用戶程序就可在OnComm事件處理程序中針對(duì)不同的代碼,進(jìn)行相應(yīng)的處理。查詢方式是指程序定期周期性地檢查串口的緩沖區(qū),發(fā)現(xiàn)有數(shù)據(jù)就讀取數(shù)據(jù)。查詢命令一定會(huì)用‘?’來(lái)結(jié)束(在終止符之前)。3. 因?yàn)閿?shù)據(jù)的讀取相對(duì)于PC來(lái)說(shuō)是個(gè)漫長(zhǎng)的過(guò)程,在這過(guò)程中,PC可以完成許多其他的任務(wù),因此我們的類必須是非阻塞的——可以在后臺(tái)執(zhí)行數(shù)據(jù)的傳輸。 //設(shè)置波特率連接以及斷開(kāi)連接、詢問(wèn)是否連接: bool Connect()。 void SetAreaCorrection( BOOL setValue )。子線程函數(shù):CommProc這個(gè)函數(shù)主要負(fù)責(zé)通信,并將結(jié)果存儲(chǔ)在緩沖區(qū)當(dāng)中,當(dāng)收到終止符(回車換行)的時(shí)候,選擇是否發(fā)送消息。 返回值根據(jù)stdcall函數(shù)的規(guī)定,函數(shù)調(diào)用正常,返回0,否則返回非0值,表示錯(cuò)誤代碼。 ans)。 ResetEvent(m_hReceived)。 m_bConnected=false。因?yàn)槲覀儗?duì)數(shù)據(jù)采集的速率要求并不高,一般在10Hz左右,所以沒(méi)有使用復(fù)雜的方法進(jìn)行定時(shí),自動(dòng)采集,而是簡(jiǎn)單的設(shè)置一個(gè)以采樣周期為基準(zhǔn)的定時(shí)器,定時(shí)執(zhí)行GetDataImmediate成員函數(shù),并在每次采集回?cái)?shù)據(jù)之后刷新顯示。數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)因?yàn)榇鎯?chǔ)的內(nèi)容很簡(jiǎn)單,單純的浮點(diǎn)數(shù),所以使用線性數(shù)組來(lái)存儲(chǔ),MFC提供CArray最合適不過(guò),而且還支持Serialize功能,省去了文件存儲(chǔ)的許多麻煩。 arm_peroid。ClientRect)。 }else{ SetScrollSizes(MM_TEXT,sizeTotal)。 (i,()START_Y+5,i+50,())。 for(int i=0。 } pDCSelectObject(pOldPen)。 for(int i=imin。 CMFCRibbonComboBox *ctrl_baud=DYNAMIC_DOWNCAST( CMFCRibbonComboBox,pFrame(ID_COMBO_BAUD))。void CMy3SigmaView::OnTimer(UINT_PTR nIDEvent){ if(nIDEvent==ID_TIMER_ASKDATA) { double ans。 SetScrollPos(SB_HORZ,)。}而數(shù)據(jù)采集的終止則非常的簡(jiǎn)單:關(guān)閉定時(shí)器: KillTimer(ID_TIMER_ASKDATA)。9. 來(lái)回拖動(dòng)滾動(dòng)條,并試著放大縮小10. 使用程序的截圖功能,并將截取的圖像粘貼到windows自帶的畫(huà)圖工具當(dāng)中。 ~TSigma(void)。 void Disconnect()。 void SetAreaCorrection( BOOL setValue )。private: static UINT CommProc(LPVOID pParam)。 // Buffer for data and mand received Buffer m_buffer。}。 m_hReceived = CreateEvent(NULL,TRUE,FALSE,NULL)。 COMMTIMEOUTS TimeOuts。 return false。 m_bConnected=true。 = m_nBaud。 if(!SetCommState(m_hPort,amp。 WaitForSingleObject(m_pThreadm_hThread,INFINITE)。 memset(amp。 fState=WriteFile(m_hPort,(LPSTR)buf,dwLength,amp。 length=0。 COMSTAT ComStat。 if(==NULL) { AfxMessageBox(Error in CommProc:Can not create event)。(pTSigmam_csCommunicationSync))。os)。dwMask,amp。 default: AfxMessageBox(ERROR RECEIVING FROM SERIAL PORT)。 if(msg[length2]!=39。 port ){ m_strPort = port。 if( GetSigmaMsg(sigma_sn) ) return true。 if( GetSigmaMsg(probe_sn) ) return true。 if( GetSigmaMsg(probe_model) ) return true。 ans ){ char str_ans[100]。 m_fSendMessage = true。 SendSigmaMsg(CONF:AREA:CORR?)。}bool TSigma::GetDataImmediate( doubleamp。 if(!GetSigmaMsg(buf)) { m_fSendMessage=true。// Operationspublic:// Overridespublic: int axis_x_interva
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1