在 DAQmx 设备上查找有效的触发源
Find valid trigger sources on DAQmx device
通过 C++ 使用 National Instruments 的 DAQmx,我想向用户展示系统上可用的可能物理触发输入的列表。
我可以通过调用
之类的东西来设置任务以在外部触发器上启动
char* trigger_source = "/Dev1/PFI0";
DAQmxCfgDigEdgeStartTrig(taskAO, trigger_source, DAQmx_Val_Rising);
有没有办法获取 trigger_source
的有效值列表?我发现 DAQmxGetSystemInfoAttribute(DAQmx_Sys_DevNames, , )
可以获取系统中可用设备的列表,而且我知道 DAQmxGetDevDILines()
和类似的函数可以为我提供设备上某些端口类型的列表。但是,我没有发现 returns PFI。
如果无法获得列表,有没有一种合理的方法来测试给定的猜测字符串如"/Dev%d/PFI%d"
是否是有效的触发源?
有两种方法:
- 动态点播
- 猜测检查缓存查询
动态
您可以构建此列表,但不能只调用驱动程序。使用这些属性的组合:
DAQmxGetDevTerminals(const char device[], char *data, uInt32 bufferSize)
其中 return 是 PFI 线以及内部端子。它没有 return 任何 I/O 终端(如 ai0
)。
DAQmxGetDevAIPhysicalChans(const char device[], char *data, uInt32 bufferSize)
其中return是AI子系统的通道终端;其他 DAQ 子系统也有类似的调用。
DAQmxGetDevAnlgTrigSupported(const char device[], bool32 *data)
其中return设备是否支持从模拟信号触发。
DAQmxGetDevDigTrigSupported(const char device[], bool32 *data)
其中return设备是否支持数字信号触发。
DAQmxGetDevAITrigUsage(const char device[], int32 *data)
其中 returnAI 子系统可以使用的触发器类型;其他 DAQ 子系统也有类似的调用。
已缓存
您还可以创建一个虚拟任务并预览每个终端和触发器类型的组合。
您不需要 运行 任务,只需 "verify" 它,这将提示驱动程序 运行 其规则系统在这些设置上 return如果不支持该配置,则会出现错误。如果您将它们缓存在内存或文件(或数据库或其他任何内容)中,查询它而不是驱动程序可能更容易。
DAQmxTaskControl (TaskHandle taskHandle, int32 action)
移动 DAQmx state model 中的任务。对 action
参数使用 DAQmx_Val_Task_Verify
将验证所有任务参数对硬件是否有效。
通过 C++ 使用 National Instruments 的 DAQmx,我想向用户展示系统上可用的可能物理触发输入的列表。
我可以通过调用
之类的东西来设置任务以在外部触发器上启动char* trigger_source = "/Dev1/PFI0";
DAQmxCfgDigEdgeStartTrig(taskAO, trigger_source, DAQmx_Val_Rising);
有没有办法获取 trigger_source
的有效值列表?我发现 DAQmxGetSystemInfoAttribute(DAQmx_Sys_DevNames, , )
可以获取系统中可用设备的列表,而且我知道 DAQmxGetDevDILines()
和类似的函数可以为我提供设备上某些端口类型的列表。但是,我没有发现 returns PFI。
如果无法获得列表,有没有一种合理的方法来测试给定的猜测字符串如"/Dev%d/PFI%d"
是否是有效的触发源?
有两种方法:
- 动态点播
- 猜测检查缓存查询
动态
您可以构建此列表,但不能只调用驱动程序。使用这些属性的组合:
DAQmxGetDevTerminals(const char device[], char *data, uInt32 bufferSize)
其中 return 是 PFI 线以及内部端子。它没有 return 任何 I/O 终端(如ai0
)。DAQmxGetDevAIPhysicalChans(const char device[], char *data, uInt32 bufferSize)
其中return是AI子系统的通道终端;其他 DAQ 子系统也有类似的调用。DAQmxGetDevAnlgTrigSupported(const char device[], bool32 *data)
其中return设备是否支持从模拟信号触发。DAQmxGetDevDigTrigSupported(const char device[], bool32 *data)
其中return设备是否支持数字信号触发。DAQmxGetDevAITrigUsage(const char device[], int32 *data)
其中 returnAI 子系统可以使用的触发器类型;其他 DAQ 子系统也有类似的调用。
已缓存
您还可以创建一个虚拟任务并预览每个终端和触发器类型的组合。
您不需要 运行 任务,只需 "verify" 它,这将提示驱动程序 运行 其规则系统在这些设置上 return如果不支持该配置,则会出现错误。如果您将它们缓存在内存或文件(或数据库或其他任何内容)中,查询它而不是驱动程序可能更容易。
DAQmxTaskControl (TaskHandle taskHandle, int32 action)
移动 DAQmx state model 中的任务。对action
参数使用DAQmx_Val_Task_Verify
将验证所有任务参数对硬件是否有效。