⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ai_finite.cpp

📁 labview8.2.1与DAQ数据采集原码
💻 CPP
字号:
///////////////////////////////////////////////////////////////
#include <iostream.h>
#include <stdio.h>
#include "NIDAQmx.h"   // 添加NI-DAQmx C API的头文件

// 定义宏DAQmxErrChk(functionCall),用于检查程序运行过程中是否有错误发// 生,其中DAQmxFailed(error)也是宏,在NIDAQmx.h中有定义语句#define 
// DAQmxFailed(error)  ((error)< 0)
#define DAQmxErrChk(functionCall)     {if( DAQmxFailed (error=(functionCall)) ) {goto Error;}}  

int main()
{   
	// 定义变量
	int32        error=0;     // 错误代码
	TaskHandle  taskHandle=0;   // 任务句柄
    float64      rate;     // 采样率
    uInt32       sampsPerChanToAcquire;   // 每通道要获取数据样本数
    uInt32       arraySizeInSamps;    // 返回数据样本的长度
    int32        sampsPerChanRead;    // 实际读取数据样本数
	char         errBuff[2048]={'\0'};    // 存储错误信息的字符串数组
	
    // 由用户输入变量值
	cout<<"输入采样率:";
	cin>>rate;
	cout<<"输入每通道要获取数据样本数:";
	cin>>sampsPerChanToAcquire;

    arraySizeInSamps = sampsPerChanToAcquire;
    float64* readArray = new float64[arraySizeInSamps];   // 为存储返回数据的数组分配内存空间

	DAQmxErrChk(DAQmxCreateTask("",&taskHandle));  // 创建任务
	
DAQmxErrChk(DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));  // 创建模拟输入电压测量通道,这里选择Dev1/ai0物理通道作为测量通道

	DAQmxErrChk(DAQmxCfgSampClkTiming(taskHandle,"",rate,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,sampsPerChanToAcquire));  // 定时设置,设置为采用内部时钟的有限采样

	DAQmxErrChk(DAQmxStartTask(taskHandle));  //启动任务

	DAQmxErrChk(DAQmxReadAnalogF64(taskHandle,-1,10.0,DAQmx_Val_GroupByChannel,readArray,arraySizeInSamps,&sampsPerChanRead,NULL));  // 读取数据并存储于readArray数组中
    
	cout<<endl<<"获取了"<<sampsPerChanRead<<"个样本"<<endl;
    
Error:
	if(DAQmxFailed(error))   // 判断是否发生错误
	DAQmxGetExtendedErrorInfo(errBuff,2048);   // 将出错信息存入errBuff数组
	
if(taskHandle!=0)   // 判断是否创建了任务
	{ 
	   DAQmxStopTask(taskHandle);   // 停止任务
   	   DAQmxClearTask(taskHandle);   // 清除任务
	}

	if(DAQmxFailed(error))
	   cout<<endl<<"DAQmx 错误: "<<errBuff<<endl;   // 输出出错信息
    
	delete [] readArray;   //释放分配给数组的内存
	
	cout<<endl<<"按回车键退出程序"<<endl;
    getchar();

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -