CCAENV262Busy

Name

CCAENV262Busy -- Concrete busy class for the CAEN V262 input module.

Synopsis


#include <CCAENV262Busy>
         
 class CCAENV262Busy : public CBusy {

  CCAENV262Busy(uint32_t base, unsigned crate);
  CCAENV262Busy(CCaenIO& module);
  CCAENV262Busy(const CCAENV262Busy& rhs);

  virtual void GoBusy();
  virtual void GoReady();
}

Description

This class uses the CAEN V262 I/O register to provide signals needed to implement a computer busy. When you use this module, module outputs have the following meanings:

OutputMeaning
SHP0

Computer is about to go busy for a long time

SHP1

Computer is about to go ready.

SHP3

Module clears are output just prior to releasing the busy.

Note that SHP0 is not a hardware signal. It means that the computer is about to be busy due to data taking stopping or pausing. To use this module you must have an external latch or gate generator in latch mode. The latch should start on the OR of the master trigger and SHP0 it should clear on SHP1.

The module clears are a convenience output and need not be used, however if you can use them, this is quicker than clearing modules in software.

Public member functions

CCAENV262Busy(uint32_t base, unsigned crate);

Construct a busy object. base is the base address of the V262 module and crate the VME crate in which the module lives. crate is an optional parameter that defaults to 0.

CCAENV262Busy(CCaenIO& module);

Constructs a busy object. module is a refererence to a CCaenIO module that has already been constructed and will be the busy hardware controlled by this object.

CCAENV262Busy(const CCAENV262Busy& rhs);

Copy constructs a new busy module that is a functional equivalent to rhs.

virtual void GoBusy();

Called by the framework to indicate the busy should be asserted. This is not called in response to a gate. Busy in response to a gate must happen at hardware speeds, not software.

virtual void GoReady();

Called by the framework to indicate it is able to react to the next trigger.

EXAMPLES

Example 1. Creating and registering a V262 as a busy:


#include <CCAENV262Busy.h>
...
void
Skeleton::SetupReadout(CExperiment* pExperiment)
{
   ...
   pExperiment->EstablishBusy(new CCAENV262(0x444400));
   ...
}
                

SEE ALSO

CBusy(3sbsReadout) CaenIO(3daq) CCAENV262Trigger(3sbsReadout)