通过C ++使用NI的DAQmx,我想向用户提供系统上可用的物理触发输入列表。
我可以通过调用类似
之类的东西来设置任务以启动外部触发器NSLayoutManager.h
有没有办法获取char* trigger_source = "/Dev1/PFI0";
DAQmxCfgDigEdgeStartTrig(taskAO, trigger_source, DAQmx_Val_Rising);
的有效值列表?我找到trigger_source
来获取系统中可用设备的列表,我知道DAQmxGetSystemInfoAttribute(DAQmx_Sys_DevNames, , )
和类似的功能可以为我提供设备上某些类型端口的列表。但是,我没有找到任何可以返回PFI的东西。
如果无法获得列表,是否有一种理智的方法来测试像DAQmxGetDevDILines()
这样的给定猜测字符串是否是有效的触发源?
答案 0 :(得分:0)
有两种方法:
您可以构建此列表,但不能单次调用驱动程序。使用这些属性的组合:
DAQmxGetDevTerminals(const char device[], char *data, uInt32 bufferSize)
ai0
)。DAQmxGetDevAIPhysicalChans(const char device[], char *data, uInt32 bufferSize)
DAQmxGetDevAnlgTrigSupported(const char device[], bool32 *data)
DAQmxGetDevDigTrigSupported(const char device[], bool32 *data)
DAQmxGetDevAITrigUsage(const char device[], int32 *data)
您还可以创建虚拟任务并预览每个终端并触发类型组合。
您不需要运行任务,只需“验证”它,这将提示驱动程序在这些设置上运行其规则系统,并在不支持该配置时返回错误。如果将它们缓存在内存或文件(或数据库或其他)中,则可能更容易查询而不是驱动程序。
DAQmxTaskControl (TaskHandle taskHandle, int32 action)
DAQmx_Val_Task_Verify
参数使用action
将验证所有任务参数是否对硬件有效。