CharacterizationSequence.h

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

Generated on Mon Feb 6 14:01:17 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6