#include <CStatusModule.h>
class CStatusModule {virtual void GoBusy();
virtual void GoClear();
virtual void ModuleClear();
}
CStatusModule
is an abstract base class for status module classes.
The NSCL Data acquisition system readout software is an event by event readout system.
in that mode, each event has a dead-time associated with the time it takes to read
a single event. Unless digitizers with multi event buffers are used, and used in
multi-event mode, it is necessary to hold off triggers while the system is dead due to
the software overhead. This is done via status modules.
A status module is by the software primarily to let the external electronics know
that it has finished and that additional events can be gated into the system.
Due to the fact that software latencies are normally several microseconds we recommend using a status module in conjunction with a latch module. The latch gets set by the master trigger, and subsequently cleared by the software generated outputs of the status module.
Note that since this class is an abstract base class, we will describe the expectations the client has of the abstract member functions as implemented by concrete subclasses.
This will be called when the system is going to go busy for a while, and be unable to respond to triggers. Note that this will not be called for each event, as the latencies are too long to make that useful.
Called when the the system can go live and accept new events. The status module should emit a signal to the external dead time logic to clear any busy latch that may have been set.
Called when it is necessary to clear data taking modules. Some/many status modules have extra outputs that can be fanned out into module clear inputs allowing all modules to be cleared in parallel.