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 "sctConf/configuration.idl"
00007 
00008 module Sct_SctApi {
00009   typedef sequence <long> DataBlock;
00010   typedef sequence <short> CharBlock;
00011 
00012   enum BankType {PHYICS_CONFIG, CALIBRATION_CONFIG, SCAN_CONFIG};
00013 
00014   interface Trigger : ipc::freeable {
00015     void print();
00016 
00017     void singleL1A();
00018     void doubleL1A(in unsigned short delay);
00019     void calL1A(in unsigned short delay);
00020     void pulseL1A(in unsigned short delay);
00021     void softL1A(in unsigned short delay);
00022     void softCalL1A(in unsigned short delay, in unsigned short delay2);
00023     void softPulseL1A(in unsigned short delay, in unsigned short delay2);
00024     void bcL1A(in unsigned short delay);
00025     void bcCalL1A(in unsigned short delay, in unsigned short delay2);
00026     void bcPulseL1A(in unsigned short delay, in unsigned short delay2);
00027 
00028     void setCommIncr(in unsigned short command, in unsigned short incr);
00029     void getCommIncr(out unsigned short command, out unsigned short incr);
00030   };
00031 
00032   typedef sequence <double> ScanPoints;
00033 
00034   interface Scan : ipc::freeable {
00035     enum ScanOptions {format, full, bits32, loopCalLine, distSlave, debug};
00036 
00037     void print();
00038 
00039     void configure(in unsigned short type, in double start, in double stop, in double step);
00040     void configure2(in unsigned short type, in double start, in double stop, in double step);
00041 
00042     Trigger getTrigger1();
00043     Trigger getTrigger2();
00044 
00045     void setTrigger1(in Trigger trig);
00046     void setTrigger2(in Trigger trig);
00047 
00048     void setScanVariable1(in unsigned short var);
00049     void setScanVariable2(in unsigned short var);
00050     unsigned short getScanVariable1();
00051     unsigned short getScanVariable2();
00052 
00053     void setNTrigs(in unsigned long nTrigs);
00054     unsigned short getNTrigs();
00055 
00056     ScanPoints getScanPoints1();
00057     ScanPoints getScanPoints2();
00058     void setScanPoints1(in ScanPoints scans);
00059     void setScanPoints2(in ScanPoints scans);
00060 
00061     long getOption(in ScanOptions opt);
00062     void setOption(in ScanOptions opt, in long val);
00063 
00064     unsigned long getScanNumber();
00065     void setScanNumber(in unsigned long scan);
00066 
00067     unsigned long getRunNumber();
00068     void setRunNumber(in unsigned long run);
00069 
00070     sctConf::ModuleList getModuleList(in unsigned long group);
00071     unsigned long getNGroups();
00072   };
00073 
00074   typedef sequence <Scan> ScanList;
00075 
00076   interface SctApi : ipc::freeable {
00077     void initialiseAll(in unsigned long runNumber);
00078 
00079     void shutdownAll();
00080 
00081     void status();
00082     void setRunNumber(in unsigned long newRun);
00083     void setScanNumber(in unsigned long newScan);
00084 
00085     void awaitResponse(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00086     DataBlock getResponse(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00087                           out unsigned long length);
00088 
00089 
00090     void flashLED(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00091                   in unsigned short slaveNumber, in unsigned long period, in unsigned long flashes);
00092     void echo(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00093               in unsigned long length, in DataBlock data); 
00094 
00095     void createDebugPrimList();
00096     void addDebugPrimList(in unsigned long length, in long index, in long id, in long version,
00097                           in DataBlock body);
00098     void sendDebugPrimList(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00099     void sendDebugSlavePrimList(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00100                                 in unsigned long slave, in boolean await, in boolean response);
00101 
00102 
00103     // Configuration 
00104     //    void loadConfiguration();
00105     void loadConfiguration(in string filename);
00106     void storeModuleConfigurations();
00107 
00108     void configureAllModules();
00109 
00110 
00112     sctConf::ABCDModule retrieveModule(in unsigned long mid);
00113 
00114     /***************** Direct ROD access (Debug only) ********************/
00115     short dspBlockDump(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00116                      in long dspStart, in long numWords, in long dspNumber);
00117     DataBlock dspBlockRead(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00118                            in long dspStart, in long numWords, in long dspNumber, out long length);
00119     short dspBlockWrite(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00120                       in DataBlock buffer, in unsigned long dspAddress, in long numWords, in long dspNumber);
00121     unsigned long dspSingleRead(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00122                                 in unsigned long dspAddr, in long dspNumber);
00123     void dspSingleWrite(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00124                         in unsigned long dspAddr, in unsigned long val, in long dspNumber);
00125 
00126     DataBlock readSlaveDsp(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00127                            in short s, in unsigned long add, in unsigned long words);
00128 //      unsigned long readRodStatusReg(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00129 //                                     in long regNumber);
00130 //      unsigned long readRodCommandReg(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00131 //                                      in long regNumber);
00132 
00133     // Translation
00134     unsigned long findModuleSerial(in string sn);
00135     string convertToString(in unsigned long mid);
00136     unsigned long findModule(in unsigned short mur, in unsigned short number);
00137 
00138     //  pair<INT32, INT32> convertToMUR(in unsigned long mid);
00139 
00140     unsigned long findBarrelModule(in unsigned long barrel, in unsigned long row, in short number);
00141     void convertToBarrelModule(in unsigned long mid, out unsigned long barrel, out unsigned long row, out short number);
00142 
00143     unsigned long findEndcapModule(in long disk, in long ring, in long number);
00144     void convertToEndcapModule(in unsigned long mid, out unsigned long disk, out unsigned long ring, out unsigned long number);
00145 
00147     void getABCDModules(in unsigned long bank);
00148     void getABCDModule(in unsigned long mid, in unsigned long bank);
00149 
00150     void setABCDModule(in unsigned long mid, in unsigned long bank);
00151     void setABCDModules(in unsigned long bank);
00152 
00153     void sendABCDModule(in unsigned long mid, in unsigned long bank, in unsigned long type);
00154     void sendABCDModules(in unsigned long bank);
00155 
00156     void modifyABCDMask(in unsigned long mid, in DataBlock mask);
00157     void modifyABCDTrims(in unsigned long mid, in CharBlock trims);
00158     void modifyABCDRC(in unsigned long mid, in unsigned long chip, in unsigned short index, in double p0, in double p1, in double p2 );
00159 
00160     // XXX must be different prototypes
00161     void modifyABCDVar(in unsigned long typ, in double var);
00162     void modifyABCDModuleVar(in unsigned long mid, in unsigned long typ, in double var);
00163     void modifyABCDChipVar(in unsigned long mid, in unsigned long chip, in unsigned long typ, in double var);
00164 
00165     void modifyBOCParam(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00166                         in unsigned long channel, in unsigned long type, in unsigned long val);
00167 
00168     void lasersOff();
00169 
00170     /* *************  TIM functs **************/
00171     void freeTriggers(in unsigned long partition, in unsigned long crate,
00172                       in double freq);
00173     void stopTriggers(in unsigned long partition, in unsigned long crate);
00174     void timL1A(in unsigned long partition, in unsigned long crate);
00175     void timCalL1A(in unsigned long partition, in unsigned long crate, in short delay);
00176     void sendTriggerAll(in Trigger trig);
00177     void sendTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, in Trigger trig);
00178 
00179     // Scans
00180     oneway void doScan(in Scan thisScan);
00181     void doRawScan(in Scan thisScan, in long delay);
00182 
00183     void printBOCSetup(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00184     void printABCDModule(in unsigned long mid);
00185     void printABCDRodModule(in unsigned long mid, in short bank);
00186 
00187     void decodeEvent(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00188                      in short sl, in short index, in boolean extFlag, in boolean errorType);
00189 
00190     void rawData(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00191                  in long delay, in long units, in boolean setMask);
00192     void rawDataWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00193                 in long delay, in long units, in boolean setMask, in Trigger trig);
00194     void sendL1A(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00195 
00196     CharBlock probe(in unsigned long partition, in unsigned long crate, in unsigned long rod);
00197     CharBlock probeHarness(in unsigned long partition, in unsigned long crate, in unsigned long rod, in unsigned long harness);
00198 
00199     CharBlock probeWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, in Trigger trig);
00200     CharBlock probeHarnessWithTrigger(in unsigned long partition, in unsigned long crate, in unsigned long rod, 
00201                       in Trigger trig, in unsigned long harness);
00202 
00203     void requestHardReset(in unsigned long mid);
00204     void requestIVCurve(in unsigned long mid, in float start, in float stop, in float step, 
00205                         in unsigned short delay, in float currentLim);
00206     void setSelect(in unsigned long mid, in boolean value); 
00207     void changeRunState(in long state);
00208     void ddcGetChannelParameter(in long crate, in long channel, in string dpeName,
00209                                 out long dpeValue, in long timeout);
00210 
00211     Scan defaultScan();
00212     Trigger defaultTrigger();
00213 
00214     ScanList knownScans();
00215   };
00216 
00217 };

Generated on Mon Dec 15 19:39:30 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3