📄 daq.cpp
字号:
// DAQ.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "NIDAQmx.h"
#include "DAQ.h"
#pragma comment(lib, "NIDAQmx.lib")
#define DAQmxErrChk(functionCall) if( DAQmxFailed(error=(functionCall)) ) goto Error
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
/////////////////digital line output//////////////////////////////////////////////////////////////////////////////
int DigitalLineOut(const char line[128], uInt8 data[8])
{
int32 error=0;
TaskHandle taskHandle=0;
DAQmxErrChk (error=DAQmxCreateTask("Digital line output",&taskHandle));
DAQmxErrChk (error=DAQmxCreateDOChan(taskHandle, line, "", DAQmx_Val_ChanForAllLines));
DAQmxErrChk (error=DAQmxStartTask(taskHandle));
DAQmxErrChk (error=DAQmxWriteDigitalLines(taskHandle, 1, 1, 10.0, DAQmx_Val_GroupByChannel, data, NULL, NULL));
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
return 0;
Error:
if( taskHandle!=0 )
{
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
}
return -1;
}
///////////////////////////digital line input//////////////////////////////////////////////////////////////////////
int DigitalLineIn(const char *line, uInt8 *data)
{
int32 error=0;
TaskHandle taskHandle=0;
memset(data,0,sizeof(data));
int32 read,bytesPerSamp;
DAQmxErrChk (error=DAQmxCreateTask("Digital line input",&taskHandle));
DAQmxErrChk (error=DAQmxCreateDIChan(taskHandle, line, "", DAQmx_Val_ChanForAllLines));
DAQmxErrChk (error=DAQmxStartTask(taskHandle));
DAQmxErrChk (error=DAQmxReadDigitalLines(taskHandle,1,10.0,DAQmx_Val_GroupByChannel,data,8,&read,&bytesPerSamp,NULL));
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
return 0;
Error:
if( taskHandle!=0 )
{
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
}
return -1;
}
//////////////////////analog input//////////////////////////////////////////////////////////////////////////////////
int AnalogIn(const char line[128],float64 *data)
{
int32 error=0;
TaskHandle taskHandle=0;
DAQmxErrChk (error=DAQmxCreateTask("Analog input",&taskHandle));
DAQmxErrChk (error=DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai0","",DAQmx_Val_RSE,-5.0,5.0,DAQmx_Val_Volts,NULL));
// DAQmxErrChk (error=DAQmxCfgSampClkTiming(taskHandle,"",10000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,1));
DAQmxErrChk (error=DAQmxStartTask(taskHandle));
DAQmxErrChk (error=DAQmxReadAnalogScalarF64(taskHandle, 10.0,data, NULL));
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
return 0;
Error:
if( taskHandle!=0 )
{
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
}
return -1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -