admin管理员组

文章数量:1567533

2024年5月26日发(作者:)

维普资讯

对话框控制Gage信号采集卡的软件编写 

●春秋视讯专栏 

-75- 

基亏 VC的高速高分辨率采集软件 

王思思.李永彬 

(西安春秋视讯有限责任公司,陕西西安710065) 

1概述 

利用对话框应用程序控制Gage采集卡采集数 

据,从软件的角度理解采集卡的工作过程。通过对 

话框实现一段数据的采集,并将所采集到的数据从 

采集卡传输到内存,以文件的形式存储到硬盘中。 

2软件编写背景 

采用GageScope示波器软件测试信号采集卡和 

SDK.了解采集卡硬件的工作原理和样本程序的设 

计。 

3对话框控制采集软件程序设计 

3.1软件具有的功能 

(1)采集深度可设置 

(2)采样率可设置 

(3)采集模式可选 

(4)内触发设置,具有通道触发和软件触发两 

种方式 

(5)外触发设置,选择外触发后,内触发所有选 

项无效 

外触发的相关参数:触发电平是用触发源满量 

程输入幅度范围的百分比表示;外触发量程范围 

为±1 V和±5 V可选:外触发输入阻抗有1 MQ和 

50 Q可选;上升/下降沿可选。 

(6)通道参数设置。通道量程范围:+100 mV,± 

200 mV, ̄500 V,±1 V,±2 V和±5 V;通道输入阻抗 

有1 MQ和50 Q可选:耦合方式有AC、DC两种方 

式可选。 

(7)数据有三种存储格式:浮点类型,十进制和 

十六进制。 

3.2软件程序设计思路 

通过使用GageScope示波器软件测试信号采集 

卡,了解采集卡硬件的工作过程,得知硬件卡需要 

控制的参数: 

(1)系统设置参数:采集深度、采集模式、采样 

率的设置; 

(2)通道设置参数:通道输入幅度、通道阻抗、 

通道耦合方式: 

(3)触发设置参数:触发方式、触发电平、触发 

输入幅度、触发阻抗和触发耦合: 

(4)数据存储格式设置。 

参考Gage的CompuScope SDK for C/C#中的 

样本程序。其采集参数设置方法是通过将读取到的 

INI配置文件中的设置参数填写到采集配置结构. 

然后调用Gage驱动函数将配置结构提交到采集 

卡.控制采集卡采集参数设置。因此,如果想要通过 

对话框应用程序控制采集卡设置采集参数.可提供 

两种方法: 

方法一,首先利用对话框中的控件改变INI文 

件的配置参数,根据Gage样本程序的工作原理,通 

过INI文件将参数传给采集配置结构体,通过驱动 

函数将配置结构提交采集卡实现设置采集的参数: 

方法二,直接将对话框中的参数设置写到配置 

结构体中,同样也要调用驱动函数将配置参数提交 

给采集卡。 

注:该软件采用第一种方法。 

4软件编写 

数据采集控制流程图如图1所示。 

4.1 MFC编写对话框应用程序采集控制软件界面 

MFC AppWizard可自动生成部分源代码,修改 

部分代码并添加控件,完成其应用程序的编写。 

MFC对话框应用程序的编写: 

(1)运行Microsoft Visual C++6.0。 

(2)选择“File”_+“New”选单命令,显示“New”对 

话框。单击Projects标签,从列表中选择“MFC Ap— 

pWizard(exe)”,创建一个工作空间。 

(3)单击“OK”按钮,在应用程序类型中选择 

“Dialog based”选项,单击“Finish”按钮。 

(4)程序运行后,就会弹出一个只有“确定”和 

“取消”按钮的对话框基本应用程序框架。 

(5)将目录工作区切换到ResousrceView页面, 

在Dialog目录下双击ID ACQDLG_DIALOGE对话 

维普资讯

..

76.. 《国外电子元器件)2007年第7期 2007年7月 

图1数据采集控制流程图 

框ID,就会进入该对话框编辑器进行编辑。对话框 

中有控件工具栏和布局工具栏,可以根据使用工具 

栏中的工具向对话框中添加、删除控件,改变控件 

的Tab键次,利用基准线、标尺及布局工具进行控 

件布局,对于该对话框控制Gage采集卡采集信号 

软件界面设计如图2。 

4.2利用函数WritePrivateProfifeString()将界面 

获得的配置参数写入INI文件中。 

函数原形: 

Bool WritePrivarteProfileString( 

LPCTSTR lpAppName.//字段名 

LPCTSTR lpKeyName,#tit.g 

LPCTSTR lpString.||数据 

PCTSTR lpEleName //INI文件名 1; 

4.3读取INI配置文件将参数写到采集配置结构。 

调用驱动函数将其提交给采集卡实现采集工作。 

(1)将配置从驱动传输到硬件,使用“ACTION— 

COMMIT”命令 

(2)开始采集,使用“ACTION—START”命令。 

4.4等待并不断的判断采集是否结束 

if(!DataCaptureComplete(hSystem)) 

{ CsFreeSystem(hSystem); 

return; l 

图2话框控制Gage采集卡采集信号软件界面设计 

BOOL DataCaptureComplete(CSHANDLE hSystem) 

{int32 i32Status; 

,牢Wait until the acquisition is complete. / 

i32Status=CsGetStatus(hSystem); 

while(!(ACQ_STATUS_READY==i32Status)) 

i32Status=CsGetStatus(hSystem); 

return TRUE; 

) 

4.5分配内存空间 

pBuffer接受存储板卡原始量化数据 

pBuffer=-VirtualAlloc(NULL, 

(size_t)(CsAppData.i64TransferLength CsSyslnfo.u32Sample— 

Size),MEM—COMMIT,PAGE_READWRITE); 

pVBuffer接收存储转化后的浮点数据 

pVBuffer-=(lfoat )VirtualAlloc(NULL, 

(size_t)(CsAppData.i64TransferLength sizeof(float)), 

MEM

..

COMMIT,PAGE

_

READWRITE); 

4.6根据传输结构参数。分通道进行数据传输,格 

式转化。写文件 

CsTransfer(hSystem,&InData,&OutData) 

ConvertToVolts(hSystem, (ulnt32)i, i64TransferredDepth, 

&CsSyslnfo,pBuffer,pVBuffer) 

SaveFile(szFileName,pSrcBuffer,OutData.i64ActualStart,OutDa— 

ta.i64ActualLength,NO

_

TIME

_

STAMPl_VALUE, 

CsSyslnfo.u32SampleSize,CsAppData.i32SaveFormat); 

4.7采集完成后释放内存和采集系统 

VirtualFree(pVBufer,0,MEM_RELEASE) 

VirtualFree(pBuffer,0,MEM_RELEASE) 

CsFreeSystem(hSystem) 

收稿日期:2007—06—13 

咨询编号:070721 

本文标签: 采集触发参数对话框设置