Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

StrobeDelayTest.h

00001 #ifndef STROBEDELAYTEST_H
00002 #define STROBEDELAYTEST_H
00003 
00004 #include "../ipc/TestRequest.h"
00005 #include "../ipc/CalibrationController.h"
00006 #include "../ipc/ScanLibrary.h"
00007 #include "../ipc/CalibrationController.hh"
00008 #include "../CalibrationControllerImpl.h"
00009 
00010 #include "../SctApiAccessException.h"
00011 #include "Sct/LogicErrors.h"
00012 #include "../SctApiCall.h"
00013 #include "Sct/BugReport.h"
00014 
00015 #include <CommonWithDsp/ABCD/ABCDscans.h>
00016 #include <iostream>
00017 #include <vector>
00018 
00019 using namespace Sct;
00020 using namespace std;
00021 using namespace SctCalibrationController::Ipc;
00022 using namespace SctCalibrationController;
00023 
00024 namespace SctCalibrationController {
00025 namespace Scripts {
00026 
00029 class StrobeDelayTest : public TestRequestImpl {
00030 private:
00031    static const bool registeredInTestLibrary;
00032 
00033 public: 
00034     static Sct_CalibrationController::TestRequest_ptr instance() {
00035     static StrobeDelayTest rc;
00036     return rc._this();
00037     }
00038     
00039     virtual void startTestRealImpl(Sct_SctApi::SctApiIPC_ptr api, 
00040                string& name, 
00041                unsigned short& testVariable, 
00042                unsigned long& nScans, 
00043                vector<double>& testPoints) {    
00044       Sct::BugReport("BUG01", "StrobeDelayTest.cpp","startTest 1");
00045        this->api = Sct_SctApi::SctApiIPC::_duplicate(api);
00046 
00047         // Compression mode 2
00048         APICALL(api, modifyABCDVar(ST_COMPRESSION, 2), "StrobeDelayTest::startTest")
00049 
00050         // Edge detect on
00051         APICALL(api, modifyABCDVar(ST_EDGE_DETECT, 1), "StrobeDelayTest::startTest")
00052 
00053         // No masked channels
00054         APICALL(api, modifyABCDVar(ST_SEND_MASK, 0), "StrobeDelayTest::startTest")
00055 
00056         // Set threshold to 2fC (based on previous configuration)
00057         APICALL(api, modifyABCDVar(ST_QTHR, 2), "StrobeDelayTest::startTest")
00058 
00059         // 4.00 fC input charge
00060         APICALL(api, modifyABCDVar(ST_VCAL, 40), "StrobeDelayTest::startTest")
00061 
00062     name = "StrobeDelayTest";
00063     testVariable = ST_ELAPSED;
00064     nScans = 1;
00065 
00066     testPoints.push_back(0);
00067       Sct::BugReport("BUG01", "StrobeDelayTest.cpp","startTest 2");
00068     }
00069     
00070     virtual Sct_CalibrationController::ScanRequest_ptr getNextScanRealImpl(unsigned long index) {
00071      Sct::BugReport("BUG01", "StrobeDelayTest.cpp","getNextScan 1/3");
00072     Sct_CalibrationController::ScanLibrary_var sl = CalibrationControllerImpl::instance()->getScanLibrary();
00073      Sct::BugReport("BUG01", "StrobeDelayTest.cpp","getNextScan 2/3");
00074      Sct_CalibrationController::ScanRequest_ptr ans = sl->strobeDelayScan(100);
00075      Sct::BugReport("BUG01", "StrobeDelayTest.cpp","getNextScan 3/3");
00076      return ans;
00077     }
00078     
00079     virtual bool canFeedbackRealImpl() {
00080      Sct::BugReport("BUG01", "StrobeDelayTest.cpp","canFeedback");
00081     return true;
00082     }    
00083     
00084     virtual void endTestRealImpl() {
00085       Sct::BugReport("BUG01", "StrobeDelayTest.cpp","endTest 1");
00086     api = Sct_SctApi::SctApiIPC::_nil();
00087        Sct::BugReport("BUG01", "StrobeDelayTest.cpp","endTest 2");
00088    }
00089     
00090 private:
00091     StrobeDelayTest() {}
00092     Sct_SctApi::SctApiIPC_var api;    
00093 };
00094 }
00095 }
00096 #endif //STROBEDELAYTEST_H

Generated on Fri Sep 16 18:01:58 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5