hello one and all,
I'm not a low-level guru, but over the decades I've managed to mutter through. I ask for guidance in properly and stably programming the low-level waiting for SRQ to complete. I know, I know, I could just install the NI drivers and use wait_on_srq(timeout) under my python program for instance. and yes, that works great as NI-Trace shows below:
- viAssertTrigger (GPIB0::20::0::INSTR (0x00000001), 0 (0x0)) | Status: 0 (VI_SUCCESS)
- viEnableEvent (GPIB0::20::0::INSTR (0x00000001), 0x3FFF200B (VI_EVENT_SERVICE_REQ), 1 (0x1), 0 (0x0)) | Status: 0 (VI_SUCCESS)
- viWaitOnEvent (GPIB0::20::0::INSTR (0x00000001), 0x3FFF200B (VI_EVENT_SERVICE_REQ), 24999 (0x61A7), 0x3FFF200B (VI_EVENT_SERVICE_REQ), 0x00013001) | Status: 0 (VI_SUCCESS)
- viClose ("GPIB0::20::0::INSTR Event" (0x00013001)) | Status: 0 (VI_SUCCESS)
where line #38 has the computer waiting until the exact moment the instrument is done measuring, acquiring, and amassing the 25 voltages or what have you.
BUT, here is the deal. I'm trying to desperately get my raspberry Pi computer, running Raspian OS and python 3, to wait_on_srq(timeout) but I can not reproduce the wait because the NI drivers/DLLs are doing some magic for me when I execute the wait_on_srq(timeout) AND those drivers are not available for raspberry PIs OS.
now I know I can rapid poll and interate the stb of the instrument to guess when the instrument has completed its job. but that is insanely inefficient. so, may a NI guru who knows what's going on within the NI-Driver/DLLs to guide me through getting this correct on a platform where the NI-Drivers/DLLs can not be installed or run?
thank you in advance and merry Christmas. Lucas