#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();
}
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:
Output | Meaning |
---|---|
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.
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.