上位机编程示例教程文件.docx

上传人:b****8 文档编号:10918622 上传时间:2023-02-23 格式:DOCX 页数:39 大小:2.39MB
下载 相关 举报
上位机编程示例教程文件.docx_第1页
第1页 / 共39页
上位机编程示例教程文件.docx_第2页
第2页 / 共39页
上位机编程示例教程文件.docx_第3页
第3页 / 共39页
上位机编程示例教程文件.docx_第4页
第4页 / 共39页
上位机编程示例教程文件.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

上位机编程示例教程文件.docx

《上位机编程示例教程文件.docx》由会员分享,可在线阅读,更多相关《上位机编程示例教程文件.docx(39页珍藏版)》请在冰豆网上搜索。

上位机编程示例教程文件.docx

上位机编程示例教程文件

 

上位机编程示例

WinDriver安装与使用

1.获取安装文件和序列号

Win32平台使用WD1020X86.EXE安装

Win64平台使用WD1021X64.EXE安装

序列号文件sn.txt

2.安装向导,[NEXT>]

3.许可声明,[IAgree]

4.安装选项,[Next>]

5.安装目录,[Install]

6.安装…

7.WindowsVista及以上版本会弹出Windows安全提示,勾选始终信任来自”JungoLTD”的软件,点击[安装]

8.安装完成,[Finish]

9.注册提示,[RegisterNow]

10.输入licensestring,[Activatelicense]

11.注册成功后CurrentActiveLicens发生变化,点击[OK]

12.安装成功

DRFM板驱动说明

接口说明

1.DRFM_Board_num

函数

intDRFM_Board_num();

描述

获取DRFM板数量

参数

返回值

板卡数量

备注

DRFM板对上位机是一个PCI设备,上位机通过两个ID号(VendorID&DeviceID)识别PCI设备,获取板卡数量实际上是扫描指定ID号的PCI设备数量。

2.DRFM_Open

函数

boolDRFM_Open(intboard_id);

描述

打开板卡

参数

board_id=板卡号

返回值

true=成功false=失败

备注

对板卡进行操作前,需要打开板卡;

板卡号可根据DRFM_Board_num返回值确定取值范围,[0,板卡数量);

3.DRFM_Close

函数

intDRFM_Close(intboard_id);

描述

关闭板卡

参数

board_id=板卡号

返回值

0=正常非0=异常

备注

对板卡操作完成后,需关闭板卡;

板卡号可根据DRFM_Board_num返回值确定取值范围,[0,板卡数量);

4.DRFM_Load_FPGA

函数

intDRFM_Load_FPGA(intboard_id,char*path);

描述

加载XC6VSX315T芯片FPGA程序

参数

board_id=板卡号

path=加载文件

返回值

0=正常非0=异常

备注

5.DRFM_Load_9520

函数

intDRFM_Load_9520(intboard_id,char*stp_path,DWORDbaseAddr);

描述

配置AD9520时钟文件

参数

board_id=板卡号

stp_path=时钟文件

baseAddr=基址

返回值

0=正常非0=异常

备注

6.DRFM_Load_9739

函数

intDRFM_Load_9739(intboard_id,DWORDbaseAddr);

描述

配置AD9739

参数

board_id=板卡号

baseAddr=基址

返回值

0=正常非0=异常

备注

7.DRFM_Read_Memory

函数

voidDRFM_Read_Memory(intboard_id,intBar,DWORDaddr,DWORD*data,intlength);

描述

读XC5VLX30T寄存器

参数

board_id=板卡号

bar=BAR空间

addr=偏移地址

data=内存首地址

length=长度(DWORD)

返回值

备注

8.DRFM_Write_Memory

函数

voidDRFM_Write_Memory(intboard_id,intBar,DWORDaddr,DWORD*data,intlength);

描述

写XC5VLX30T寄存器

参数

board_id=板卡号

bar=基地址

addr=偏移地址

data=内存首地址

length=长度(DWORD)

返回值

备注

9.DRFM_Load_ADC

函数

intDRFM_Load_ADC(intboard_id);

描述

配置ADC10D1500

参数

board_id=板卡号

返回值

0=正常非0=异常

备注

10.DSP_Load

函数

intDSP_Load(intboard_id,CStringm_HPILoaderFilePath);

描述

加载DSP

参数

board_id=板卡号

m_HPILoaderFilePath=加载路径

返回值

0=正常非0=异常

备注

板卡控制流程代码

1.准备工作

基于WinDriver实现

使用已有的DRFM板卡驱动

DeviceBase.h

drfm.h

DEVICE.lib

将以上三个文件加入工程

在对话框类中声明DRFM_BOARD类对象;

2.初始化

在CDRFMSYSDlg:

:

OnInitDialog中添加板卡初始化操作

RegistDevice(NULL);//注册驱动库

ConnectToDevice();//连接至板卡

intnum=m_drfm.DRFM_Board_num();//获取板卡数量

CStringstrBoardNum;

strBoardNum.Format("检测到%d块DRFM板卡",num);//格式化字符串

PrintMessage(strBoardNum);//打印消息

3.为控件添加变量

同样方法添加以下变量

偏移地址m_offset

数据m_data

4.按钮事件响应函数

UpdateData(TRUE);//更新参数

m_drfm.DRFM_Read_Memory(0,m_space,m_offset,&m_data,1);//读数据

//m_space为地址空间

//m_offset为偏移量

//m_data为数据

UpdateData(FALSE);//更新参数

///////////////////////////////////////////////////////////////////////////////////////////

UpdateData(TRUE);//更新参数

m_drfm.DRFM_Write_Memory(0,m_space,m_offset,&m_data,1);//写数据

//m_space为地址空间

//m_offset为偏移量

//m_data为数据

搭建界面

1.新建项目

2.选择工程类型

3.MFC应用程序向导

4.选择应用程序类型

5.启动界面编辑窗口

6.拖放控件

7.为控件添加变量

8.设置变量参数

9.添加列和行

在CDRFMSYSDlg:

:

OnInitDialog方法中加入以下代码

//第0列名称为X,宽度100

m_wndListCtrl1.InsertColumn(0,"X",0,100);

//第1列名称为Y,宽度100

m_wndListCtrl1.InsertColumn(1,"Y",0,100);

//设置列表的样式LVS_EX_FULLROWSELECT=正行选取LVS_EX_GRIDLINES=显示网格

m_wndListCtrl1.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

//定义字符串变量

CStringstrData;

//添加N行数据

for(inti=0;i

{

//格式化字符串变量

strData.Format(“%d”,i);

//添加行

m_wndListCtrl1.InsertItem(i,strData);

}

10.同样方法为输出列表创建对象,添加列

创建对象m_wndListCtrl2

为控件添加列:

时间、描述、线程

11.更新列表信息

12.添加自定义消息

13.同样方法再添加一个自定义消息

消息名称:

WM_USER+2

消息处理程序:

OnPrintMessage

14.OnPrintData中定义列表更新方法

15.通过PostMessage更新列表信息

16.OnPrintMessage中定义消息更新方法

17.定义消息打印接口函数

18.打印第一条消息

在CDRFMSYSDlg:

:

OnInitDialog方法中加入以下代码

PrintMessage(CString("这是第一条消息"));

TeeChart控件使用说明

1.注册TeeChart

将TeeChart8.ocx拷贝至c:

\目录下;

[Win]+[R],输入cmd,[回车];

输入regsvr32c:

\teechart8.ocx,[回车]

2.添加TeeChart控件

3.插入ActiveX控件

4.调整好TeeChart控件大小与位置

5.对控件进行相关设置

双击TeeChart控件会弹出设置窗口

6.选择绘图类型

7.设置绘图属性

8.为TeeChart控件添加类

9.TeeChart控件和对象关联

注释掉构造函数的初始化

10.编写绘图代码

在CDRFMSYSDlg:

:

OnPrintData中插入绘图功能

afx_msgLRESULTCDRFMSYSDlg:

:

OnPrintData(WPARAMwParam,LPARAMlParam)

{

double*pData=(double*)wParam;//获取数据指针

CStringstrData;//定义字符串变量

for(inti=0;i

{

strData.Format("%lf",pData[i]);//格式化字符串

m_wndListCtrl1.SetItemText(i,1,strData);//设置列表信息

}

longSeriesCount=m_Chart.get_SeriesCount();//获取曲线的数量

ASSERT(SeriesCount==1);//断言曲线数量为1

CSeriesm_Series=m_Chart.Series(0);//获取第0条曲线

m_Series.Clear();//清空曲线点

COleSafeArrayXValues,YValues;//定义X轴和Y轴数据变量

DWORDrgElements[]={N};//定义数据长度

XValues.Create(VT_R8,1,rgElements);//申请数据内存空间

YValues.Create(VT_R8,1,rgElements);

for(longj=0;j

{

doublex=(double)j;

doubley=pData[j];//赋值

XValues.PutElement(&j,&x);

YValues.PutElement(&j,&y);

}

m_Series.AddArray(N,YValues,XValues);//绘制曲线

delete[]pData;//释放内存

return0;

}

11.运行效果

线程创建与执行

1.添加线程执行函数

2.定义Process()

3.启动工作线程

在CDRFMSYSDlg:

:

OnInitDialog方法中加入以下代码

AfxBeginThread(Thread,this);

4.运行效果

网络通信接口使用说明

接口说明

我们使用封装好的两个类进行网络通信的程序开发:

CSocketServer和CSocketClient

将以下文件加入工程:

SocketServer.h

SocketServer.cpp

SocketClient.h

SocketClient.cpp

1.Open

2.Close

3.Send

4.Recv

编写网络流程代码

1.声明CSocketServer对象

在头文件中声明对象

#include“SocketServer.h”

CSocketServerm_SocketServer;

在源文件中构造对象

CDRFMSYSDlg:

:

CDRFMSYSDlg(CWnd*pParent/*=NULL*/):

CDialogEx(CDRFMSYSDlg:

:

IDD,pParent),m_SocketServer(6000)

端口号6000

2.在工作线程执行函数DRFMSYSDlg:

:

Process()中加入网络流程代码

3.运行效果

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1