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

TrimRangeConfigUpdater.cpp

00001 #include "TrimRangeConfigUpdater.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/TrimRangeTestResult.h"
00010 #include "SctData/DefectPrototype.h"
00011 #include "CommonWithDsp/ABCD/ABCDscans.h"
00012 
00013 using namespace SctData;
00014 using namespace Sct;
00015 
00016 namespace SctCalibrationController {
00017 
00018 bool TrimRangeConfigUpdater::inMap = ConfigUpdaterManager::instance().setUpdater("SctData::TrimRangeTestResult", shared_ptr<TrimRangeConfigUpdater> (new TrimRangeConfigUpdater() ) );
00019 
00020 void TrimRangeConfigUpdater::update(const TestResult& testresult, Sct_SctApi_T_SctApi& api) const {
00021     const TrimRangeTestResult& t = dynamic_cast<const TrimRangeTestResult&> (testresult) ;
00022     unsigned long mid = getMID(t, api);
00023     short trims[nChannelModule];
00024 
00025     for (unsigned ichip=0; ichip<Sct::nChipModule; ++ichip) {
00026         APICALL(&api, modifyABCDChipVar(&st, mid, ichip, ST_TRIM_RANGE, t.chipTrim[ichip]->range), "TrimRangeConfigUpdater failed to set trim range")
00027 
00028     for (unsigned ichannel=0; ichannel < nChannelChip; ++ ichannel){
00029         trims[ichip*nChannelChip+ichannel] =  t.chipTrim[ichip]->channelTrim.getAt(ichannel).value.trim ;
00030     }
00031     }
00032 
00033     SctNames::Mrs() << "CC_UPDATE" << MRS_TEXT("CalibrationController updating trims") << MRS_PARAM<long>("ModuleID", mid) << MRS_INFORMATION << ENDM;
00034     Sct_SctApi_T_CharBlock data = _Sct_SctApi_T_CharBlock_sequence::Create(nChannelModule, trims);
00035     APICALL(&api, modifyABCDTrims(&st, mid, data), "TrimRangeConfigUpdater failed to set trims")
00036 
00037     maskChannels(t, UNUSEABLE, api);
00038 }       
00039 
00040 }

Generated on Thu Jul 8 11:41:21 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5