00001
00002
00003
00004
00005
00006
00007 #ifndef IPC_IDL
00008 #include <ipc/ipc.idl>
00009 #define IPC_IDL
00010 #endif
00011
00012 #include <SctApi/SctApi.idl>
00013
00014 module Sct_CalibrationController {
00015
00016 interface CalibrationController;
00017 interface ScanRequest;
00018 interface TestRequest;
00019 interface SequenceRequest;
00020
00021 interface ScanLibrary {
00022 ScanRequest thresholdScan(in unsigned long nTrigs);
00023 ScanRequest thresholdScanfC(in unsigned long nTrigs, in double calCharge);
00024 ScanRequest noiseOccupancyScan();
00025 ScanRequest strobeDelayScan(in unsigned long nTrigs);
00026 ScanRequest nmaskScan(in unsigned long nTrigs);
00027 ScanRequest tokenScan();
00028 ScanRequest rawScan(in unsigned long nTrigs);
00029 ScanRequest defaultScan();
00030
00031
00032 };
00033
00034 interface TestLibrary {
00035 TestRequest responseCurve();
00036 TestRequest threePointGain();
00037 TestRequest strobeDelay();
00038 TestRequest noiseOccupancy();
00039 TestRequest pipeline();
00040 TestRequest fullBypassBarrel();
00041 TestRequest fullBypassEndcap();
00042 TestRequest trimRange();
00043 TestRequest timeWalk();
00044 TestRequest nmask();
00045 TestRequest rxDelay();
00046 TestRequest rxThreshold();
00047 };
00048
00049 interface SequenceLibrary {
00050 SequenceRequest characterizationSequence();
00051 };
00052
00053
00054
00055
00060 interface SequenceRequest {
00065 string startSequence(in Sct_SctApi::SctApi api);
00066
00071 TestRequest getNextTest(in unsigned long index);
00072
00076 void endSequence();
00077 };
00078
00079
00080
00081 typedef sequence<double> TestPoints;
00082
00084 interface ScanRequest {
00086 Sct_SctApi::Scan getScan();
00088 void setScan(in Sct_SctApi::Scan scan);
00090 boolean configureModules();
00092 boolean clockByTwo();
00094 void setClockByTwo(in boolean value);
00096 boolean isRaw();
00098 long delay();
00100 void setWidth(in long value);
00102 long width();
00103 };
00104
00109 interface TestRequest {
00116 void startTest(in Sct_SctApi::SctApi api, out string name, out unsigned short testVariable, out unsigned long nScans, out TestPoints testPointsData);
00117
00122 ScanRequest getNextScan(in unsigned long index);
00123
00128 boolean canFeedback();
00129
00133 void endTest();
00134 };
00135
00136
00137 interface CalibrationController : ipc::freeable {
00141 const string serverName = "CalibrationControllerServer";
00142 const string instanceName = "CalibrationControllerImpl";
00143
00145 ScanLibrary getScanLibrary();
00146
00148 TestLibrary getTestLibrary();
00149
00151 SequenceLibrary getSequenceLibrary();
00152
00154 oneway void doScan(in ScanRequest s);
00155
00157 oneway void doTest(in TestRequest t);
00158
00160 oneway void doSequence(in SequenceRequest r);
00161
00162
00164 oneway void abort();
00165
00173 enum UpdateOption {update, noupdate, wait};
00174
00176 oneway void setUpdateOption(in UpdateOption opt);
00177
00179 Sct_SctApi::Scan getScan(in unsigned long runNumber, in unsigned long scanNumber);
00181 oneway void updateWith(in string testResultInIs);
00182 };
00183 };
00184