Dear All, I was adviced by Al to open this thread so probably I found someone who worked on controlling An agilent scope (for me is 54831D) from a Linux box. The LAN I/O library in Agilent website exists in windows only. The solution is to use sockets TCP/IP communication that I worked on before but if someone has ready code it will be faster. The other alternative is to have the windows C libray code so that I can migrate it to Linux.
Dear Al, We wrote a lot of code for our Lab DAQ to take data with the agilent O-Scope including a trigger scan utility to compute frequency versus trigger level. But it seems the scope hangs when there is no any trigger even after the vxi timeout and the hanging only disapears when we change the signal amplitude or reboot the scope, else the scope will not answer to any vxi command during hanging.
I've run into the before and I'm trying to remember the complete issue.
Scopes have a minimum trigger voltage that they will respond to. That voltage is dependent on the scope and the V/div setting. Many people use 'Auto' trigger. In that case, if the scope doesn't see a trigger, that it forces a trigger at a 'random' time, just so the user will see something on the screen. In some programming modes, the SW will hang because the scope never sees a real trigger, just the forced one.
Try running the scope manually, with the signals and settings you'll need to capture your signal. Make sure that Auto trigger is turned off. Does the scope trigger? Try adjusting the trigger level and/or the V/div setting. Can you make it trigger reliably in manual mode? If so, change your program so that it uses the same settings that worked manually.
If you can't get the scope to trigger manually, then it will never trigger programmatically. In that case you need to change the way you communicate with the scope. Look at the manual section on synchronization. "Blocking Synchronization" which you are using, will cause a timeout. "Polling Synchronization" will not.