QuickCharacterizationSequence.h

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

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