
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().
1.5.6