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