#include <stdio.h>
#include "libvkdaq.h"
#define VkDaqErrChk(functionCall) if( VkDaqFailed(error=(functionCall)) ) goto Error; else
int main(void)
{
TaskHandle taskHandle = "VkDaqTaskHandle";
float64 data[1000];
int64 total = 0;
int32 error = 0;
int32 read = 0;
VkDaqErrChk(
VkDaqCreateAIAccelChan(taskHandle,
"dev1/AIN1",
"", VkDaq_Val_SingleEnded, 0, 100, VkDaq_Val_AccelUnit_g, 0.05, DAQmx_Val_SignalType_IEPE,
""));
VkDaqErrChk(
VkDaqCfgSampClkTiming(taskHandle, VkDaq_Val_ClkSrc_OnBoardClk, 10000, VkDaq_Val_Rising, VkDaq_Val_ContSamps, 0));
printf("Acquiring samples continuously.\n");
while (true) {
read =
VkDaqGetTaskData(taskHandle, data, 1000, VkDaq_Val_GroupByScanNumber, 1);
if (read > 0) {
printf("Acquired %d samples. Total %lld\r", read, total += read);
fflush(stdout);
}
}
Error:
if (VkDaqFailed(error))
if (taskHandle != 0) {
}
printf("End of program, press Enter key to quit\n");
getchar();
return 0;
}
int32_t VkDaqClearTask(const char *task)
清除任务
int32_t VkDaqCreateAIAccelChan(const char *task, const char *chans, const char *reserved1, int32_t terminalConfig, double minVal, double maxVal, int32_t units, double sensitivity, int32_t signalType, const char *reserved2)
创建加速度传感器通道
int32_t VkDaqCreateTask(const char *task)
创建任务
int32_t VkDaqStartTask(const char *task)
开始任务
int32_t VkDaqStopTask(const char *task)
停止任务
const char * VkDaqGetLastErrorInfo(void)
获取最后一次执行的错误信息
int32_t VkDaqGetTaskData(const char *task, double dat[], int32_t sampsPerChan, int32_t fillmode, double timeout)
获取任务数据
int32_t VkDaqCfgSampClkTiming(const char *task, int32_t source, double samplingFrequency, int32_t reserved, int32_t sampleMode, int32_t sampsPerChanToAcquire)
设置采样时钟的来源、采样时钟的速率以及要采集或生成的采样数