Main Page | Namespace List | Class Hierarchy | Data Structures | File List | Namespace Members | Data Fields

SctApi.idl

Go to the documentation of this file.
00001 #ifndef IPC_IDL
00002 #include "ipc/ipc.idl"
00003 #define IPC_IDL
00004 #endif
00005 
00006 #include "sctConfIPC/configuration.idl"
00007 #include "Sct/Addressing.idl"
00008 
00009 module Sct_SctApi {
00010   exception SctApiException {
00011     string detail;
00012   };
00013 
00014   typedef sequence <long> DataBlock;
00015   typedef sequence <short> CharBlock;
00016   typedef sequence <CharBlock> CharMatrix;
00017   typedef sequence <string> DebugOptionList;
00018   typedef sequence <sctConf::BOCChannelConfig> BOCChannelList;
00019   typedef sequence <string> NameList;
00020   typedef sequence <double> BOCMonitorSequence;
00021 
00022   struct NameValue {
00023     string name;
00024     float value;
00025   };
00026 
00027   typedef short RODTriggerFirstType;
00028   typedef long  RODTriggerSecondType;
00029   struct RODTrigger {
00030     RODTriggerFirstType  first;
00031     RODTriggerSecondType second;
00032   };
00033   
00034   typedef sequence <RODTrigger> RODTriggers;
00035 
00036   typedef sequence <NameValue> NameValueList;
00037 
00038   enum BankType {PHYSICS_CONFIG, SCAN_CONFIG, CALIBRATION_CONFIG};
00039 
00040   typedef sequence <BankType> BankList;
00041 
00042   interface Trigger : ipc::servant {
00043     void singleL1A();
00044     void doubleL1A(in unsigned short delay);
00045     void delayedL1A(in unsigned short delay);
00046     void calL1A(in unsigned short delay);
00047     void pulseL1A(in unsigned short delay);
00048     void softL1A(in unsigned short delay);
00049     void softCalL1A(in unsigned short delay, in unsigned short delay2);
00050     void softPulseL1A(in unsigned short delay, in unsigned short delay2);
00051     void softBc(in unsigned short delay);
00052     void soft();
00053     void bc();
00054     void bcL1A(in unsigned short delay);
00055     void bcCalL1A(in unsigned short delay, in unsigned short delay2);
00056     void bcPulseL1A(in unsigned short delay, in unsigned short delay2);
00057 
00058     void setCommIncr(in unsigned short command, in unsigned short incr);
00059     void getCommIncr(out unsigned short command, out unsigned short incr);
00060 
00061     RODTriggers getRODTriggers();
00062 
00063     void print();
00064   };
00065 
00066 
00067   interface Scan : ipc::servant {
00068 
00069     typedef sequence <double> ScanPoints;
00070     typedef sequence <unsigned long> TrigPoints;
00071 
00072     enum ScanOptions {full, bits32, loopCalLine, distSlave, debug, tim, nth, nth_rem, enableDataMode};
00073 
00074     void configure(in unsigned short type, in double start, in double stop, in double step);
00075     void configure2(in unsigned short type, in double start, in double stop, in double step);
00076 
00077     Trigger getTrigger1();
00078     Trigger getTrigger2();
00079 
00080     // Only throw cause they're not implemented!
00081     void setTrigger1(in Trigger trig)
00082       raises(SctApiException);
00083     void setTrigger2(in Trigger trig)
00084       raises(SctApiException);
00085 
00086     void setScanVariable1(in unsigned short var);
00087     void setScanVariable2(in unsigned short var);
00088     unsigned short getScanVariable1();
00089     unsigned short getScanVariable2();
00090 
00091     void setNTrigs(in unsigned long nTrigs);
00092     unsigned long getNTrigs();
00093 
00094     TrigPoints getVariableTrigs();
00095     void setVariableTrigs(in TrigPoints trigs);
00096     void setVariableTrigRange(in unsigned short start, in unsigned short end, in unsigned long value);
00097 
00098     ScanPoints getScanPoints1();
00099     ScanPoints getScanPoints2();
00100     void setScanPoints1(in ScanPoints scans);
00101     void setScanPoints2(in ScanPoints scans);
00102 
00103     long getOption(in ScanOptions opt);
00104     void setOption(in ScanOptions opt, in long val);
00105 
00106     void print();
00107 
00108     void setScanNumber(in unsigned short scan);
00109     unsigned long getScanNumber();
00110     void setRunNumber(in unsigned short scan);
00111     unsigned long getRunNumber();
00112 
00113     sctConf::ModuleList getModuleList(in unsigned long group);
00114     void setModuleList(in unsigned long group, in sctConf::ModuleList newList);
00115 
00116     unsigned long getNGroups();
00117     void setNGroups(in unsigned short val);
00118 
00120     string getStartTime();
00121     void setStartTime(in string t);
00123     string getEndTime();
00124     void setEndTime(in string t);
00125   };
00126 
00127   typedef sequence <Scan> ScanList;
00128 
00129   struct AutoConfigResult {
00130     unsigned long partition;
00131     unsigned long crate;
00132     unsigned long rod;
00133 
00134     unsigned long tx;
00135     unsigned long rx;
00136   };
00137 
00138   typedef sequence <AutoConfigResult> AutoResultList;
00139 
00140 
00142 
00143 
00145 
00148 
00149   // Ths Idiosyncrasy is what makes one Crate Controller
00150   // different from another.
00151   interface Idiosyncrasy {
00152     Sct::Corba::UCID ucid();
00153     string uniqueName();
00154     string ipcNameOfSctApiCrateServer();
00155     string infoServiceNameOfScanStatusObject();
00156   };
00157 
00158 
00159   // Direct ROD access (Debug only):
00160   interface DirectRODAccess {
00161     /***************** Direct ROD access (Debug only) ********************/
00162     short dspBlockDump(in unsigned long rod,
00163                      in long dspStart, in long numWords, in long dspNumber);
00164     DataBlock dspBlockRead(in unsigned long rod,
00165                            in long dspStart, in long numWords, in long dspNumber);
00166     short dspBlockWrite(in unsigned long rod,
00167                       in DataBlock buffer, in unsigned long dspAddress, in long dspNumber);
00168 
00169     unsigned long dspSingleRead(in unsigned long rod,
00170                                 in unsigned long dspAddr, in long dspNumber);
00171     void dspSingleWrite(in unsigned long rod,
00172                         in unsigned long dspAddr, in unsigned long val, in long dspNumber);
00173 
00174     DataBlock readSlaveDsp(in unsigned long rod,
00175                            in short s, in unsigned long add, in unsigned long words);
00176 //      unsigned long readRodStatusReg(in unsigned long rod,
00177 //                                     in long regNumber);
00178 //      unsigned long readRodCommandReg(in unsigned long rod,
00179 //                                      in long regNumber);
00180     void printBOCSetup(in unsigned long rod);
00181     sctConf::ABCDModule getABCDModuleRaw(in unsigned long rod, 
00182                                          in unsigned long slot, in BankType bank)
00183       raises(SctApiException);
00184   };
00185 
00186   // Debug Options:
00187   interface DebugOptionsCommon {
00188     void unsetDebugOption(in string opt);
00189     void setDebugOption(in string opt);
00190     DebugOptionList listDebugOptions();
00191   };
00192   interface DebugOptionsJustCrate {
00193     DebugOptionList listEnabledDebugOptions();
00194     void standardRegisterDumpRod(in unsigned long rod);
00195   };
00196   interface DebugOptionsJustTop {
00197     void standardRegisterDumpURID(in Sct::Corba::URID urid);
00198   };
00199 
00200   // Low-level primitive access:
00201   interface PrimitiveAccessLowLevel {
00202     void awaitResponse(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00203     DataBlock getResponse(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00204 
00205     void createDebugPrimList()
00206       raises(SctApiException);
00207     void addDebugPrimList(in long index, in long id, in long version, in DataBlock body)
00208       raises(SctApiException);
00209     void sendDebugPrimList(in unsigned long partition, in unsigned long crate, in unsigned long rod)
00210       raises(SctApiException);
00211     void sendDebugSlavePrimList(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00212                                 in unsigned long slave, in boolean await, in boolean response)
00213       raises(SctApiException);
00214 
00215     void flashLED(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00216                   in unsigned short slaveNumber, in unsigned long period, in unsigned long flashes)
00217       raises(SctApiException);
00218     void echo(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00219               in DataBlock data)
00220       raises(SctApiException);
00221   };
00222 
00223   // Only useful with stdout, therefore debug only
00224   interface DebugSTDOUT {
00225     void printABCDModule(in unsigned long mid);
00226     void printABCDRodModule(in unsigned long mid, in BankType bank);
00227 
00228     void decodeEvent(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00229                      in short sl, in short index, in boolean extFlag, in boolean errorType);
00230 
00231     void configureBOC(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00232 
00233     BOCMonitorSequence getBOCMonitorArray(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00234   };
00235 
00236   // Others: Only used by SctApiGUI (I think).
00237   interface OtherCrateLevel {
00238     unsigned long getRodSlot(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00239 
00240     void testLinkOutSelect(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00241                            in unsigned long link);
00242 
00243     unsigned long testLinkOutRetrieve(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00244 
00245     boolean isRODPresent(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00246   };
00247 
00249 
00250   // This is how SctApiGUI and expert scripters 
00251   // would get access to the low level interface / crate above.
00252   interface CrateIPC; // fwd declaration to facilitate what follows!
00253   interface CrateAccessTopLevel {
00254     CrateIPC getCrate(in Sct::Corba::UCID ucid);
00255     CrateIPC getCrateLegacy(in unsigned long partition, in unsigned long crate);
00256     Sct::Corba::UCIDs getCrateUCIDs();
00257   };
00258 
00259   // Scans and triggers probably kept track of at top level. 
00260   // Need to be careful about giving different crates 
00261   // access to them, sometimes is right thing to do. 
00262   // Would need locking on module list updaters.
00263   interface ScanMethods {
00264     Scan createScan();
00265     Scan getDefaultScan();
00266 
00267     // Nobody seems to use these two:
00268     Trigger createTrigger();
00269     // Trigger getDefaultTrigger();
00270 
00271     ScanList knownScans();
00272   };
00273 
00274   // Translation methods. These are mostly just
00275   // proxies for configuration server, which was most
00276   // useful in TApi where it wasn't accessible directly.
00277   // But these deal with the SctApi's internal mid numbers...
00278   interface TranslationMethods {
00279     // Translation
00280     unsigned long findModuleSerial(in string sn);
00281     string convertToString(in unsigned long mid);
00282     unsigned long findModule(in unsigned short mur, in unsigned short number);
00283 
00284     unsigned long findModuleRod(in unsigned long partition, in unsigned long crate, in unsigned long rod, in unsigned long channel);
00285 
00286     //  pair<INT32, INT32> convertToMUR(in unsigned long mid);
00287 
00288     unsigned long findBarrelModule(in unsigned long barrel, in unsigned long row, in short number);
00289     void convertToBarrelModule(in unsigned long mid, out unsigned long barrel, out unsigned long row, out short number);
00290 
00291     unsigned long findEndcapModule(in long disk, in long ring, in long number);
00292     void convertToEndcapModule(in unsigned long mid, out long disk, out unsigned long ring, out unsigned long number);
00293   };
00294 
00295   // DDC stuff. This mostly doesn't need access 
00296   // to modules. Only exception is setSelect, 
00297   // which currently doesn't update select parameter 
00298   // in module configuration, but should do.
00299   interface SctApiDDCServerMethods {
00300 
00301     const string instanceName = "SctApiDDCServer";
00302 
00303     void requestHardReset(in unsigned long mid);
00304     void requestIVCurve(in unsigned long mid, in float start, in float stop, in float step, 
00305                         in unsigned short delay, in float currentLim);
00306     void setSelect(in unsigned long mid, in boolean value); 
00307     void setSelectAllInCrate(in long crate, in boolean value);
00308     void changeRunState(in long state);
00309 
00310     // Direct DDC methods (no module translation)
00311 //     void ddcGetChannelParameter(in long crate, in long channel, in string dpeName,
00312 //                                 out long dpeValue);          // Put timeout in here?
00313 
00314     void ddcSetSingleTimeout(in short timeout);
00315     short ddcGetSingleTimeout();
00316     void ddcSetMultipleTimeout(in short timeout);
00317     short ddcGetMultipleTimeout();
00318 
00319     void ddcChangeState(in long crate, in long channel,
00320                         in short state);                     // MultipleTimeout
00321     void ddcChangeStates(in long crate, in string name,
00322                         in short state);                     // MultipleTimeout
00323     void ddcChangeStateAll(in long crate,
00324                            in short state);                  // MultipleTimeout
00325     void ddcLoadConfiguration(in long crate, 
00326                               in short state);               // MultipleTimeout
00327     void ddcHardReset(in long crate, in long channel);       // SingleTimeout
00328     void ddcHardResetAll(in long crate);                     // MultipleTimeout
00329 
00330     unsigned long ddcGetChannelParameterInt(in long crate, in long channel, in string name);  // SingleTimeout
00331     float ddcGetChannelParameterFloat(in long crate, in long channel, in string name);        // SingleTimeout
00332     string ddcGetChannelParameterString(in long crate, in long channel, in string name);      // SingleTimeout
00333 
00334     unsigned long ddcGetCardParameterInt(in long crate, in long card, in string name);  // SingleTimeout
00335     float ddcGetCardParameterFloat(in long crate, in long card, in string name);        // SingleTimeout
00336     string ddcGetCardParameterString(in long crate, in long card, in string name);      // SingleTimeout
00337 
00338     unsigned long ddcGetCrateParameterInt(in long crate, in string name);  // SingleTimeout
00339     float ddcGetCrateParameterFloat(in long crate, in string name);        // SingleTimeout
00340     string ddcGetCrateParameterString(in long crate, in string name);      // SingleTimeout
00341 
00342     void ddcGetCrateParameters(in long crate, in NameList names, out NameValueList nameValues);   // MultipleTimeout
00343 
00344     // Also set DDC parameters...
00345     void ddcSetCrateParameterFloat(in long crate, in string name, in float value);  // SingleTimeout
00346     void ddcSetCardParameterFloat(in long crate, in long card, in string name, in float value);  // SingleTimeout
00347     void ddcSetChannelParameterFloat(in long crate, in long channel, in string name, in float value);  // SingleTimeout
00348   };
00349 
00350   interface SctApiDDCServer : 
00351     ipc::servant,
00352     SctApiDDCServerMethods {
00353 
00354     const string instanceName = "SctApiDDCServer";
00355 
00356   };
00357 
00360 
00366   
00367   // This currently sends a ROD level trigger. There's a
00368   // different method for a TIM level trigger, which would 
00369   // be at a higher level.
00370   interface TriggerRODLevel {
00371     void sendL1A(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00372     void sendTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, in Trigger trig);
00373   };
00374 
00375   // These are the only (possibly not even doRawScan) 
00376   // method(s) that need any "intelligence" in the 
00377   // top-level API. Unfortunately, it involves a 
00378   // reasonable amount of intelligence.
00379   interface DoScanMethods {
00380     // Scans
00381     void doScan(in Scan thisScan) // postcondition: hasFinishedScanning()!=true unless the scan has *already* finished! I.e. hasFinishedScanning()==true guarantees that the scan completed.
00382       raises(SctApiException);
00383     void doRawScan(in Scan thisScan, in long delay, in long width, in boolean configure, in boolean clockByTwo)
00384       raises(SctApiException);
00385     void abortScan(); // postcondition: hasFinishedScanning()==true;
00386     boolean hasFinishedScanning();
00387   };
00388 
00389   // Most of what follows just needs to be forwarded to avoid 
00390   // the CalibrationController having to know which 
00391   // Crate/ROD it's talking to. If for some reason 
00392   // it knows already, then they don't need to be in 
00393   // the top-level. It doesn't even need to check with 
00394   // the configuration service as the information is encoded 
00395   // in the mid parameter.
00396   // Either way, no module configurations need to be 
00397   // stored at a level higher than the crate. All it 
00398   // needs to know is which module is in which crate. 
00399   // I believe there are no cases where a module has 
00400   // it's redundant tx pair cross a crate boundary.
00401 
00402   // Modify ABCD methods.
00403   // Crate-level methods would give error if mid 
00404   // doesn't correspond to "my" crate.
00405   interface ModifyABCDMethods {
00406     void modifyABCDMask(in unsigned long mid, in DataBlock mask);
00407     void modifyABCDTrims(in unsigned long mid, in CharBlock trims);
00408     void modifyABCDRC(in unsigned long mid, in unsigned long chip, in unsigned short index, in double p0, in double p1, in double p2 );
00409 
00410     // must be different prototypes
00411     void modifyABCDVar(in unsigned long typ, in double var);
00412     void modifyABCDModuleVar(in unsigned long mid, in unsigned long typ, in double var);
00413     void modifyABCDChipVar(in unsigned long mid, in unsigned long chip, in unsigned long typ, in double var);
00414 
00415     void modifyABCDVarROD(in unsigned long typ, in double var, in BankList banks);
00416     void modifyABCDModuleVarROD(in unsigned long mid, in unsigned long typ, in double var, in BankList banks);
00417 
00418     void modifyBOCParam(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00419                         in unsigned long channel, in unsigned long type, in unsigned long val);
00420 
00421   };
00422 
00423   // Get/set/send module configurations: 
00424   interface ModuleConfigurationMethods {
00426     void getABCDModules(in BankType bank)
00427       raises(SctApiException);
00428     void getABCDModule(in unsigned long mid, in BankType bank)
00429       raises(SctApiException);
00430 
00431 
00432     void setABCDModule(in unsigned long mid, in BankList banks)
00433       raises(SctApiException);
00434     void setABCDModules(in BankList bank)
00435       raises(SctApiException);
00436 
00437     void copyABCDModule(in unsigned long mid, in BankType from, in BankList to)
00438       raises(SctApiException);
00439     void copyABCDModules(in BankType from, in BankList to)
00440       raises(SctApiException);
00441 
00442     void sendABCDModule(in unsigned long mid, in BankType bank, in unsigned long type)
00443       raises(SctApiException);
00444     void sendABCDModules(in BankType bank)
00445       raises(SctApiException);
00446 
00447     void storeModuleConfigurations()
00448       raises(SctApiException);
00449     void storeBOCConfigurations()
00450       raises(SctApiException);
00451 
00452     void configureAllModules()
00453       raises(SctApiException);
00454   };
00455 
00456   // These would be better if the data could come 
00457   // directly back from the crate SctApi
00458   interface RetrievingConfigurationMethods {
00460     sctConf::ABCDModule retrieveModule(in unsigned long mid);
00461     BOCChannelList currentBOCSetup(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00462 
00463     sctConf::BOCGlobalConfig currentBOCRegisters(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00464 
00465   };
00466 
00467   // Currently missing from IPC API, but in C++ class:
00468   // watch out Alan AJB! ...
00469   interface SavingConfigurationMethods {
00470     // saveBOCSetup ?
00471     // restoreBOCSetup ?
00472   };
00473 
00474   // This sends a TIM level trigger. There's a
00475   // different method for a ROD level trigger, which would 
00476   // be at a lower level.
00477   // TIM access, is this being done completely separately anyway?
00478   interface TriggerTIMLevel {
00479     /* *************  TIM functs **************/
00480     void timSetFrequency(in unsigned long partition, in unsigned long crate, in double trigFreq, in double rstFreq);
00481     void freeTriggers(in unsigned long partition, in unsigned long crate);
00482     void stopTriggers(in unsigned long partition, in unsigned long crate);
00483     void timL1A(in unsigned long partition, in unsigned long crate);
00484     void timCalL1A(in unsigned long partition, in unsigned long crate, in short delay);
00485     short timReadRegister(in unsigned long partition, in unsigned long crate, in short value);
00486     void timWriteRegister(in unsigned long partition, in unsigned long crate, in short reg, in short value);
00487 
00488     void sendTimTrigger(in unsigned long partition, in unsigned long crate, in Trigger trig);
00489   };
00490 
00491   // Not used much, but high-level thing so belongs here.
00492   interface AutoConfigure {
00493     AutoResultList autoConfigureScan()
00494       raises(SctApiException);
00495   };
00496 
00497   // Similar, but used internally by histogramming code.
00498   interface ProbeChecks {
00499     boolean checkAllModulesProbe(in string chars)
00500       raises(SctApiException);
00501   };
00502 
00503   // The output from probe currently assumes only 
00504   // one ROD, but could be extended to multiple RODs/crates?
00505   interface ProbeMethods {
00506     CharBlock probe(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00507     CharBlock probeHarness(in unsigned long partition, in unsigned long crate, in unsigned long rod, in unsigned long harness);
00508 
00509     CharBlock probeWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, in Trigger trig);
00510     CharBlock probeHarnessWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00511                       in Trigger trig, in unsigned long harness);
00512     CharMatrix probeScanHarnessWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00513                                           in Scan trig, in unsigned long harness);
00514   };
00515 
00516   // Again, not much intelligence needs to be at high-level, just distribution.
00517   interface RunControl {
00518     void initialiseAll(in unsigned long runNumber)
00519       raises(SctApiException);
00520 
00521     void shutdownAll()
00522       raises(SctApiException);
00523 
00524     void status();
00525     void setRunNumber(in unsigned long newRun);
00526     void setScanNumber(in unsigned long newScan);
00527     unsigned long getRunNumber();
00528     unsigned long getScanNumber();
00529 
00530     void standardRegisterDumpAll();
00531 
00532     void lasersOff();
00533   };
00534 
00535   // High-level API shouldn't really have a list of 
00536   // modules (for coherency), but could amalgamate crates' lists.
00537   interface ModuleInquiry {
00538     sctConf::ModuleList getModuleList();
00539   };
00540 
00543 
00544   // Maybe shouldn't be here (only in TApi)
00545   interface DeprecatedInterfaceOne {
00546     // Configuration 
00547     //    void loadConfiguration();
00548     void loadConfiguration(in string filename)
00549       raises(SctApiException);
00550   };
00551 
00552   // Where did these come from? They decode raw output 
00553   // to stdout, so best kept to TApi...
00554   interface DeprecatedInterfaceTwo {
00555     void rawData(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00556                  in long delay, in long units, in boolean setMask);
00557     void rawDataWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00558                 in long delay, in long units, in boolean setMask, in Trigger trig);
00559   };
00560 
00562 
00563   interface JustCrateMethods :
00564     Sct_SctApi::DirectRODAccess,
00565     Sct_SctApi::DebugOptionsJustCrate {
00566     Idiosyncrasy getIdiosyncrasy();
00567   };
00568 
00569   interface JustCrateMethodsTemporary : // move all elements of this into JustCrateMethods!
00570     Sct_SctApi::PrimitiveAccessLowLevel,
00571     Sct_SctApi::DebugSTDOUT,
00572     Sct_SctApi::OtherCrateLevel {
00573   };
00574 
00575   interface JustTopLevel : 
00576     Sct_SctApi::CrateAccessTopLevel,
00577     Sct_SctApi::DebugOptionsJustTop {
00578   };
00579 
00580   interface JustTopLevelTemporary : // move all elements of this into JustTopLevel! 
00581     Sct_SctApi::ScanMethods,
00582     Sct_SctApi::TranslationMethods {
00583   };
00584 
00585   interface CommonToTopAndCrate :
00586     Sct_SctApi::DoScanMethods,
00587     Sct_SctApi::ModifyABCDMethods,
00588     Sct_SctApi::ModuleConfigurationMethods,
00589     Sct_SctApi::RetrievingConfigurationMethods,
00590     Sct_SctApi::SavingConfigurationMethods,
00591     Sct_SctApi::TriggerRODLevel,
00592     Sct_SctApi::TriggerTIMLevel,
00593     Sct_SctApi::AutoConfigure,
00594     Sct_SctApi::ProbeChecks,
00595     Sct_SctApi::ProbeMethods,
00596     Sct_SctApi::RunControl,
00597     Sct_SctApi::ModuleInquiry,
00598     Sct_SctApi::DebugOptionsCommon {
00599   };
00600 
00601   interface CrateIPC :
00602 
00603     ipc::servant,  
00604 
00605     // Crate level:
00606     Sct_SctApi::JustCrateMethods,
00607     Sct_SctApi::JustCrateMethodsTemporary, // Remove as soon as it is empty!
00608 
00609     // Top level:
00610     Sct_SctApi::JustTopLevelTemporary, // Remove as soon as it is empty!
00611 
00612     // Both levels:
00613     Sct_SctApi::CommonToTopAndCrate,
00614     
00615     // Deprecated things that might move elsewhere:
00616     Sct_SctApi::DeprecatedInterfaceOne,
00617     Sct_SctApi::DeprecatedInterfaceTwo {
00618 
00619     // Not needed as there will be more than one instance in any case! // const string instanceName = "SctApiCrateIPC";
00620 
00621   };
00622 
00623 
00624   // TOP LEVEL:
00625   interface SctApiIPC : 
00626 
00627     ipc::servant,  
00628 
00629     // Crate level:
00630     Sct_SctApi::JustCrateMethodsTemporary, // Remove as soon as it is empty!
00631 
00632     // Top level:
00633     Sct_SctApi::JustTopLevel,
00634     Sct_SctApi::JustTopLevelTemporary, // Remove as soon as it is empty!
00635     // Not needed ... now separate ... Sct_SctApi::SctApiDDCServerMethods,
00636 
00637     // Both levels:
00638     Sct_SctApi::CommonToTopAndCrate,
00639 
00640     // Deprecated things that might move elsewhere:
00641     Sct_SctApi::DeprecatedInterfaceOne,
00642     Sct_SctApi::DeprecatedInterfaceTwo {
00643 
00644     const string instanceName = "SctApiImpl";
00645 
00646   };
00647 
00648   // ORIGINAL
00649   interface SctApiIPCOriginal : 
00650 
00651     ipc::servant,  
00652 
00653     // Crate level:
00654     Sct_SctApi::JustCrateMethods,
00655 
00656     // Top level:
00657     Sct_SctApi::JustTopLevel,
00658 
00659     // Both levels:
00660     Sct_SctApi::CommonToTopAndCrate,
00661 
00662     // Deprecated things that might move elsewhere:
00663     Sct_SctApi::DeprecatedInterfaceOne,
00664     Sct_SctApi::DeprecatedInterfaceTwo {
00665 
00666     const string instanceName = "SctApiImpl";
00667 
00668   };
00669 
00670 };

Generated on Fri Sep 16 18:08:27 2005 for SCT DAQ/DCS Software - IDL by doxygen 1.3.5