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 };
00030
00031 interface TestLibrary {
00032
00033
00034
00035 typedef sequence<string> Strings;
00036 TestRequest getTestRequestByName(in string name);
00037 Strings getTestNames();
00038 };
00039
00040 interface SequenceLibrary {
00041 SequenceRequest characterizationSequence();
00042 };
00043
00044
00045
00046
00051 interface SequenceRequest {
00056 string startSequence(in Sct_SctApi::SctApiIPC api);
00057
00062 TestRequest getNextTest(in unsigned long index);
00063
00067 void endSequence();
00068 };
00069
00070
00071
00072 typedef sequence<double> TestPoints;
00073
00075 interface ScanRequest {
00077 Sct_SctApi::Scan getScanCorba();
00079 void setScanCorba(in Sct_SctApi::Scan scan);
00081 boolean configureModulesCorba();
00083 boolean clockByTwoCorba();
00085 void setClockByTwoCorba(in boolean value);
00087 boolean isRawCorba();
00089 long delayCorba();
00091 void setWidthCorba(in long value);
00093 long widthCorba();
00094 };
00095
00100 interface TestRequest {
00107 void startTest(in Sct_SctApi::SctApiIPC api, out string name, out unsigned short testVariable, out unsigned long nScans, out TestPoints testPointsData);
00108
00113 ScanRequest getNextScan(in unsigned long index);
00114
00119 boolean canFeedback();
00120
00124 void endTest();
00125 };
00126
00127
00128 interface CalibrationController : ipc::servant {
00132
00133 const string instanceName = "CalibrationControllerImpl";
00134
00136 ScanLibrary getScanLibrary();
00137
00139 TestLibrary getTestLibrary();
00140
00142 SequenceLibrary getSequenceLibrary();
00143
00145 oneway void doScan(in ScanRequest s);
00146
00148 oneway void doTest(in TestRequest t);
00149
00151 oneway void doSequence(in SequenceRequest r);
00152
00153
00155 oneway void abort();
00156
00164 enum UpdateOption {update, noupdate, wait};
00165
00167 oneway void setUpdateOption(in UpdateOption opt);
00168
00170 Sct_SctApi::Scan getScan(in unsigned long runNumber, in unsigned long scanNumber);
00173 oneway void updateWith(in string testResultInIs, in boolean force);
00174
00175 Sct_SctApi::SctApiIPC getApi();
00176 };
00177 };
00178