00001 #ifndef CHARACTERIZATIONSEQUENCE_H 00002 #define CHARACTERIZATIONSEQUENCE_H 00003 00004 #include "../ipc/SequenceRequest.h" 00005 #include "../ipc/TestRequest.h" 00006 #include "../ipc/CalibrationController.h" 00007 #include "../ipc/TestLibrary.h" 00008 #include "../ipc/CalibrationController.hh" 00009 #include "Sct/OmniMarshalling.h" 00010 #include <iostream> 00011 #include "Sct/BugReport.h" 00012 00013 using namespace std; 00014 00015 namespace SctCalibrationController { 00016 00017 using namespace Ipc; 00018 00019 namespace Scripts { 00020 00021 class CharacterizationSequence : public SequenceRequestImpl { 00022 public: 00023 static Sct_CalibrationController::SequenceRequest_ptr instance() { 00024 static CharacterizationSequence cs; 00025 return cs._this(); 00026 } 00027 00028 virtual char * startSequence(Sct_SctApi::SctApiIPC_ptr api) { 00029 Sct::BugReport("BUG01", "CharacterisationSequence.h","IS IT THIS ONE? startSequence"); 00030 this->api = Sct_SctApi::SctApiIPC::_duplicate(api); 00031 return ::Sct::copyStringToCorba("CharacterizationSequence"); 00032 } 00033 00034 virtual Sct_CalibrationController::TestRequest_ptr getNextTest(unsigned long index) { 00035 Sct_CalibrationController::TestLibrary_var tl = CalibrationControllerImpl::instance()->getTestLibrary(); 00036 switch (index) { 00037 case 0: 00038 return tl->getTestRequestByName("NMask"); 00039 case 1: 00040 #warning Only Barrel combinations of bypass included in characterization sequence 00041 return tl->getTestRequestByName("FullBypassBarrel"); 00042 case 2: 00043 return tl->getTestRequestByName("Pipeline"); 00044 case 3: 00045 return tl->getTestRequestByName("StrobeDelay"); 00046 case 4: 00047 return tl->getTestRequestByName("ThreePointGain"); 00048 case 5: 00049 return tl->getTestRequestByName("TrimRange"); 00050 case 6: 00051 return tl->getTestRequestByName("ResponseCurve"); 00052 case 7: 00053 return tl->getTestRequestByName("NoiseOccupancy"); 00054 case 8: 00055 return tl->getTestRequestByName("TimeWalk"); 00056 default: 00057 return Sct_CalibrationController::TestRequest::_nil(); 00058 } 00059 } 00060 00061 virtual void endSequence() { 00062 api = Sct_SctApi::SctApiIPC::_nil(); 00063 } 00064 00065 private: 00066 Sct_SctApi::SctApiIPC_var api; 00067 CharacterizationSequence() {} 00068 }; 00069 } 00070 } 00071 #endif //CHARACTERIZATIONSEQUENCE_H