-
Notifications
You must be signed in to change notification settings - Fork 130
Description
This problem report is tangentially related to the discussion here: https://forum.image.sc/t/custom-waveform-generation-for-ni-daq-galvo-control/118662.
Every time I try to set the AOTriggerInputPort property of the NIDAQ device adapter I receive the following error:
Cannot set property "AOTriggerInputPort" to "/Dev1/PFI3" [ Error in device "NIDAQHub": Physical channel specified does not exist on this device.
Refer to the documentation for channels available on this device. (20003) ]
This applies to other PFI ports as well. The thing is, I know for certain that PFI 3 exists and I have, in fact, used it as a trigger port in custom Python scripts using NIDAQmx.
Looking at the device adapter code, I think the problem is somewhere in this helper function that is run at the end of the OnTriggerInputPort callback:
| int NIDAQHub::SwitchTriggerPortToReadMode() |
I can see the log message Created Trigger pin read task in the core logs before the error occurs, which leads me to believe that it's one of the two downstream NIDAQmx calls that causes the issue. My guess is that it's the call to DAQmxCreateDIChan.
My NIDAQ card does not have ChangeDetection capabilities, but looking at the device adapter documentation it does not appear that it is necessary if I am using only analog outputs.
I suspect that there are two possibilities, and I could use your advice on what to do next:
ChangeDetectionis necessary for triggering analog-only output sequences. The documentation could be updated to explicitly mention this because the error message is misleading.- It's really a bug and I ought to be able to trigger analog output sequences by sending trigger signals to the PFI ports.
In any case I wonder whether this is something that could be supported, or whether using an internal trigger is possible as well.
Versions and Hardware
- Micro-Manager nightly build 20260116
- Windows 11
- NI PCI-6733