04-06-2006 03:47 PM
board =
new Board(0);board.IOTimeout= T1s;
04-06-2006 04:04 PM
I am replying to my own posting subject GPIB .NET IOTimeout because my message was prematurely submitted (I don't know how) before I finished typing my questions. It would be useful if a forum moderator can stitch these two postings together .
Product: Measurement Studio2003.NET, NationalInstruments.NI4882.dll assembly
Bus: GPIB
Language: C#
board.IOTimeout= T1s;
Here IOTimeout isn't acting as a traditional property in C# where you can set a property with an assignment statement.
Question 1: how do I set the IOTimeout property?
2.) What's the difference between Board.IOTimeout and Device.IOTimeout? When should each be used?
3.) I am trying to send the *IDN? query to all instruments on the bus, found previously with Board.FindListeners();
One instrument is old and doesn't respond to *IDN?, so it results in a timeout (which I am trying to shorten with the IOTimeout property).
Question 3: What's the best way to deal with instruments that don't respond to the *IDN? query?
04-10-2006 04:07 PM
Hi Tony,
1) The correct assignment statement is:
board.IOTimeout = TimeoutValue.T1s
2) The two different IOTimeout parameters are used with either device-level functions or board-level functions. Look at the last section of the GPIB Messages Tutorial for an expanation of device-level vs. board-level.
3) Some older instruments that are 488.1-compliant but not 488.2 compliant may not respond to *IDN? The best way to deal with instruments that don't respond to the *IDN? query is to either do what you are doing which is shorten the timeout value and just wait for the wuery to timeout, or to not query the devices. In most cases the default 10 second timeout value is overkill. You should be able to set the timout value to something like 500ms and still be able to catch all 488.2 devices.
04-11-2006 05:10 AM