NMaskTest.h

00001 #ifndef SCTCALIBRATIONCONTROLLER_NMASKTEST_H
00002 #define SCTCALIBRATIONCONTROLLER_NMASKTEST_H
00003 
00004 #include "../ipc/TestRequest.h"
00005 #include "../ipc/CalibrationController.h"
00006 #include "../ipc/ScanLibrary.h"
00007 #include "../ipc/CalibrationController.hh"
00008 
00009 #include "../SctApiAccessException.h"
00010 #include "../SctApiCall.h"
00011 #include "../CalibrationControllerImpl.h"
00012 #include "Sct/LogicErrors.h"
00013 
00014 #include <Sct/AbcdScans.h>
00015 #include <iostream>
00016 #include <vector>
00017 
00018 using namespace Sct;
00019 using namespace std;
00020 using namespace SctCalibrationController::Ipc;
00021 using namespace SctCalibrationController;
00022 
00023 namespace SctCalibrationController {
00024 namespace Scripts {
00025 
00028 class NMaskTest : public TestRequestImpl {
00029 private:
00030    static const bool registeredInTestLibrary;
00031 
00032 public: 
00033     static Sct_CalibrationController::TestRequest_ptr instance() {
00034     static NMaskTest rc;
00035     rc.setAnalysisAlgorithm("NMaskTest");
00036     rc.setFitAlgorithm("NONE");
00037     return rc._this();
00038     }
00039     
00040     virtual void startTestRealImpl(Sct_SctApi::SctApiIPC_ptr api, string& name, unsigned short& testVariable, unsigned long& nScans, vector<double>& testPoints) {  
00041     this->api = Sct_SctApi::SctApiIPC::_duplicate(api);
00042 
00043         // Compression mode X1X
00044         APICALL(api, modifyABCDVar(ST_COMPRESSION, 1), "NMaskTest::startTest")
00045 
00046         // Edge detect off
00047         APICALL(api, modifyABCDVar(ST_EDGE_DETECT, 0), "NMaskTest::startTest")
00048 
00049         // No masked channels
00050         APICALL(api, modifyABCDVar(ST_SEND_MASK, 1), "NMaskTestassTest::startTest")
00051 
00052     name = "NMaskTest";
00053     testVariable = ST_ELAPSED;
00054     nScans = 1;
00055     
00056     testPoints.push_back(nTriggers);
00057     }
00058     
00059     virtual Sct_CalibrationController::ScanRequest_ptr getNextScanRealImpl(unsigned long index) {
00060     Sct_CalibrationController::ScanLibrary_var sl = CalibrationControllerImpl::instance()->getScanLibrary();
00061     return sl->nmaskScan(nTriggers);
00062     }
00063     
00064     virtual bool canFeedbackRealImpl() {
00065     return false;
00066     }
00067     
00068     virtual void endTestRealImpl() {
00069       // Turn off send_mask!
00070         APICALL(api, modifyABCDVar(ST_SEND_MASK, 0), "NMaskTestassTest::endTest")
00071     api = Sct_SctApi::SctApiIPC::_nil();
00072     }
00073     
00074 private:
00075     NMaskTest() {}
00076     Sct_SctApi::SctApiIPC_var api;    
00077     static const int nTriggers = 100;
00078 };
00079 }
00080 }
00081 #endif //SCTCALIBRATIONCONTROLLER_NMASKTEST_H

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