Main Page   Modules   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   Globals   Related Pages  

SctApiServer.h

Go to the documentation of this file.
00001 #include "SctApi/SctApi.h"
00002 #include "SctApi/SctApiImpl.h"
00003 
00004 #include <ipc/object.h>
00005 #include "Sct_SctApi.hh"
00006 
00007 class SctApiServer : public SctApi::SctApi, public IPCObject, public virtual Sct_SctApi_T_SctApi {
00008  public:
00009 
00010   SctApiServer(const char* oid, IPCServer* server);
00011   virtual ~SctApiServer();      // destructor
00012 
00013  // methods
00014 
00015   virtual void initialiseAll (Sct_SctApiStatus *_status, ilu_Cardinal runNumber);
00016   virtual void shutdownAll (Sct_SctApiStatus *_status);
00017   virtual void status (Sct_SctApiStatus *_status);
00018   virtual void setRunNumber (Sct_SctApiStatus *_status, ilu_Cardinal newRun);
00019   virtual void setScanNumber (Sct_SctApiStatus *_status, ilu_Cardinal newScan);
00020   virtual void awaitResponse (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00021   virtual Sct_SctApi_T_DataBlock getResponse (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal * length);
00022   virtual void flashLED (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_ShortCardinal slaveNumber, ilu_Cardinal period, ilu_Cardinal flashes);
00023   virtual void echo (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal length, Sct_SctApi_T_DataBlock data);
00024   virtual void createDebugPrimList (Sct_SctApiStatus *_status);
00025   virtual void addDebugPrimList (Sct_SctApiStatus *_status, ilu_Cardinal length, ilu_Integer index, ilu_Integer id, ilu_Integer version, Sct_SctApi_T_DataBlock body);
00026   virtual void sendDebugPrimList (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00027   virtual void sendDebugSlavePrimList (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal slave, ilu_Boolean await, ilu_Boolean response);
00028   virtual void loadConfiguration (Sct_SctApiStatus *_status, ilu_T_CString filename);
00029   virtual void storeModuleConfigurations (Sct_SctApiStatus *_status);
00030   virtual void configureAllModules (Sct_SctApiStatus *_status);
00031   virtual sctConf_T_ABCDModule* retrieveModule (Sct_SctApiStatus *_status, ilu_Cardinal mid);
00032   virtual ilu_ShortInteger dspBlockDump (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Integer dspStart, ilu_Integer numWords, ilu_Integer dspNumber);
00033   virtual Sct_SctApi_T_DataBlock dspBlockRead (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Integer dspStart, ilu_Integer numWords, ilu_Integer dspNumber, ilu_Integer * length);
00034   virtual ilu_ShortInteger dspBlockWrite (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, Sct_SctApi_T_DataBlock buffer, ilu_Cardinal dspAddress, ilu_Integer numWords, ilu_Integer dspNumber);
00035   virtual ilu_Cardinal dspSingleRead (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal dspAddr, ilu_Integer dspNumber);
00036   virtual void dspSingleWrite (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal dspAddr, ilu_Cardinal val, ilu_Integer dspNumber);
00037   virtual Sct_SctApi_T_DataBlock readSlaveDsp (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_ShortInteger s, ilu_Cardinal add, ilu_Cardinal words);
00038   virtual ilu_Cardinal findModuleSerial (Sct_SctApiStatus *_status, ilu_T_CString sn);
00039   virtual ilu_T_CString convertToString (Sct_SctApiStatus *_status, ilu_Cardinal mid);
00040   virtual ilu_Cardinal findModule (Sct_SctApiStatus *_status, ilu_ShortCardinal mur, ilu_ShortCardinal number);
00041   virtual ilu_Cardinal findBarrelModule (Sct_SctApiStatus *_status, ilu_Cardinal barrel, ilu_Cardinal row, ilu_ShortInteger number);
00042   virtual void convertToBarrelModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal * barrel, ilu_Cardinal * row, ilu_ShortInteger * number);
00043   virtual ilu_Cardinal findEndcapModule (Sct_SctApiStatus *_status, ilu_Integer disk, ilu_Integer ring, ilu_Integer number);
00044   virtual void convertToEndcapModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal * disk, ilu_Cardinal * ring, ilu_Cardinal * number);
00045   virtual void getABCDModules (Sct_SctApiStatus *_status, ilu_Cardinal bank);
00046   virtual void getABCDModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal bank);
00047   virtual void setABCDModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal bank);
00048   virtual void setABCDModules (Sct_SctApiStatus *_status, ilu_Cardinal bank);
00049   virtual void sendABCDModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal bank, ilu_Cardinal type);
00050   virtual void sendABCDModules (Sct_SctApiStatus *_status, ilu_Cardinal bank);
00051   virtual void modifyABCDMask (Sct_SctApiStatus *_status, ilu_Cardinal mid, Sct_SctApi_T_DataBlock mask);
00052     virtual void modifyABCDTrims (Sct_SctApiStatus *_status, ilu_Cardinal mid, Sct_SctApi_T_CharBlock trims);
00053     virtual void modifyABCDRC (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal chip, ilu_ShortCardinal index, ilu_Real p0, ilu_Real p1, ilu_Real p2);
00054   virtual void modifyABCDVar (Sct_SctApiStatus *_status, ilu_Cardinal typ, ilu_Real var);
00055   virtual void modifyABCDModuleVar (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal typ, ilu_Real var);
00056   virtual void modifyABCDChipVar (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal chip, ilu_Cardinal typ, ilu_Real var);
00057   virtual void modifyBOCParam (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal channel, ilu_Cardinal type, ilu_Cardinal val);
00058   virtual void lasersOff (Sct_SctApiStatus *_status);
00059   virtual void freeTriggers (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Real freq);
00060   virtual void stopTriggers (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate);
00061   virtual void timL1A (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate);
00062   virtual void timCalL1A (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_ShortInteger delay);
00063   virtual void sendTriggerAll (Sct_SctApiStatus *_status, class Sct_SctApi_T_Trigger * trig);
00064   virtual void sendTrigger (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, class Sct_SctApi_T_Trigger * trig);
00065   virtual void doScan (Sct_SctApiStatus *_status, class Sct_SctApi_T_Scan * thisScan);
00066   virtual void doRawScan (Sct_SctApiStatus *_status, class Sct_SctApi_T_Scan * thisScan, ilu_Integer delay);
00067   virtual void printBOCSetup (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00068   virtual void printABCDModule (Sct_SctApiStatus *_status, ilu_Cardinal mid);
00069   virtual void printABCDRodModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_ShortInteger bank);
00070   virtual void decodeEvent (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_ShortInteger sl, ilu_ShortInteger index, ilu_Boolean extFlag, ilu_Boolean errorType);
00071   virtual void rawData (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Integer delay, ilu_Integer units, ilu_Boolean setMask);
00072   virtual void rawDataWithTrigger (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Integer delay, ilu_Integer units, ilu_Boolean setMask, class Sct_SctApi_T_Trigger * trig);
00073   virtual void sendL1A (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00074   virtual Sct_SctApi_T_CharBlock probe (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00075   virtual Sct_SctApi_T_CharBlock probeHarness (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal harness);
00076   virtual Sct_SctApi_T_CharBlock probeWithTrigger (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, class Sct_SctApi_T_Trigger * trig);
00077   virtual Sct_SctApi_T_CharBlock probeHarnessWithTrigger (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, class Sct_SctApi_T_Trigger * trig, ilu_Cardinal harness);
00078   virtual void requestHardReset (Sct_SctApiStatus *_status, ilu_Cardinal mid);
00079   virtual void requestIVCurve (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_ShortReal start, ilu_ShortReal stop, ilu_ShortReal step, ilu_ShortCardinal delay, ilu_ShortReal currentLim);
00080   virtual void setSelect (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Boolean value);
00081   virtual void changeRunState (Sct_SctApiStatus *_status, ilu_Integer state);
00082   virtual void ddcGetChannelParameter (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Integer channel, ilu_T_CString dpeName, ilu_Integer * dpeValue, ilu_Integer timeout);
00083 
00084   // Factory methods
00085   virtual class Sct_SctApi_T_Scan * defaultScan (Sct_SctApiStatus *_status);
00086   virtual class Sct_SctApi_T_Trigger * defaultTrigger (Sct_SctApiStatus *_status);
00087   virtual Sct_SctApi_T_ScanList knownScans (Sct_SctApiStatus *_status);
00088 
00089   std::list<Sct_SctApi_T_Scan *> scans;
00090 
00091   static SctApiServer *singleton;
00092 
00093  protected:
00094   SctApi::SctApi &worker();
00095 
00096   MRSStream mrsStream;
00097   ISInfoDictionary isDict;
00098 };
00099 
00100 // Wrapper for SctApi::Scan class
00101 class ScanServer : public SctApi::ScanDefImpl, public IPCObject, public virtual Sct_SctApi_T_Scan {
00102   ScanServer(const ScanServer &);
00103   ScanServer &operator=(const ScanServer &);
00104 
00105   static int nextNumber;
00106 
00107  public:
00108   ScanServer(IPCServer* server);
00109 
00110   virtual ~ScanServer();
00111 
00112   virtual void print (Sct_SctApiStatus *_status);
00113   virtual void configure (Sct_SctApiStatus *_status, ilu_ShortCardinal type, ilu_Real start, ilu_Real stop, ilu_Real step);
00114   virtual void configure2 (Sct_SctApiStatus *_status, ilu_ShortCardinal type, ilu_Real start, ilu_Real stop, ilu_Real step);
00115   virtual class Sct_SctApi_T_Trigger * getTrigger1 (Sct_SctApiStatus *_status);
00116   virtual class Sct_SctApi_T_Trigger * getTrigger2 (Sct_SctApiStatus *_status);
00117   virtual void setTrigger1 (Sct_SctApiStatus *_status, class Sct_SctApi_T_Trigger * trig);
00118   virtual void setTrigger2 (Sct_SctApiStatus *_status, class Sct_SctApi_T_Trigger * trig);
00119   virtual void setScanVariable1 (Sct_SctApiStatus *_status, ilu_ShortCardinal var);
00120   virtual void setScanVariable2 (Sct_SctApiStatus *_status, ilu_ShortCardinal var);
00121   virtual ilu_ShortCardinal getScanVariable1 (Sct_SctApiStatus *_status);
00122   virtual ilu_ShortCardinal getScanVariable2 (Sct_SctApiStatus *_status);
00123   virtual void setNTrigs (Sct_SctApiStatus *_status, ilu_Cardinal nTrigs);
00124   virtual ilu_ShortCardinal getNTrigs (Sct_SctApiStatus *_status);
00125   virtual Sct_SctApi_T_ScanPoints getScanPoints1 (Sct_SctApiStatus *_status);
00126   virtual Sct_SctApi_T_ScanPoints getScanPoints2 (Sct_SctApiStatus *_status);
00127   virtual void setScanPoints1 (Sct_SctApiStatus *_status, Sct_SctApi_T_ScanPoints scans);
00128   virtual void setScanPoints2 (Sct_SctApiStatus *_status, Sct_SctApi_T_ScanPoints scans);
00129   virtual ilu_Integer getOption (Sct_SctApiStatus *_status, Sct_SctApi_T_Scan_ScanOptions opt);
00130   virtual void setOption (Sct_SctApiStatus *_status, Sct_SctApi_T_Scan_ScanOptions opt, ilu_Integer val);
00131   virtual ilu_Cardinal getScanNumber (Sct_SctApiStatus *_status);
00132   virtual void setScanNumber (Sct_SctApiStatus *_status, ilu_Cardinal scan);
00133   virtual ilu_Cardinal getRunNumber (Sct_SctApiStatus *_status);
00134   virtual void setRunNumber (Sct_SctApiStatus *_status, ilu_Cardinal run);
00135   virtual sctConf_T_ModuleList getModuleList (Sct_SctApiStatus *_status, ilu_Cardinal group);
00136   virtual ilu_Cardinal getNGroups (Sct_SctApiStatus *_status);
00137 
00138   // Override default freeable
00139   virtual void destroy(ipcStatus *_status);
00140 
00141  protected:
00142   static std::string getServerName();
00143 
00144  protected:
00145   SctApi::Scan &worker();
00146 };
00147 
00148 // Wrapper for SctApi::Trigger class
00149 class TriggerServer : public SctApi::TriggerImpl, public IPCObject, public virtual Sct_SctApi_T_Trigger {
00150   TriggerServer(const TriggerServer &);
00151   TriggerServer &operator=(const TriggerServer &);
00152 
00153   static int nextNumber;
00154 
00155  public:
00156   TriggerServer(/*const char *oid, */IPCServer* server);
00157 
00158   virtual ~TriggerServer();
00159 
00160   virtual void print (Sct_SctApiStatus *_status);
00161   virtual void singleL1A (Sct_SctApiStatus *_status);
00162   virtual void doubleL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00163   virtual void calL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00164   virtual void pulseL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00165   virtual void softL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00166   virtual void softCalL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay, ilu_ShortCardinal delay2);
00167   virtual void softPulseL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay, ilu_ShortCardinal delay2);
00168   virtual void bcL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00169   virtual void bcCalL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay, ilu_ShortCardinal delay2);
00170   virtual void bcPulseL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay, ilu_ShortCardinal delay2);
00171   virtual void setCommIncr (Sct_SctApiStatus *_status, ilu_ShortCardinal command, ilu_ShortCardinal incr);
00172   virtual void getCommIncr (Sct_SctApiStatus *_status, ilu_ShortCardinal * command, ilu_ShortCardinal * incr);
00173 
00174   virtual void destroy(ipcStatus *_status);
00175 
00176  protected:
00177   static std::string getServerName();
00178 
00179   SctApi::Trigger &worker();
00180 };
00181 

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