Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

StrobeDelayConfigUpdater.cpp

00001 #include "StrobeDelayConfigUpdater.h"
00002 #include "ConfigUpdaterManager.h"
00003 #include "../SctApiAccessException.h"
00004 #include "../SctApiCall.h"
00005 
00006 #include "Sct_SctApi/Sct_SctApi.hh"
00007 #include "Sct/SctParameters.h"
00008 #include "Sct/SctNames.h"
00009 #include "SctData/StrobeDelayTestResult.h"
00010 #include "CommonWithDsp/ABCD/ABCDscans.h"
00011 
00012 using namespace Sct;
00013 using namespace SctData;
00014 
00015 namespace SctCalibrationController {
00016 
00017 bool StrobeDelayConfigUpdater::inMap = ConfigUpdaterManager::instance().setUpdater("SctData::StrobeDelayTestResult", shared_ptr<ConfigUpdater> (new StrobeDelayConfigUpdater()));
00018 
00019 void StrobeDelayConfigUpdater::update(const TestResult& testresult, Sct_SctApi_T_SctApi& api) const {
00020     const StrobeDelayTestResult& t = dynamic_cast<const StrobeDelayTestResult&> (testresult);
00021     unsigned long mid = getMID(t, api);
00022     SctNames::Mrs() << "CC_UPDATE" << MRS_TEXT("CalibrationController updating StrobeDelay") << MRS_PARAM<long>("ModuleID", mid) << MRS_DIAGNOSTIC << ENDM;
00023 
00024     if (t.getNOptima()!=Sct::nChipModule) {
00025         Sct::SctNames::Mrs() << "CC_NO_UPDATE" << MRS_TEXT("Wrong data format in StrobeDelayConfigUpdater") << MRS_ERROR << ENDM; 
00026             return;
00027     }
00028     for (unsigned ichip=0; ichip<Sct::nChipModule; ++ichip) {
00029         APICALL(&api, modifyABCDChipVar(&st, mid, ichip, ST_STROBE_DELAY, (double)t.getOptimum(ichip)), "StrobeDelayConfigUpdater failed to set delay")
00030     }
00031 }
00032     
00033 }

Generated on Thu Jul 15 09:50:54 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5