QBasePulserController Class Reference

Inheritance diagram for QBasePulserController:

QGuiPulserController QPulserController

List of all members.


Detailed Description

abstract class for pulser sequence control

Author:
sergio.didomizio@ge.infn.it

Public Member Functions

 QBasePulserController ()
 ctor
virtual ~QBasePulserController ()
 dtor
int Run ()
 just start timer and start waiting for timeout
void Fire ()
 fire pulser and send digital word to DAQ using the digital I/O board
void PrepareNext ()
void HandleTimeOut ()
 this function is called at each timeout
void StartDelayTimers ()
 start group-based delay timers
void StopDelayTimers ()
 stop group-based delay timers

Protected Member Functions

virtual void HandleTimeOutChild ()=0
 method called every time a delay timeout expires
virtual void StorePulseId (unsigned int pulseId)
 needed by gui version to store next pulse id to be fired
void InitSlowClient (int settingsBasket)
void InitDioCtrl ()
void ConnectDelayTimers ()
 connect group-based delay timers to HandleDelay() method

Protected Attributes

std::vector< QPulserGroup * > fGroups
std::vector< QPulserGroup * >
::const_iterator 
fGroupsIt
QTimer< QBasePulserControllerfBaseTimer
unsigned long fTimeBase
const unsigned long kPulserMinDelay

Private Member Functions

void BuildDelayIndexes (const std::map< unsigned int, QPulserChannel * > &pChans)
 build delay indexes
void ApplySlowConfig (const unsigned int &pulseId, const QPulserConfig *config)
void PrepareDigital (const unsigned int &pulseId, const QPulserConfig *config)

Private Attributes

QSlowControlClientfSlowClient
QBaseDigitalControllerfDioCtrl
unsigned int fNextGroupId
long fDelay

Member Function Documentation

void QBasePulserController::PrepareNext (  ) 

virtual void QBasePulserController::HandleTimeOutChild (  )  [protected, pure virtual]

method called every time a delay timeout expires

This method is called automatically by HandleTimeout() and must be implemented by child classes

Implemented in QGuiPulserController, and QPulserController.

Referenced by HandleTimeOut().

void QBasePulserController::InitSlowClient ( int  settingsBasket  )  [protected]

void QBasePulserController::InitDioCtrl (  )  [protected]

digital I/O board initialization

Referenced by QPulserController::Init(), and QGuiPulserController::Init().


Member Data Documentation

std::vector<QPulserGroup*> QBasePulserController::fGroups [protected]

std::vector<QPulserGroup*>::const_iterator QBasePulserController::fGroupsIt [protected]

iterator pointing to the next group that will fire

Referenced by QPulserController::BuildGroups(), QGuiPulserController::BuildGroups(), PrepareNext(), and ~QBasePulserController().

handles pulser period

Referenced by QPulserController::Init(), QGuiPulserController::Init(), and Run().

const unsigned long QBasePulserController::kPulserMinDelay [protected]

minimum delay between different groups

Referenced by QPulserController::BuildGroups(), and QGuiPulserController::BuildGroups().


The documentation for this class was generated from the following files:

Generated on Tue Nov 16 10:50:04 2010 for CUORE Software by  doxygen 1.5.6