void Fe65p2ThresholdScan::init() { // Loop 1: Mask Staging std::shared_ptr<Fe65p2MaskLoop> maskStaging(new Fe65p2MaskLoop); // Loop 2: Double Columns std::shared_ptr<Fe65p2QcLoop> dcLoop(new Fe65p2QcLoop); // Loop 3: Parameter Loop std::shared_ptr<Fe65p2ParameterLoop> parLoop(new Fe65p2ParameterLoop(&Fe65p2GlobalCfg::PlsrDac)); parLoop->setRange(50, 350, 10); // Loop 4: Trigger std::shared_ptr<Fe65p2TriggerLoop> triggerLoop(new Fe65p2TriggerLoop); // Loop 5: Data gatherer std::shared_ptr<StdDataLoop> dataLoop(new StdDataLoop); dataLoop->setVerbose(false); dataLoop->connect(g_data); this->addLoop(maskStaging); this->addLoop(dcLoop); this->addLoop(parLoop); this->addLoop(triggerLoop); this->addLoop(dataLoop); engine.init(); }
// Initialize Loops void Fei4AnalogScan::init() { // Loop 1: Mask Staging std::shared_ptr<Fei4MaskLoop> maskStaging(new Fei4MaskLoop); maskStaging->setVerbose(verbose); maskStaging->setMaskStage(mask); maskStaging->setScap(true); maskStaging->setLcap(true); // Loop 2: Double Columns std::shared_ptr<Fei4DcLoop> dcLoop(new Fei4DcLoop); dcLoop->setVerbose(verbose); dcLoop->setMode(dcMode); // Loop 3: Trigger std::shared_ptr<Fei4TriggerLoop> triggerLoop(new Fei4TriggerLoop); triggerLoop->setVerbose(verbose); triggerLoop->setTrigCnt(numOfTriggers); triggerLoop->setTrigFreq(triggerFrequency); triggerLoop->setTrigDelay(triggerDelay); // Loop 4: Data gatherer std::shared_ptr<StdDataLoop> dataLoop(new StdDataLoop); dataLoop->setVerbose(verbose); dataLoop->connect(g_data); this->addLoop(maskStaging); this->addLoop(dcLoop); this->addLoop(triggerLoop); this->addLoop(dataLoop); engine.init(); }
// Initialize Loops void Fei4NoiseScan::init() { // Loop 1: Trigger std::shared_ptr<Fei4TriggerLoop> triggerLoop(new Fei4TriggerLoop); triggerLoop->setVerbose(verbose); triggerLoop->setTrigFreq(triggerFrequency); triggerLoop->setTrigTime(triggerTime); triggerLoop->setTrigCnt(0); // Activated time mode triggerLoop->setNoInject(); // Loop 2: Data gatherer std::shared_ptr<StdDataGatherer> dataLoop(new StdDataGatherer); dataLoop->setVerbose(verbose); dataLoop->connect(g_data); this->addLoop(triggerLoop); this->addLoop(dataLoop); engine.init(); }
void Fe65p2DigitalScan::init() { // Loop 1: Mask Staging std::shared_ptr<Fe65p2MaskLoop> maskStaging(new Fe65p2MaskLoop); // Loop 2: Double Columns std::shared_ptr<Fe65p2QcLoop> dcLoop(new Fe65p2QcLoop); // Loop 3: Trigger std::shared_ptr<Fe65p2TriggerLoop> triggerLoop(new Fe65p2TriggerLoop); // Loop 4: Data gatherer std::shared_ptr<StdDataLoop> dataLoop(new StdDataLoop); dataLoop->setVerbose(false); dataLoop->connect(g_data); this->addLoop(maskStaging); this->addLoop(dcLoop); this->addLoop(triggerLoop); this->addLoop(dataLoop); engine.init(); }
int Worker::exec() { for (;;) { switch (status) { case BRIDGE_CONNECT: bridge_connect(); status = WAIT; break; case INQUIRY_REQ: if (inquiry() == 0) status = CONNECT; else status = WAIT; break; case CONNECT: if (connection() == 0) status = DATA_LOOP; else status = WAIT; break; case DATA_LOOP: dataLoop(); break; case KILL: kill(); status = QUIT; break; case WAIT: sync->acquire(); break; case QUIT: return 0; break; default: break; } } return 0; }
// Initialize Loops void Fei4PixelPreampTune::init() { // Loop 0: Feedback std::shared_ptr<Fei4PixelFeedback> fbLoop(new Fei4PixelFeedback(FDAC_FB)); // Loop 1: Mask Staging std::shared_ptr<Fei4MaskLoop> maskStaging(new Fei4MaskLoop); maskStaging->setVerbose(verbose); maskStaging->setMaskStage(mask); maskStaging->setScap(useScap); maskStaging->setLcap(useLcap); //maskStaging->setStep(2); // Loop 2: Double Columns std::shared_ptr<Fei4DcLoop> dcLoop(new Fei4DcLoop); dcLoop->setVerbose(verbose); dcLoop->setMode(dcMode); //dcLoop->setStep(2); // Loop 3: Trigger std::shared_ptr<Fei4TriggerLoop> triggerLoop(new Fei4TriggerLoop); triggerLoop->setVerbose(verbose); triggerLoop->setTrigCnt(numOfTriggers); triggerLoop->setTrigFreq(triggerFrequency); triggerLoop->setTrigDelay(triggerDelay); // Loop 4: Data gatherer std::shared_ptr<StdDataLoop> dataLoop(new StdDataLoop); dataLoop->setVerbose(verbose); dataLoop->connect(g_data); this->addLoop(fbLoop); this->addLoop(maskStaging); this->addLoop(dcLoop); this->addLoop(triggerLoop); this->addLoop(dataLoop); engine.init(); }