Main Page | Namespace List | 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 "sctConf/configuration.idl"
00007 
00008 module Sct_SctApi {
00009   exception SctApiException {
00010     string detail;
00011   };
00012 
00013   typedef sequence <long> DataBlock;
00014   typedef sequence <short> CharBlock;
00015   typedef sequence <CharBlock> CharMatrix;
00016   typedef sequence <string> DefectList;
00017   typedef sequence <sctConf::BOCChannelConfig> BOCChannelList;
00018   typedef sequence <string> NameList;
00019   typedef sequence <double> BOCMonitorSequence;
00020 
00021   struct NameValue {
00022     string name;
00023     float value;
00024   };
00025 
00026   typedef sequence <NameValue> NameValueList;
00027 
00028   enum BankType {PHYSICS_CONFIG, SCAN_CONFIG, CALIBRATION_CONFIG};
00029 
00030   interface Trigger : ipc::freeable {
00031     void print();
00032 
00033     void singleL1A();
00034     void doubleL1A(in unsigned short delay);
00035     void delayedL1A(in unsigned short delay);
00036     void calL1A(in unsigned short delay);
00037     void pulseL1A(in unsigned short delay);
00038     void softL1A(in unsigned short delay);
00039     void softCalL1A(in unsigned short delay, in unsigned short delay2);
00040     void softPulseL1A(in unsigned short delay, in unsigned short delay2);
00041     void bcL1A(in unsigned short delay);
00042     void bcCalL1A(in unsigned short delay, in unsigned short delay2);
00043     void bcPulseL1A(in unsigned short delay, in unsigned short delay2);
00044 
00045     void setCommIncr(in unsigned short command, in unsigned short incr);
00046     void getCommIncr(out unsigned short command, out unsigned short incr);
00047   };
00048 
00049   typedef sequence <double> ScanPoints;
00050   typedef sequence <unsigned long> TrigPoints;
00051 
00052   interface Scan : ipc::freeable {
00053     enum ScanOptions {full, bits32, loopCalLine, distSlave, debug, tim, nth, nth_rem};
00054 
00055     void print();
00056 
00057     void configure(in unsigned short type, in double start, in double stop, in double step);
00058     void configure2(in unsigned short type, in double start, in double stop, in double step);
00059 
00060     Trigger getTrigger1();
00061     Trigger getTrigger2();
00062 
00063     // Only throw cause they're not implemented!
00064     void setTrigger1(in Trigger trig)
00065       raises(SctApiException);
00066     void setTrigger2(in Trigger trig)
00067       raises(SctApiException);
00068 
00069     void setScanVariable1(in unsigned short var);
00070     void setScanVariable2(in unsigned short var);
00071     unsigned short getScanVariable1();
00072     unsigned short getScanVariable2();
00073 
00074     void setNTrigs(in unsigned long nTrigs);
00075     unsigned long getNTrigs();
00076 
00077     TrigPoints getVariableTrigs();
00078     void setVariableTrigs(in TrigPoints trigs);
00079     void setVariableTrigRange(in unsigned short start, in unsigned short end, in unsigned long value);
00080 
00081     ScanPoints getScanPoints1();
00082     ScanPoints getScanPoints2();
00083     void setScanPoints1(in ScanPoints scans);
00084     void setScanPoints2(in ScanPoints scans);
00085 
00086     long getOption(in ScanOptions opt);
00087     void setOption(in ScanOptions opt, in long val);
00088 
00089     unsigned long getScanNumber();
00090     unsigned long getRunNumber();
00091 
00092     sctConf::ModuleList getModuleList(in unsigned long group);
00093     unsigned long getNGroups();
00094 
00096     string getStartTime();
00098     string getEndTime();
00099   };
00100 
00101   typedef sequence <Scan> ScanList;
00102 
00103   struct AutoConfigResult {
00104     unsigned long partition;
00105     unsigned long crate;
00106     unsigned long rod;
00107 
00108     unsigned long tx;
00109     unsigned long rx;
00110   };
00111 
00112   typedef sequence <AutoConfigResult> AutoResultList;
00113 
00114   interface SctApi : ipc::freeable {
00115     const string serverName = "SctApi";
00116     const string instanceName = "SctApiImpl";
00117 
00118     void initialiseAll(in unsigned long runNumber)
00119       raises(SctApiException);
00120 
00121     void shutdownAll()
00122       raises(SctApiException);
00123 
00124     void status();
00125     void setRunNumber(in unsigned long newRun);
00126     void setScanNumber(in unsigned long newScan);
00127     unsigned long getRunNumber();
00128     unsigned long getScanNumber();
00129 
00130     void unsetDebugOption(in string opt);
00131     void setDebugOption(in string opt);
00132 
00133     DefectList listEnabledDebugOptions();
00134     DefectList listDebugOptions();
00135 
00136     void standardRegisterDump(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00137 
00138     void standardRegisterDumpAll();
00139 
00140     sctConf::ModuleList getModuleList();
00141 
00142     boolean isRODPresent(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00143 
00144     void awaitResponse(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00145     DataBlock getResponse(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00146 
00147     void configureBOC(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00148 
00149     BOCMonitorSequence getBOCMonitorArray(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00150 
00151     void flashLED(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00152                   in unsigned short slaveNumber, in unsigned long period, in unsigned long flashes)
00153       raises(SctApiException);
00154     void echo(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00155               in DataBlock data)
00156       raises(SctApiException);
00157 
00158     void createDebugPrimList()
00159       raises(SctApiException);
00160     void addDebugPrimList(in long index, in long id, in long version, in DataBlock body)
00161       raises(SctApiException);
00162     void sendDebugPrimList(in unsigned long partition, in unsigned long crate, in unsigned long rod)
00163       raises(SctApiException);
00164     void sendDebugSlavePrimList(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00165                                 in unsigned long slave, in boolean await, in boolean response)
00166       raises(SctApiException);
00167 
00168 
00169     // Configuration 
00170     //    void loadConfiguration();
00171     void loadConfiguration(in string filename)
00172       raises(SctApiException);
00173     void storeModuleConfigurations()
00174       raises(SctApiException);
00175 
00176     void configureAllModules()
00177       raises(SctApiException);
00178 
00179 
00181     sctConf::ABCDModule retrieveModule(in unsigned long mid);
00182 
00183     /***************** Direct ROD access (Debug only) ********************/
00184     short dspBlockDump(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00185                      in long dspStart, in long numWords, in long dspNumber);
00186     DataBlock dspBlockRead(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00187                            in long dspStart, in long numWords, in long dspNumber);
00188     short dspBlockWrite(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00189                       in DataBlock buffer, in unsigned long dspAddress, in long dspNumber);
00190 
00191     unsigned long dspSingleRead(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00192                                 in unsigned long dspAddr, in long dspNumber);
00193     void dspSingleWrite(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00194                         in unsigned long dspAddr, in unsigned long val, in long dspNumber);
00195 
00196     DataBlock readSlaveDsp(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00197                            in short s, in unsigned long add, in unsigned long words);
00198 //      unsigned long readRodStatusReg(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00199 //                                     in long regNumber);
00200 //      unsigned long readRodCommandReg(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00201 //                                      in long regNumber);
00202 
00203     // Translation
00204     unsigned long findModuleSerial(in string sn);
00205     string convertToString(in unsigned long mid);
00206     unsigned long findModule(in unsigned short mur, in unsigned short number);
00207 
00208     unsigned long findModuleRod(in unsigned long partition, in unsigned long crate, in unsigned long rod, in unsigned long channel);
00209 
00210     //  pair<INT32, INT32> convertToMUR(in unsigned long mid);
00211 
00212     unsigned long findBarrelModule(in unsigned long barrel, in unsigned long row, in short number);
00213     void convertToBarrelModule(in unsigned long mid, out unsigned long barrel, out unsigned long row, out short number);
00214 
00215     unsigned long findEndcapModule(in long disk, in long ring, in long number);
00216     void convertToEndcapModule(in unsigned long mid, out long disk, out unsigned long ring, out unsigned long number);
00217 
00219     void getABCDModules(in BankType bank)
00220       raises(SctApiException);
00221     void getABCDModule(in unsigned long mid, in BankType bank)
00222       raises(SctApiException);
00223 
00224     sctConf::ABCDModule getABCDModuleRaw(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00225                                          in unsigned long slot, in BankType bank)
00226       raises(SctApiException);
00227 
00228     void setABCDModule(in unsigned long mid, in BankType bank)
00229       raises(SctApiException);
00230     void setABCDModules(in BankType bank)
00231       raises(SctApiException);
00232 
00233     void sendABCDModule(in unsigned long mid, in BankType bank, in unsigned long type)
00234       raises(SctApiException);
00235     void sendABCDModules(in BankType bank)
00236       raises(SctApiException);
00237 
00238     void modifyABCDMask(in unsigned long mid, in DataBlock mask);
00239     void modifyABCDTrims(in unsigned long mid, in CharBlock trims);
00240     void modifyABCDRC(in unsigned long mid, in unsigned long chip, in unsigned short index, in double p0, in double p1, in double p2 );
00241 
00242     // must be different prototypes
00243     void modifyABCDVar(in unsigned long typ, in double var);
00244     void modifyABCDModuleVar(in unsigned long mid, in unsigned long typ, in double var);
00245     void modifyABCDChipVar(in unsigned long mid, in unsigned long chip, in unsigned long typ, in double var);
00246 
00247     void modifyABCDVarROD(in unsigned long typ, in double var, in BankType bank);
00248     void modifyABCDModuleVarROD(in unsigned long mid, in unsigned long typ, in double var, in BankType bank);
00249 
00250     void modifyBOCParam(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00251                         in unsigned long channel, in unsigned long type, in unsigned long val);
00252 
00253     void lasersOff();
00254 
00255     /* *************  TIM functs **************/
00256     void timSetFrequency(in unsigned long partition, in unsigned long crate, in double trigFreq, in double rstFreq);
00257     void freeTriggers(in unsigned long partition, in unsigned long crate);
00258     void stopTriggers(in unsigned long partition, in unsigned long crate);
00259     void timL1A(in unsigned long partition, in unsigned long crate);
00260     void timCalL1A(in unsigned long partition, in unsigned long crate, in short delay);
00261     short timReadRegister(in unsigned long partition, in unsigned long crate, in short value);
00262     void timWriteRegister(in unsigned long partition, in unsigned long crate, in short reg, in short value);
00263 
00264     void sendTimTrigger(in unsigned long partition, in unsigned long crate, in Trigger trig);
00265     void sendTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, in Trigger trig);
00266 
00267     // Scans
00268     void doScan(in Scan thisScan) 
00269       raises(SctApiException);
00270     void doRawScan(in Scan thisScan, in long delay, in long width, in boolean configure, in boolean clockByTwo)
00271       raises(SctApiException);
00272 
00273     void printBOCSetup(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00274     BOCChannelList currentBOCSetup(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00275 
00276     sctConf::BOCGlobalConfig currentBOCRegisters(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00277 
00278     void printABCDModule(in unsigned long mid);
00279     void printABCDRodModule(in unsigned long mid, in BankType bank);
00280 
00281     void decodeEvent(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00282                      in short sl, in short index, in boolean extFlag, in boolean errorType);
00283 
00284     void rawData(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00285                  in long delay, in long units, in boolean setMask);
00286     void rawDataWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00287                 in long delay, in long units, in boolean setMask, in Trigger trig);
00288     void sendL1A(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00289 
00290     CharBlock probe(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00291     CharBlock probeHarness(in unsigned long partition, in unsigned long crate, in unsigned long rod, in unsigned long harness);
00292 
00293     CharBlock probeWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, in Trigger trig);
00294     CharBlock probeHarnessWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00295                       in Trigger trig, in unsigned long harness);
00296     CharMatrix probeScanHarnessWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00297                                           in Scan trig, in unsigned long harness);
00298 
00299     boolean checkAllModulesProbe(in string chars)
00300       raises(SctApiException);
00301 
00302     AutoResultList autoConfigureScan()
00303       raises(SctApiException);
00304 
00305     unsigned long getRodSlot(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00306 
00307     void testLinkOutSelect(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00308                            in unsigned long link);
00309 
00310     unsigned long testLinkOutRetrieve(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00311 
00312     // DCS stuff
00313 
00314     void requestHardReset(in unsigned long mid);
00315     void requestIVCurve(in unsigned long mid, in float start, in float stop, in float step, 
00316                         in unsigned short delay, in float currentLim);
00317     void setSelect(in unsigned long mid, in boolean value); 
00318     void setSelectAllInCrate(in long crate, in boolean value);
00319     void changeRunState(in long state);
00320 
00321     // Direct DDC methods (no module translation)
00322 //     void ddcGetChannelParameter(in long crate, in long channel, in string dpeName,
00323 //                                 out long dpeValue);          // Put timeout in here?
00324 
00325     void ddcSetSingleTimeout(in short timeout);
00326     short ddcGetSingleTimeout();
00327     void ddcSetMultipleTimeout(in short timeout);
00328     short ddcGetMultipleTimeout();
00329 
00330     void ddcChangeState(in long crate, in long channel, 
00331                         in short state);                     // MultipleTimeout
00332     void ddcChangeStateAll(in long crate, 
00333                            in short state);                  // MultipleTimeout
00334     void ddcLoadConfiguration(in long crate, 
00335                               in short state);               // MultipleTimeout
00336     void ddcHardReset(in long crate, in long channel);       // SingleTimeout
00337     void ddcHardResetAll(in long crate);                     // MultipleTimeout
00338 
00339     unsigned long ddcGetChannelParameterInt(in long crate, in long channel, in string name);  // SingleTimeout
00340     float ddcGetChannelParameterFloat(in long crate, in long channel, in string name);        // SingleTimeout
00341     string ddcGetChannelParameterString(in long crate, in long channel, in string name);      // SingleTimeout
00342 
00343     unsigned long ddcGetCardParameterInt(in long crate, in long card, in string name);  // SingleTimeout
00344     float ddcGetCardParameterFloat(in long crate, in long card, in string name);        // SingleTimeout
00345     string ddcGetCardParameterString(in long crate, in long card, in string name);      // SingleTimeout
00346 
00347     unsigned long ddcGetCrateParameterInt(in long crate, in string name);  // SingleTimeout
00348     float ddcGetCrateParameterFloat(in long crate, in string name);        // SingleTimeout
00349     string ddcGetCrateParameterString(in long crate, in string name);      // SingleTimeout
00350 
00351     void ddcGetCrateParameters(in long crate, in NameList names, out NameValueList nameValues);   // MultipleTimeout
00352 
00353     // Also set DDC parameters...
00354 
00355     Scan createScan();
00356     Scan getDefaultScan();
00357 
00358     Trigger createTrigger();
00359     Trigger getDefaultTrigger();
00360 
00361     ScanList knownScans();
00362   };
00363 
00364 };

Generated on Sat Jul 31 14:22:39 2004 for SCT DAQ/DCS Software - IDL by doxygen 1.3.5