CStatusModule -- Abstract base class for status modules.


#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.

Public member functions

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.

virtual void GoBusy(void);

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.

virtual void GoClear(void);

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.

virtual void ModuleClear(void);

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.