Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

How far has a NI-488.2M Send() data come when the function returns?

I have the following setup:

Solaris 2 machine <---> GPIB-ENET/100 <---> Instrument

I'm developing a C-application for the instrument supposed to run on the Solaris-machine and I have the following question:
Suppose I make a NI-488.2M Send() call to the instrument. Do I at the time the Send() call returns (without errors) have any guarantees about how far the data has come?
Am I guaranteed that the message has reached the GPIB-ENET/100 or even all the way to the instrument?

0 Kudos
Message 1 of 4
(3,286 Views)
Send is a synchronous call on all platforms. When Send returns to you, you know that all bytes have been successfully transferred across the GPIB.
0 Kudos
Message 2 of 4
(3,281 Views)
As GPIB Guru mentioned, Send() is a synchronous IO call.  You should also check ibsta, iberr, and ibcntl to ensure that there were no errors during the call.  If ibsta contains CMPL without ERR bit set, you should be able to check ibcntl to validate that all data bytes were sent.

Craig A.
National Instruments Engineer
0 Kudos
Message 3 of 4
(3,275 Views)

Great.

Thank you both!

0 Kudos
Message 4 of 4
(3,271 Views)