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");
00037 case 1:
00038 #warning Only Barrel combinations of bypass included in characterization sequence
00039 return tl->getTestRequestByName("FullBypassBarrel");
00040 case 2:
00041 return tl->getTestRequestByName("Pipeline");
00042 case 3:
00043 return tl->getTestRequestByName("StrobeDelay");
00044 case 4:
00045 return tl->getTestRequestByName("ThreePointGain");
00046 case 5:
00047 return tl->getTestRequestByName("QuickTrimRange");
00048 case 6:
00049 return tl->getTestRequestByName("FivePointGain");
00050 case 7:
00051 return tl->getTestRequestByName("NoiseOccupancy");
00052 case 8:
00053 return tl->getTestRequestByName("TimeWalk");
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