Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

can not control triggers on Ubuntu

Solved!
Go to solution
I have tried the following code on NI RT:



import pyvisa
import pyvisa.constants
pyvisa.log_to_screen()
address = 'PXI0::1::BACKPLANE'
rm = pyvisa.ResourceManager()
backplane = rm.open_resource(address)
src_bus = 1
dest_bus = 2
trigger = pyvisa.constants.VI_TRIG_TTL0 # i.e. PXI_Trig0
print("Connection go backplane")
#print(backplane.manufacturer_name)
#print(backplane.model_name)
print("BUS setup up before:")
print(backplane.get_visa_attribute(pyvisa.constants.VI_ATTR_PXI_SRC_TRIG_BUS))
print(backplane.get_visa_attribute(pyvisa.constants.VI_ATTR_PXI_DEST_TRIG_BUS))
backplane.set_visa_attribute(pyvisa.constants.VI_ATTR_PXI_SRC_TRIG_BUS, src_bus)
backplane.set_visa_attribute(pyvisa.constants.VI_ATTR_PXI_DEST_TRIG_BUS, dest_bus)

print("BUS setup up after:")
print(backplane.get_visa_attribute(pyvisa.constants.VI_ATTR_PXI_SRC_TRIG_BUS))
print(backplane.get_visa_attribute(pyvisa.constants.VI_ATTR_PXI_DEST_TRIG_BUS))
# route trigger 0 from source bus to destination bus
print(backplane.session)
trigger_sw = pyvisa.constants.VI_TRIG_SW # i.e. PXI_Trig0
#backplane.set_visa_attribute(pyvisa.constants.VI_ATTR_TRIG_ID, trigger_sw)

for x in range (0,7):
trigger = x
backplane.visalib.map_trigger(backplane.session, trigger, trigger, pyvisa.constants.VI_NULL)
# backplane.set_visa_attribute(pyvisa.constants.VI_ATTR_TRIG_ID, trigger)
# backplane.visalib.assert_trigger(backplane.session, pyvisa.constants.VI_TRIG_PROT_RESERVE)
input("Press Enter to continue...")
rm.close()

and it works, I even verified in hardware the triggers are mapping through.

 

However, running the same code* in Ubuntu on the same machine (PXIe-8881 with a PXIe-1092 backplane) throws unknown error:

VI_ERROR_SYSTEM_ERROR BFFF0000h Unknown system error (miscellaneous error).

 

I tried the same code in C and C# and get the same error message. I also note that running NI hardware configuration manager (there is no NI MAX for Ubuntu) does not have a triggers setting tab. Anyone know what is going on? Did NI not implement triggers in Ubuntu? All I need is a mapping from segment 1 to segment 2 but because I have other Compact PCI express cards in the rack, I need Ubuntu as I do not have drivers that work in NI RT OS.

 

Thanks

 

* interestingly I had to comment out code in RT that works in Linux. This is because the pyvisa library in RT is incomplete and does not have constants etc that _are_ defined in the open source version!

0 Kudos
Message 1 of 4
(350 Views)

Try How to Reserve or Route PXI Trigger in Linux Desktop?

-------------------------------------------------------
Control Lead | Intelline Inc
0 Kudos
Message 2 of 4
(332 Views)

As the link clearly says; this is no longer supported. Which is a shame. Is there an updated version of this?

0 Kudos
Message 3 of 4
(323 Views)
Solution
Accepted by topic author rw_supplier

OK it looks like the issue is that the controller I am using is not supported by Ubuntu. When I run the same code in RT Linux it works. This is a bit frustrating to say the least.

0 Kudos
Message 4 of 4
(314 Views)