National Instruments NI-VXI Network Card User Manual


 
Chapter 3 Software Overview
© National Instruments Corporation 3-37 NI-VXI User Manual
VXI signals from message-based devices can be one of two types:
Response signals and Event signals (bit 15 distinguishes between the
two). Response signals are used to report changes in Word Serial
communication status between a Servant and its Commander. Event
signals are used to inform another device of other asynchronous
changes. The four Event signals currently defined by the VXIbus
specification (other than Shared Memory Events) are No Cause Given,
Request for Service True (REQT), Request for Service False (REQF),
and Unrecognized Command. REQT and REQF are used to manipulate
the SRQ condition (RSV bit assertion in the IEEE 488/488.2 status
byte) while Unrecognized Command is used to report unsupported
Word Serial commands (only in VXIbus specification, Revision 1.2).
If the sender of a signal (or VXI interrupt status/ID) value is a
register-based device, the upper 8 bits are device dependent. Consult
your device manual for definitions of these values.
Two methods are available to handle VXI signals under the NI-VXI
software interface. Signals can be handled either by calling a handler or
by queuing on a global signal queue. The
RouteSignal
function
specifies which types of signals are handled by the handlers, and which
are queued onto the global signal queue for each VXI logical address.
A separate handler can be installed for each VXI logical address
present (see the description of
SetSignalHandler
). The
InitVXIlibrary
function automatically installs a default handler,
DefaultSignalHandler
, for every VXI logical address. If signals
are queued, the application can use the
SignalDeq
function to
selectively retrieve a signal off a global signal queue by VXI logical
address and/or type of signal.
In another method for handling signals (and VXI/VME interrupts
routed to signals) other than the two previous methods, you can use
the function
WaitForSignal
. This function can suspend a
process/function until a particular signal (or one of a set of signals)
arrives. A multitasking operating system lets you have any number of
WaitForSignal
calls pending. A non-multitasking operating system
permits only one pending
WaitForSignal
call. Notice that even on a
multitasking operating system, there is only one signal queue for the
entire system. Therefore, if two applications both wait on the same
logical address, it will be a race condition as to which process will
receive the signal.