上位機(jī)編程示例_第1頁(yè)
上位機(jī)編程示例_第2頁(yè)
上位機(jī)編程示例_第3頁(yè)
上位機(jī)編程示例_第4頁(yè)
上位機(jī)編程示例_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流上位機(jī)編程示例.精品文檔.WinDriver安裝與使用1. 獲取安裝文件和序列號(hào)Win32平臺(tái)使用WD1020X86.EXE安裝Win64平臺(tái)使用WD1021X64.EXE安裝序列號(hào)文件sn.txt2. 安裝向?qū)В琋EXT>3. 許可聲明,I Agree4. 安裝選項(xiàng),Next>5. 安裝目錄,Install6. 安裝7. Windows Vista及以上版本會(huì)彈出Windows安全提示,勾選始終信任來(lái)自”Jungo LTD”的軟件,點(diǎn)擊安裝8. 安裝完成,F(xiàn)inish9. 注冊(cè)提示,Register Now10. 輸入licen

2、se string,Activate license11. 注冊(cè)成功后Current Active Licens發(fā)生變化,點(diǎn)擊OK12. 安裝成功DRFM板驅(qū)動(dòng)說(shuō)明接口說(shuō)明1. DRFM_Board_num函數(shù)int DRFM_Board_num();描述獲取DRFM板數(shù)量參數(shù)無(wú)返回值板卡數(shù)量備注DRFM板對(duì)上位機(jī)是一個(gè)PCI設(shè)備,上位機(jī)通過(guò)兩個(gè)ID號(hào)(Vendor ID & Device ID)識(shí)別PCI設(shè)備,獲取板卡數(shù)量實(shí)際上是掃描指定ID號(hào)的PCI設(shè)備數(shù)量。2. DRFM_Open函數(shù)bool DRFM_Open(int board_id);描述打開(kāi)板卡參數(shù)board_id =板

3、卡號(hào)返回值true = 成功 false = 失敗備注對(duì)板卡進(jìn)行操作前,需要打開(kāi)板卡;板卡號(hào)可根據(jù)DRFM_Board_num返回值確定取值范圍,0,板卡數(shù)量);3. DRFM_Close函數(shù)int DRFM_Close(int board_id);描述關(guān)閉板卡參數(shù)board_id = 板卡號(hào)返回值0 = 正常 非0 = 異常備注對(duì)板卡操作完成后,需關(guān)閉板卡;板卡號(hào)可根據(jù)DRFM_Board_num返回值確定取值范圍,0,板卡數(shù)量);4. DRFM_Load_FPGA函數(shù)int DRFM_Load_FPGA(int board_id,char *path);描述加載XC6VSX315T芯片F(xiàn)P

4、GA程序參數(shù)board_id = 板卡號(hào)path = 加載文件返回值0 = 正常 非0 = 異常備注5. DRFM_Load_9520函數(shù)int DRFM_Load_9520(int board_id,char *stp_path,DWORD baseAddr);描述配置AD9520時(shí)鐘文件參數(shù)board_id = 板卡號(hào)stp_path = 時(shí)鐘文件 baseAddr = 基址返回值0 = 正常 非0 = 異常備注6. DRFM_Load_9739函數(shù)int DRFM_Load_9739(int board_id,DWORD baseAddr);描述配置AD9739參數(shù)board_id =

5、板卡號(hào)baseAddr = 基址返回值0 = 正常 非0 = 異常備注7. DRFM_Read_Memory函數(shù)void DRFM_Read_Memory(int board_id,int Bar,DWORD addr,DWORD *data,int length);描述讀XC5VLX30T寄存器參數(shù)board_id = 板卡號(hào)bar = BAR空間addr = 偏移地址data = 內(nèi)存首地址length = 長(zhǎng)度(DWORD)返回值無(wú)備注8. DRFM_Write_Memory函數(shù)void DRFM_Write_Memory(int board_id,int Bar,DWORD addr,

6、DWORD *data,int length);描述寫(xiě)XC5VLX30T寄存器參數(shù)board_id = 板卡號(hào)bar = 基地址addr = 偏移地址data = 內(nèi)存首地址length = 長(zhǎng)度(DWORD)返回值無(wú)備注9. DRFM_Load_ADC函數(shù)int DRFM_Load_ADC(int board_id);描述配置ADC10D1500參數(shù)board_id = 板卡號(hào)返回值0 = 正常 非0 = 異常備注10. DSP_Load函數(shù)int DSP_Load(int board_id,CString m_HPILoaderFilePath);描述加載DSP參數(shù)board_id = 板

7、卡號(hào)m_ HPILoaderFilePath = 加載路徑返回值0 = 正常 非0 = 異常備注板卡控制流程代碼1. 準(zhǔn)備工作基于WinDriver實(shí)現(xiàn)使用已有的DRFM板卡驅(qū)動(dòng)DeviceBase.hdrfm.hDEVICE.lib將以上三個(gè)文件加入工程在對(duì)話框類中聲明DRFM_BOARD類對(duì)象;2. 初始化在CDRFMSYSDlg:OnInitDialog中添加板卡初始化操作RegistDevice(NULL);/注冊(cè)驅(qū)動(dòng)庫(kù)ConnectToDevice();/連接至板卡int num = m_drfm.DRFM_Board_num();/獲取板卡數(shù)量CString strBoardNum

8、;strBoardNum.Format("檢測(cè)到 %d 塊 DRFM 板卡", num);/格式化字符串PrintMessage(strBoardNum);/打印消息3. 為控件添加變量同樣方法添加以下變量偏移地址 m_offset數(shù)據(jù) m_data4. 按鈕事件響應(yīng)函數(shù)UpdateData(TRUE);/更新參數(shù)m_drfm.DRFM_Read_Memory(0, m_space, m_offset, &m_data, 1);/讀數(shù)據(jù)/m_space為地址空間/m_offset為偏移量/m_data為數(shù)據(jù)UpdateData(FALSE);/更新參數(shù)/Update

9、Data(TRUE);/更新參數(shù)m_drfm.DRFM_Write_Memory(0, m_space, m_offset, &m_data, 1);/寫(xiě)數(shù)據(jù)/m_space為地址空間/m_offset為偏移量/m_data為數(shù)據(jù)搭建界面1. 新建項(xiàng)目2. 選擇工程類型3. MFC應(yīng)用程序向?qū)?. 選擇應(yīng)用程序類型5. 啟動(dòng)界面編輯窗口6. 拖放控件7. 為控件添加變量8. 設(shè)置變量參數(shù)9. 添加列和行在CDRFMSYSDlg:OnInitDialog方法中加入以下代碼/第0列名稱為X,寬度100m_wndListCtrl1.InsertColumn(0, "X",

10、 0, 100);/第1列名稱為Y,寬度100m_wndListCtrl1.InsertColumn(1, "Y", 0, 100);/設(shè)置列表的樣式LVS_EX_FULLROWSELECT = 正行選取LVS_EX_GRIDLINES = 顯示網(wǎng)格m_wndListCtrl1.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); /定義字符串變量CString strData; /添加N行數(shù)據(jù)for (int i=0; i<N; i+)/格式化字符串變量strData.Format(“%d”, i);

11、/添加行m_wndListCtrl1.InsertItem(i, strData); 10. 同樣方法為輸出列表創(chuàng)建對(duì)象,添加列創(chuàng)建對(duì)象m_wndListCtrl2為控件添加列:時(shí)間、描述、線程11. 更新列表信息12. 添加自定義消息13. 同樣方法再添加一個(gè)自定義消息消息名稱:WM_USER+2消息處理程序:OnPrintMessage14. OnPrintData中定義列表更新方法15. 通過(guò)PostMessage更新列表信息16. OnPrintMessage中定義消息更新方法17. 定義消息打印接口函數(shù)18. 打印第一條消息在CDRFMSYSDlg:OnInitDialog方法中加入

12、以下代碼PrintMessage(CString("這是第一條消息");TeeChart控件使用說(shuō)明1. 注冊(cè)TeeChart將TeeChart8.ocx拷貝至c:目錄下;Win+R,輸入cmd,回車(chē);輸入regsvr32 c:teechart8.ocx,回車(chē)2. 添加TeeChart控件3. 插入ActiveX控件4. 調(diào)整好TeeChart控件大小與位置5. 對(duì)控件進(jìn)行相關(guān)設(shè)置雙擊TeeChart控件會(huì)彈出設(shè)置窗口6. 選擇繪圖類型7. 設(shè)置繪圖屬性8. 為T(mén)eeChart控件添加類9. TeeChart控件和對(duì)象關(guān)聯(lián)注釋掉構(gòu)造函數(shù)的初始化10. 編寫(xiě)繪圖代碼在CDRF

13、MSYSDlg:OnPrintData中插入繪圖功能afx_msg LRESULT CDRFMSYSDlg:OnPrintData(WPARAM wParam, LPARAM lParam)double *pData = (double*)wParam; /獲取數(shù)據(jù)指針CString strData; /定義字符串變量for (int i=0; i<N; i+)strData.Format("%lf", pDatai); /格式化字符串m_wndListCtrl1.SetItemText(i, 1, strData); /設(shè)置列表信息long SeriesCount

14、= m_Chart.get_SeriesCount(); /獲取曲線的數(shù)量ASSERT(SeriesCount = 1); /斷言曲線數(shù)量為1CSeries m_Series = m_Chart.Series(0); /獲取第0條曲線m_Series.Clear(); /清空曲線點(diǎn)COleSafeArray XValues, YValues; /定義X軸和Y軸數(shù)據(jù)變量DWORD rgElements = N; /定義數(shù)據(jù)長(zhǎng)度XValues.Create(VT_R8, 1, rgElements); /申請(qǐng)數(shù)據(jù)內(nèi)存空間YValues.Create(VT_R8, 1, rgElements);fo

15、r (long j=0; j<N; j+)double x = (double)j;double y = pDataj; /賦值XValues.PutElement(&j, &x);YValues.PutElement(&j, &y);m_Series.AddArray(N, YValues, XValues); /繪制曲線delete pData; /釋放內(nèi)存return 0;11. 運(yùn)行效果線程創(chuàng)建與執(zhí)行1. 添加線程執(zhí)行函數(shù)2. 定義Process()3. 啟動(dòng)工作線程在CDRFMSYSDlg:OnInitDialog方法中加入以下代碼AfxBeginThread(Thread, this);4. 運(yùn)行效果網(wǎng)絡(luò)通信接口使用說(shuō)明接口說(shuō)明我們使用封裝好的兩個(gè)類進(jìn)行網(wǎng)絡(luò)通信的程序開(kāi)發(fā):CSocketServer和CSocketClient將以下文件加入工程:SocketServer.hSocketServer.cppSocketClient.hSocketClient.cpp1. Open2. Close3. Send4. Recv編寫(xiě)網(wǎng)絡(luò)流程代碼1. 聲明CSo

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論