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
00048 APICALL(api, modifyABCDVar(ST_COMPRESSION, 2), "StrobeDelayTest::startTest")
00049
00050
00051 APICALL(api, modifyABCDVar(ST_EDGE_DETECT, 1), "StrobeDelayTest::startTest")
00052
00053
00054 APICALL(api, modifyABCDVar(ST_SEND_MASK, 0), "StrobeDelayTest::startTest")
00055
00056
00057 APICALL(api, modifyABCDVar(ST_QTHR, 2), "StrobeDelayTest::startTest")
00058
00059
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