上位机编程示例word版本Word下载.docx

上传人:b****1 文档编号:5109211 上传时间:2023-05-04 格式:DOCX 页数:39 大小:2.47MB
下载 相关 举报
上位机编程示例word版本Word下载.docx_第1页
第1页 / 共39页
上位机编程示例word版本Word下载.docx_第2页
第2页 / 共39页
上位机编程示例word版本Word下载.docx_第3页
第3页 / 共39页
上位机编程示例word版本Word下载.docx_第4页
第4页 / 共39页
上位机编程示例word版本Word下载.docx_第5页
第5页 / 共39页
上位机编程示例word版本Word下载.docx_第6页
第6页 / 共39页
上位机编程示例word版本Word下载.docx_第7页
第7页 / 共39页
上位机编程示例word版本Word下载.docx_第8页
第8页 / 共39页
上位机编程示例word版本Word下载.docx_第9页
第9页 / 共39页
上位机编程示例word版本Word下载.docx_第10页
第10页 / 共39页
上位机编程示例word版本Word下载.docx_第11页
第11页 / 共39页
上位机编程示例word版本Word下载.docx_第12页
第12页 / 共39页
上位机编程示例word版本Word下载.docx_第13页
第13页 / 共39页
上位机编程示例word版本Word下载.docx_第14页
第14页 / 共39页
上位机编程示例word版本Word下载.docx_第15页
第15页 / 共39页
上位机编程示例word版本Word下载.docx_第16页
第16页 / 共39页
上位机编程示例word版本Word下载.docx_第17页
第17页 / 共39页
上位机编程示例word版本Word下载.docx_第18页
第18页 / 共39页
上位机编程示例word版本Word下载.docx_第19页
第19页 / 共39页
上位机编程示例word版本Word下载.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

上位机编程示例word版本Word下载.docx

《上位机编程示例word版本Word下载.docx》由会员分享,可在线阅读,更多相关《上位机编程示例word版本Word下载.docx(39页珍藏版)》请在冰点文库上搜索。

上位机编程示例word版本Word下载.docx

获取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=异常

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

4.DRFM_Load_FPGA

intDRFM_Load_FPGA(intboard_id,char*path);

加载XC6VSX315T芯片FPGA程序

path=加载文件

5.DRFM_Load_9520

intDRFM_Load_9520(intboard_id,char*stp_path,DWORDbaseAddr);

配置AD9520时钟文件

stp_path=时钟文件

baseAddr=基址

6.DRFM_Load_9739

intDRFM_Load_9739(intboard_id,DWORDbaseAddr);

配置AD9739

7.DRFM_Read_Memory

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

读XC5VLX30T寄存器

bar=BAR空间

addr=偏移地址

data=内存首地址

length=长度(DWORD)

8.DRFM_Write_Memory

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

写XC5VLX30T寄存器

bar=基地址

9.DRFM_Load_ADC

intDRFM_Load_ADC(intboard_id);

配置ADC10D1500

10.DSP_Load

intDSP_Load(intboard_id,CStringm_HPILoaderFilePath);

加载DSP

m_HPILoaderFilePath=加载路径

板卡控制流程代码

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);

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

m_drfm.DRFM_Write_Memory(0,m_space,m_offset,&

//写数据

搭建界面

1.新建项目

2.选择工程类型

3.MFC应用程序向导

4.选择应用程序类型

5.启动界面编辑窗口

6.拖放控件

7.为控件添加变量

8.设置变量参数

9.添加列和行

OnInitDialog方法中加入以下代码

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

m_wndListCtrl1.InsertColumn(0,"

X"

0,100);

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

m_wndListCtrl1.InsertColumn(1,"

Y"

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

m_wndListCtrl1.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

//定义字符串变量

CStringstrData;

//添加N行数据

for(inti=0;

i<

N;

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.打印第一条消息

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.编写绘图代码

OnPrintData中插入绘图功能

afx_msgLRESULTCDRFMSYSDlg:

OnPrintData(WPARAMwParam,LPARAMlParam)

double*pData=(double*)wParam;

//获取数据指针

//定义字符串变量

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<

j++)

doublex=(double)j;

doubley=pData[j];

//赋值

XValues.PutElement(&

j,&

x);

YValues.PutElement(&

y);

m_Series.AddArray(N,YValues,XValues);

//绘制曲线

delete[]pData;

//释放内存

return0;

11.运行效果

线程创建与执行

1.添加线程执行函数

2.定义Process()

3.启动工作线程

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-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2