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

RxDelayConfigUpdater.cpp

00001 #include "RxDelayConfigUpdater.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/RxDelayTestResult.h"
00010 #include "CommonWithDsp/ABCD/ABCDscans.h"
00011 #include "SctApi/utility.h"
00012 
00013 using namespace Sct;
00014 using namespace SctData;
00015 
00016 namespace SctCalibrationController {
00017 
00018 bool RxDelayConfigUpdater::inMap = ConfigUpdaterManager::instance().setUpdater("SctData::RxDelayTestResult", shared_ptr<ConfigUpdater> (new RxDelayConfigUpdater()));
00019 
00020 void RxDelayConfigUpdater::update(const TestResult& testresult, Sct_SctApi_T_SctApi& api) const {
00021     const RxDelayTestResult& t = dynamic_cast<const RxDelayTestResult&> (testresult);
00022     unsigned long mid = getMID(t, api);
00023     SctNames::Mrs() << "CC_UPDATE" << MRS_TEXT("CalibrationController updating RxDelay") << MRS_PARAM<long>("ModuleID", mid) << MRS_DIAGNOSTIC << ENDM;
00024 
00025     unsigned partition, crate, rod, channel;
00026     SctApi::Utility::getpcrc(mid, partition, crate, rod, channel);
00027 
00028     APICALL(&api, modifyBOCParam(&st, partition, crate, rod, channel, ST_RX_DELAY0, (int)floor(t.getOptimum(0)+0.5)), "RxDelayConfigUpdater failed to set delay")
00029     APICALL(&api, modifyBOCParam(&st, partition, crate, rod, channel, ST_RX_DELAY1, (int)floor(t.getOptimum(1)+0.5)), "RxDelayConfigUpdater failed to set delay")
00030 }
00031     
00032 }

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