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
00012 namespace SctCalibrationController {
00013
00014 using namespace Ipc;
00015
00016 namespace Scripts {
00017
00018 class CharacterizationSequence : public SequenceRequestImpl {
00019 public:
00020 static Sct_CalibrationController::SequenceRequest_ptr instance() {
00021 static CharacterizationSequence cs;
00022 return cs._this();
00023 }
00024
00025 virtual char * startSequence(Sct_SctApi::SctApiIPC_ptr api) {
00026 this->api = Sct_SctApi::SctApiIPC::_duplicate(api);
00027 return ::Sct::copyStringToCorba("CharacterizationSequence");
00028 }
00029
00030 virtual Sct_CalibrationController::TestRequest_ptr getNextTest(unsigned long index) {
00031 Sct_CalibrationController::TestLibrary_var tl = CalibrationControllerImpl::instance()->getTestLibrary();
00032 switch (index) {
00033 case 0:
00034 return tl->getTestRequestByName("NMask");
00035 case 1:
00036 #warning Only Barrel combinations of bypass included in characterization sequence
00037 return tl->getTestRequestByName("FullBypassBarrel");
00038 case 2:
00039 return tl->getTestRequestByName("Pipeline");
00040 case 3:
00041 return tl->getTestRequestByName("StrobeDelay");
00042 case 4:
00043 return tl->getTestRequestByName("ThreePointGain");
00044 case 5:
00045 return tl->getTestRequestByName("TrimRange");
00046 case 6:
00047 return tl->getTestRequestByName("ResponseCurve");
00048 case 7:
00049 return tl->getTestRequestByName("NoiseOccupancy");
00050 case 8:
00051 return tl->getTestRequestByName("TimeWalk");
00052 default:
00053 return Sct_CalibrationController::TestRequest::_nil();
00054 }
00055 }
00056
00057 virtual void endSequence() {
00058 api = Sct_SctApi::SctApiIPC::_nil();
00059 }
00060
00061 private:
00062 Sct_SctApi::SctApiIPC_var api;
00063 CharacterizationSequence() {}
00064 };
00065 }
00066 }
00067 #endif //CHARACTERIZATIONSEQUENCE_H