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< QBasePulserController > | fBaseTimer |
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 | |
QSlowControlClient * | fSlowClient |
QBaseDigitalController * | fDioCtrl |
unsigned int | fNextGroupId |
long | fDelay |
void QBasePulserController::PrepareNext | ( | ) |
prepare pulser registers for next shot
References fGroups, fGroupsIt, and StorePulseId().
Referenced by QPulserController::HandleTimeOutChild(), QGuiPulserController::HandleTimeOutChild(), QPulserController::Init(), and QGuiPulserController::Init().
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] |
initialize connection with slow control client
References QDbDetector::DN_CUORE0, QDbDetector::DN_CUORICINO, QDbDetector::DN_HALLC, QDbDetector::DN_HALLC_CUORE, QDbDetector::DN_THREETOWERS, QDbDetector::DN_UNKNOWN, QSlowControlClient::GetBasket(), QBaseClient::GetError(), QSlowControlClient::GetMode(), QSlowControlClient::LoadDevice(), QSlowControlClient::SetTuningMode(), QSlowControlClient::SetWriteMode(), and THIS_DETECTOR.
Referenced by QPulserController::Init(), and QGuiPulserController::Init().
void QBasePulserController::InitDioCtrl | ( | ) | [protected] |
digital I/O board initialization
Referenced by QPulserController::Init(), and QGuiPulserController::Init().
std::vector<QPulserGroup*> QBasePulserController::fGroups [protected] |
vector of groups of channels with the same delay
Referenced by QPulserController::BuildGroups(), QGuiPulserController::BuildGroups(), ConnectDelayTimers(), QPulserController::Init(), QGuiPulserController::Init(), PrepareNext(), QBasePulserController(), Run(), StartDelayTimers(), StopDelayTimers(), and ~QBasePulserController().
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().
QTimer<QBasePulserController> QBasePulserController::fBaseTimer [protected] |
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().