00001 #include "MarkSpaceRatioConfigUpdater.h" 00002 #include "ConfigUpdaterManager.h" 00003 #include "../SctApiAccessException.h" 00004 #include "../SctApiCall.h" 00005 00006 #include "Sct_SctApi/SctApi.hh" 00007 #include "Sct/SctParameters.h" 00008 #include "Sct/SctNames.h" 00009 #include "SctData/MarkSpaceRatioTestResult.h" 00010 #include "Sct/AbcdScans.h" 00011 #include "SctApi/utility.h" 00012 00013 using namespace Sct; 00014 using namespace SctData; 00015 00016 namespace SctCalibrationController { 00017 00018 bool MarkSpaceRatioConfigUpdater::inMap = ConfigUpdaterManager::instance().setUpdater("SctData::MarkSpaceRatioTestResult", shared_ptr<ConfigUpdater> (new MarkSpaceRatioConfigUpdater())); 00019 00020 void MarkSpaceRatioConfigUpdater::update(const TestResult& testresult, Sct_SctApi::SctApiIPC_ptr api) const { 00021 const MarkSpaceRatioTestResult& t = dynamic_cast<const MarkSpaceRatioTestResult&> (testresult); 00022 00023 unsigned long mid = getMID(t, api); 00024 00025 std::cout << "Modifying ST_TX_MARKSPACE of mid=" << mid << " to value " << (int)floor(t.getOptimum()+0.5) << std::endl; 00026 APICALL(api, modifyABCDModuleVar(mid, ST_TX_MARKSPACE, (int)floor(t.getOptimum()+0.5)), "MarkSpaceRatioConfigUpdater failed to set API") 00027 } 00028 00029 }