libvkdaq
VKINGING 数据采集库 API 文档
 
载入中...
搜索中...
未找到
查看配置任务参数
注解
简洁用法:读取任务名称、读取任务通道、读取采样率
1.读取任务名称,读取任务属性"Name",使用函数: VkDaqGetTaskAttribute
2.读取任务通道,读取任务属性"Channels",使用函数:VkDaqGetTaskAttribute
3.读取采样率,读取任务属性"SamplingFrequency",使用函数:VkDaqGetTaskAttribute


支持两种方式获取详细的配置信息,但都需要解析JSON格式


方式一的步骤:
1.打开助手,进入创建常规任务界面
2.导出常规任务
3.用文本格式打开
4.解析JSON格式,得到配置信息


方式二的步骤:
1.读取任务属性:"Detail",使用函数: VkDaqGetTaskAttribute
2.解析JSON格式,得到配置信息

助手导出常规任务配置JSON数据示例

键名 数据类型 参数说明
task_name String 任务名
举例:TestTask
task_transmission_mode String 传输模式:
online:在线采集模式
offline_task_args String 暂时不支持
task_io_mode String 采集卡模式:
input:输入模式,进行ADC采集
output:输出模式,进行DAC输出
task_related_devices String 任务相关的硬件设备
举例:dev1
备注:一个任务可支持多个设备
feature_channel_list String Array 任务相关的设备通道与通道配置
备注:一个任务可支持多个设备的不同通道
device_name String 通道配置里,该通道对应的硬件设备名
channel_name String 通道配置里,该通道的通道名称
feature_name String 通道配置里,该通道的物理测量类型
voltage:电压
current:电流
accel:加速度
fullbridge:全桥
feature_channel_args String Array 通道配置里,该通道的具体参数
备注:不同的物理测量类型,有不同的参数
terminal_config int 通道配置里,该通道的输入端子配置
0:单端输入
1:差分输入
min_value int 通道配置里,该通道的期望测量最小值
max_value int 通道配置里,该通道的期望测量最大值
unit int 通道配置里,该通道的单位.
"voltage"模式下:
0:V

"current"模式下
0:A
1:mA

"accel"模式下
0: mV/g、mV/N.
1: m/s^2.
2: in/s^2.
4: V.
sensitivity int 通道配置里,该通道的灵敏度
task_clock String Array 任务采样时钟配置
source int 时钟源
0: 内部时钟.
1: 外部同步脉冲.
2: 主从模式.
sample_rate int 采样率
sample_mode int 采样模式
0:连续采集
1:N采集
sample_count int N采集模式的N点数
task_trigger String Array 任务触发配置
trigger_type Sttring 触发类型
"none": 无触发
"analog_edge": 模拟触发
digital_edge: 数字触发
trigger_edge int 触发边沿
0: 下降沿
1: 上升沿
2: 低电平
1: 高电平
trigger_level double 触发水平
模拟触发的条件下,有效
pretrigger_sample_size int 负延时采集点数
触发后,需要采集的在触发前的点数

C语言参考

#include <stdio.h>
#include "libvkdaq.h"
#define TASKNAMEMAX 4096
#define VkDaqErrChk(functionCall) if( VkDaqFailed(error=(functionCall)) ) goto Error; else
int main(void)
{
char taskNames[TASKNAMEMAX];
char firstTask[TASKNAMEMAX];
int32 error = 0;
// Read the current configured task name
VkDaqErrChk(VkDaqGetTasks(taskNames,TASKNAMEMAX));
printf("taskNames: [%s]\n",taskNames);
// Select the first task read
comma = strchr(taskNames, ',');
size_t len;
if (comma == NULL) {
len = strlen(taskNames);
}
else {
len = (size_t)(comma - taskNames);
}
if (len >= sizeof(firstTask)) {
len = sizeof(firstTask) - 1;
}
memcpy(firstTask, taskNames, len);
firstTask[len] = '\0';
printf("firstTask= %s\n", firstTask);
// Optional: Read the properties of the current task.
// 1. String types: trigger type, sampling rate, number of channels, input type.
// 2. Detailed configuration of JSON format tasks
VkDaqErrChk(VkDaqGetTaskAttribute(firstTask, "Attributes", TaskConfigValue, TASKNAMEMAX));
printf("Attributes= %s\n", TaskConfigValue);
VkDaqErrChk(VkDaqGetTaskAttribute(firstTask, "Name", TaskConfigValue, TASKNAMEMAX));
printf("Name= %s\n", TaskConfigValue);
VkDaqErrChk(VkDaqGetTaskAttribute(firstTask, "Channels", TaskConfigValue, TASKNAMEMAX));
printf("Channels= %s\n", TaskConfigValue);
VkDaqErrChk(VkDaqGetTaskAttribute(firstTask, "ChannelsAvailable", TaskConfigValue, TASKNAMEMAX));
printf("ChannelsAvailable= %s\n", TaskConfigValue);
VkDaqErrChk(VkDaqGetTaskAttribute(firstTask, "Mode", TaskConfigValue, TASKNAMEMAX));
printf("Mode= %s\n", TaskConfigValue);
VkDaqErrChk(VkDaqGetTaskAttribute(firstTask, "SamplingFrequency", TaskConfigValue, TASKNAMEMAX));
printf("SamplingFrequency= %s\n", TaskConfigValue);
VkDaqErrChk(VkDaqGetTaskAttribute(firstTask, "Detail", TaskConfigValue, TASKNAMEMAX));
printf("Detail= %s\n", TaskConfigValue);
Error:
if (VkDaqFailed(error))
printf("VkDaq Error: %s\n", VkDaqGetLastErrorInfo());
printf("End of program, press Enter key to quit\n");
getchar();
return 0;
}
int32_t VkDaqGetTaskAttribute(const char *task, const char *attrName, char attrValue[], int32_t size)
获取任务属性值
int32_t VkDaqGetTasks(char tasks[], int32_t size)
获取任务
const char * VkDaqGetLastErrorInfo(void)
获取最后一次执行的错误信息