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 <Sct/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 rc.setFitAlgorithm("StrobeDelay");
00037 rc.setAnalysisAlgorithm("StrobeDelayTest");
00038 return rc._this();
00039 }
00040
00041 virtual void startTestRealImpl(Sct_SctApi::SctApiIPC_ptr api,
00042 string& name,
00043 unsigned short& testVariable,
00044 unsigned long& nScans,
00045 vector<double>& testPoints) {
00046 Sct::BugReport("BUG01", "StrobeDelayTest.cpp","startTest 1");
00047 this->api = Sct_SctApi::SctApiIPC::_duplicate(api);
00048
00049
00050 APICALL(api, modifyABCDVar(ST_COMPRESSION, 2), "StrobeDelayTest::startTest")
00051
00052
00053 APICALL(api, modifyABCDVar(ST_EDGE_DETECT, 1), "StrobeDelayTest::startTest")
00054
00055
00056 APICALL(api, modifyABCDVar(ST_SEND_MASK, 0), "StrobeDelayTest::startTest")
00057
00058
00059 APICALL(api, modifyABCDVar(ST_QTHR, 2), "StrobeDelayTest::startTest")
00060
00061
00062 APICALL(api, modifyABCDVar(ST_VCAL, 40), "StrobeDelayTest::startTest")
00063
00064 name = "StrobeDelayTest";
00065 testVariable = ST_ELAPSED;
00066 nScans = 1;
00067
00068 testPoints.push_back(0);
00069 Sct::BugReport("BUG01", "StrobeDelayTest.cpp","startTest 2");
00070 }
00071
00072 virtual Sct_CalibrationController::ScanRequest_ptr getNextScanRealImpl(unsigned long index) {
00073 Sct::BugReport("BUG01", "StrobeDelayTest.cpp","getNextScan 1/3");
00074 Sct_CalibrationController::ScanLibrary_var sl = CalibrationControllerImpl::instance()->getScanLibrary();
00075 Sct::BugReport("BUG01", "StrobeDelayTest.cpp","getNextScan 2/3");
00076 Sct_CalibrationController::ScanRequest_ptr ans = sl->strobeDelayScan(100);
00077 Sct::BugReport("BUG01", "StrobeDelayTest.cpp","getNextScan 3/3");
00078 return ans;
00079 }
00080
00081 virtual bool canFeedbackRealImpl() {
00082 Sct::BugReport("BUG01", "StrobeDelayTest.cpp","canFeedback");
00083 return true;
00084 }
00085
00086 virtual void endTestRealImpl() {
00087 Sct::BugReport("BUG01", "StrobeDelayTest.cpp","endTest 1");
00088 api = Sct_SctApi::SctApiIPC::_nil();
00089 Sct::BugReport("BUG01", "StrobeDelayTest.cpp","endTest 2");
00090 }
00091
00092 private:
00093 StrobeDelayTest() {}
00094 Sct_SctApi::SctApiIPC_var api;
00095 };
00096 }
00097 }
00098 #endif //STROBEDELAYTEST_H