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
版权声明:本文标题:基于VC的高速高分辨率采集软件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1716682410a514645.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论