00001
00002
00003
00004
00005
00006
00007 #include <ipc/ipc.idl>
00008 #include <Sct_SctApi/SctApi.idl>
00009
00010 module Sct_CalibrationController {
00011
00012 interface CalibrationController;
00013 interface ScanRequest;
00014 interface TestRequest;
00015 interface SequenceRequest;
00016
00017 interface ScanLibrary {
00018 ScanRequest thresholdScan(in unsigned long nTrigs);
00019 ScanRequest thresholdScanfC(in unsigned long nTrigs, in double calCharge);
00020 ScanRequest thresholdScanfCOffset(in unsigned long nTrigs, in double calCharge, in double offset);
00021 ScanRequest noiseOccupancyScan();
00022 ScanRequest strobeDelayScan(in unsigned long nTrigs);
00023 ScanRequest nmaskScan(in unsigned long nTrigs);
00024 ScanRequest tokenScan();
00025 ScanRequest rawScan(in unsigned long nTrigs, in boolean issueSoftReset);
00026 ScanRequest defaultScan();
00027 };
00028
00029 interface TestLibrary {
00030
00031
00032
00033 typedef sequence<string> Strings;
00034 TestRequest getTestRequestByName(in string name);
00035 Strings getTestNames();
00036 };
00037
00038 interface SequenceLibrary {
00039 SequenceRequest characterizationSequence();
00040 SequenceRequest quickCharacterizationSequence();
00041 };
00042
00043
00044
00045
00050 interface SequenceRequest {
00055 string startSequence(in Sct_SctApi::SctApiIPC api);
00056
00061 TestRequest getNextTest(in unsigned long index);
00062
00066 void endSequence();
00067 };
00068
00069
00070
00071 typedef sequence<double> TestPoints;
00072
00074 interface ScanRequest {
00076 Sct_SctApi::Scan getScanCorba();
00078 void setScanCorba(in Sct_SctApi::Scan scan);
00080 void setConfigureModulesCorba(in boolean value);
00082 boolean configureModulesCorba();
00084 boolean clockByTwoCorba();
00086 void setClockByTwoCorba(in boolean value);
00088 boolean isRawCorba();
00090 long delayCorba();
00092 void setWidthCorba(in long value);
00094 long widthCorba();
00095 };
00096
00101 interface TestRequest {
00108 void startTest(in Sct_SctApi::SctApiIPC api, out string name, out unsigned short testVariable, out unsigned long nScans, out TestPoints testPointsData);
00109
00114 ScanRequest getNextScan(in unsigned long index);
00115
00120 boolean canFeedback();
00121
00125 void endTest();
00129 string getAnalysisAlgorithm();
00133 void setAnalysisAlgorithm(in string name);
00137 string getFitAlgorithm();
00141 void setFitAlgorithm(in string name);
00145 };
00146
00147
00148 interface CalibrationController : ipc::servant {
00152
00153 const string instanceName = "CalibrationControllerImpl";
00154
00156 ScanLibrary getScanLibrary();
00157
00159 TestLibrary getTestLibrary();
00160
00162 SequenceLibrary getSequenceLibrary();
00163
00165 oneway void doScan(in ScanRequest s);
00166
00168 oneway void doTest(in TestRequest t);
00169
00171 oneway void doSequence(in SequenceRequest r);
00172
00173
00175 oneway void abort();
00176
00184 enum UpdateOption {update, noupdate, wait};
00185
00187 oneway void setUpdateOption(in UpdateOption opt);
00188
00190 Sct_SctApi::Scan getScan(in unsigned long runNumber, in unsigned long scanNumber);
00193 oneway void updateWith(in string testResultInIs, in boolean force);
00194
00195 Sct_SctApi::SctApiIPC getApi();
00196 };
00197 };
00198