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 TestRequest;
00018 interface SequenceRequest;
00019
00020 interface ScanLibrary {
00021 Sct_SctApi::Scan thresholdScan(in unsigned long nTrigs);
00022 Sct_SctApi::Scan thresholdScanfC(in unsigned long nTrigs, in double calCharge);
00023 Sct_SctApi::Scan strobeDelayScan(in unsigned long nTrigs);
00024 Sct_SctApi::Scan nmaskScan(in unsigned long nTrigs);
00025 Sct_SctApi::Scan tokenScan();
00026
00027
00028 };
00029
00030 interface TestLibrary {
00031 TestRequest responseCurve();
00032 TestRequest threePointGain();
00033 TestRequest strobeDelay();
00034 TestRequest noiseOccupancy();
00035 TestRequest pipeline();
00036 TestRequest fullBypass();
00037 TestRequest trimRange();
00038 TestRequest timeWalk();
00039 TestRequest nmask();
00040 };
00041
00042 interface SequenceLibrary {
00043 SequenceRequest characterizationSequence();
00044 };
00045
00046
00047
00048
00053 interface SequenceRequest {
00058 string startSequence(in Sct_SctApi::SctApi api);
00059
00064 TestRequest getNextTest(in unsigned long index);
00065
00069 void endSequence();
00070 };
00071
00072
00073
00074 typedef sequence<double> TestPoints;
00075
00076
00081 interface TestRequest {
00088 void startTest(in Sct_SctApi::SctApi api, out string name, out unsigned short testVariable, out unsigned long nScans, out TestPoints testPointsData);
00089
00094 Sct_SctApi::Scan getNextScan(in unsigned long index);
00095
00100 boolean canFeedback();
00101
00105 void endTest();
00106 };
00107
00108
00109 interface CalibrationController : ipc::freeable {
00113 const string serverName = "CalibrationControllerServer";
00114 const string instanceName = "CalibrationControllerImpl";
00115
00117 ScanLibrary getScanLibrary();
00118
00120 TestLibrary getTestLibrary();
00121
00123 SequenceLibrary getSequenceLibrary();
00124
00126 oneway void doScan(in Sct_SctApi::Scan s);
00127
00129 oneway void doTest(in TestRequest t);
00130
00132 oneway void doSequence(in SequenceRequest r);
00133
00134
00136 oneway void abort();
00137
00145 enum UpdateOption {update, noupdate, wait};
00146
00148 oneway void setUpdateOption(in UpdateOption opt);
00149
00151 Sct_SctApi::Scan getScan(in unsigned long runNumber, in unsigned long scanNumber);
00152 };
00153 };
00154