Chapter 3 Software Overview
NI-VXI User Manual
3-38
© National Instruments Corporation
Programming Considerations
The global signal queue used to hold signal values is of a finite length.
If the application is not handling signals fast enough, it is theoretically
possible to fill the global signal queue. If the global signal queue
becomes full,
DisableSignalInt
is called to inhibit more signals
from being received. Under the VXIbus specification, if the local CPU
signal FIFO becomes full (in which case a signal be lost if another
signal is written), the local CPU must return a bus error on any
subsequent writes to its Signal register. This bus error condition
notifies the sending CPU that the signal transfer needs to be retried.
This guarantees the application that, even if the global signal queue
becomes full, no signals will be lost.
In addition to
DisableSignalInt
, the
DisableVXItoSignalInt
function is also called to disable VXI/VME interrupts from occurring
on levels that are routed to the signal Processor. When
SignalDeq
is
called to remove a signal from the global signal queue, the interrupts
for the Signal register and the VXI/VME interrupt levels routed to the
signal handler are automatically re-enabled.
If signals received never get dequeued, the global signal queue
eventually becomes full and the interrupts will be disabled forever. If
the signals were routed to the
DefaultSignalHandler
, all except
Unrecognized Command Events from message-based devices perform
no operation. Unrecognized Command Events call the function
WSabort
to abort the current Word Serial operation in progress.