VISA Events

The VIs and functions on the Event Handling palette handle VISA events. To handle VISA events, you must enable event queuing with the VISA Enable Event function. Queues work per session and per event type, so you must enable queuing on every session for which you want to handle events.

Use the VISA Wait on Event function to retrieve events from a queue. If an event of the specified type already has occurred, calling VISA Wait on Event returns that event immediately, regardless of the value you set for the timeout parameter.

You also can use VISA Wait on Event to wait for events that currently do not exist in the queue. Execution stops until an event of the specified type arrives or until the VISA Wait on Event function times out. Set a reasonable timeout value to wait for events that currently do not exist in the queue.

Tip Tip  To check if the queue contains any events of the type you specified, set timeout on the VISA Wait on Event function to 0 (immediate).

When the VISA Wait on Event function returns an event, the event no longer exists in the queue for the session on which you invoked the wait operation. However, if event queuing is enabled on any other VISA session, the event remains in the queue for that session until it is retrieved.

Use the VISA Disable Event function to disable event queuing on a specific VISA session. When you call this function, no additional events are added to the queue for the session. However, the queue retains any events that already existed in the queue. You can either retrieve or discard these events. To retrieve the events, use the VISA Wait on Event function. To discard the events, use the VISA Discard Events function.

The default length of VISA event queues is 50. If the queue is full and a new event arrives, the new event is discarded. Event queues in VISA do not grow dynamically, but you can use the General Settings:Maximum Queue Length property to change the size of an event queue programmatically. If you change the queue length on a given session, you must do so before VISA Enable Event is called for the first time.

The following table lists the events you can handle with these VIs and functions. This table includes a description of each event along with its supported resource classes, such as GPIB, PXI etc.

Note Note  The serial events are valid only on Windows and platforms on which National Instruments supports its ENET-Serial products.

Event NameDescriptionResource Classes
Service RequestNotifies the application that a service request was received from the device or interface associated with the given session.
Note Note  When you receive this event on an instrument session, you must call VISA Read STB to guarantee delivery of future service request events on the given session.
GPIB INSTR, GPIB INTFC, GPIB-VXI INSTR, TCPIP INSTR, USB INSTR, VXI INSTR
TriggerNotifies the application that a trigger interrupt was received from the device. This may be either a hardware or software trigger, depending on the interface and the current session settings.GPIB INTFC, VXI INSTR, VXI BACKPLANE, VXI SERVANT
ClearNotifies the application that a device clear message was sent to the local controller.GPIB INTFC, VXI SERVANT
VXI SignalNotifies the application that a VXIbus signal or VXIbus interrupt was received from the device associated with the given session.VXI INSTR
VXI/VME InterruptNotifies the application that a VXIbus interrupt was received from the device associated with the given session.VXI INSTR
VXI/VME SysfailNotifies the application that the VXI/VME SYSFAIL* line was asserted.VXI BACKPLANE
VXI/VME SysresetNotifies the application that the VXI/VME SYSRESET* line was asserted.VXI BACKPLANE, VXI SERVANT
GPIB CICNotifies the application that the GPIB controller has gained or lost CIC (controller-in-charge) status.GPIB INTFC
GPIB TalkNotifies the application that the GPIB controller was addressed to talk.GPIB INTFC
GPIB ListenNotifies the application that the GPIB controller has been addressed to listen.GPIB INTFC
PXI InterruptNotifies the application that a PXI interrupt occurred.PXI INSTR
USB InterruptNotifies the application that a USB interrupt has occurred.USB INSTR, USB RAW
Serial BreakNotifies the application that a break signal was received.Serial INSTR
Serial TermCharNotifies the application that the termination character was received. The actual termination character is specified by setting the Message Based Settings:Termination Character Enable property prior to enabling this event. For this event, the setting of the Message Based Settings:Termination Character Enable property is ignored.Serial INSTR
Serial CTSNotifies the application that the Clear To Send (CTS) line changed state. If the CTS line changes state quickly several times in succession, not all line state changes necessarily result in event notifications.Serial INSTR
Serial DSRNotifies the applications that the Data Set Ready (DSR) line changed state. If the DSR line changes state quickly several times in succession, not all line state changes necessarily result in event notifications.Serial INSTR
Serial DCDNotifies the application that the Data Carrier Detect (DCD) line changed state. If the DCD line changes state quickly several times in succession, not all line state changes necessarily result in event notifications.Serial INSTR
Serial RINotifies the application that the Ring Indicator (RI) input signal was asserted.Serial INSTR
Serial CharacterNotifies the application that at least one data byte has been received. Each data character does not necessarily result in an event notification. In other words, if multiple data bytes arrive at once, you may get only one event. After receiving this event, use the Serial Settings:Number of Bytes at Serial Port property to query the serial port for the number of bytes available.Serial INSTR