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

SctApiServer.h

00001 #include <map>
00002 
00003 #include <boost/shared_ptr.hpp>
00004 
00005 #include <ipc/object.h>
00006 #include <is/isinfo.h>
00007 #include <mrs/message.h>
00008 
00009 namespace SctApi {
00010   class SctApi;
00011   class Trigger;
00012   class TriggerImpl;
00013   class Scan;
00014   class ScanDefImpl;
00015 }
00016 
00017 #include "Sct_SctApi.hh"
00018 
00023 extern std::auto_ptr<IPCServer> ipcServer; 
00024 
00025 class ScanServer;
00026 class TriggerServer;
00027 
00031 class SctApiServer : public IPCObject, public virtual Sct_SctApi_T_SctApi {
00032  public:
00033 
00034   SctApiServer(SctApi::SctApi& api, const char* oid, IPCServer* server);
00035   virtual ~SctApiServer();      // destructor
00036 
00037  // methods
00038 
00039   virtual void initialiseAll (Sct_SctApiStatus *_status, ilu_Cardinal runNumber);
00040   virtual void shutdownAll (Sct_SctApiStatus *_status);
00041   virtual void status (Sct_SctApiStatus *_status);
00042   virtual void setRunNumber (Sct_SctApiStatus *_status, ilu_Cardinal newRun);
00043   virtual void setScanNumber (Sct_SctApiStatus *_status, ilu_Cardinal newScan);
00044   virtual ilu_Cardinal getRunNumber (Sct_SctApiStatus *_status);
00045   virtual ilu_Cardinal getScanNumber (Sct_SctApiStatus *_status);
00046   virtual void unsetDebugOption (Sct_SctApiStatus *_status, ilu_T_CString opt);
00047   virtual void setDebugOption (Sct_SctApiStatus *_status, ilu_T_CString opt);
00048   virtual Sct_SctApi_T_DefectList listEnabledDebugOptions (Sct_SctApiStatus *_status);
00049   virtual Sct_SctApi_T_DefectList listDebugOptions (Sct_SctApiStatus *_status);
00050   virtual void standardRegisterDump (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00051   virtual void standardRegisterDumpAll (Sct_SctApiStatus *_status);
00052   virtual sctConf_T_ModuleList getModuleList (Sct_SctApiStatus *_status);
00053   virtual ilu_Boolean isRODPresent (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00054   virtual void awaitResponse (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00055   virtual Sct_SctApi_T_DataBlock getResponse (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00056   virtual void configureBOC (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00057   virtual Sct_SctApi_T_BOCMonitorSequence getBOCMonitorArray (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00058   virtual void flashLED (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_ShortCardinal slaveNumber, ilu_Cardinal period, ilu_Cardinal flashes);
00059   virtual void echo (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, Sct_SctApi_T_DataBlock data);
00060   virtual void createDebugPrimList (Sct_SctApiStatus *_status);
00061   virtual void addDebugPrimList (Sct_SctApiStatus *_status, ilu_Integer index, ilu_Integer id, ilu_Integer version, Sct_SctApi_T_DataBlock body);
00062   virtual void sendDebugPrimList (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00063   virtual void sendDebugSlavePrimList (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal slave, ilu_Boolean await, ilu_Boolean response);
00064   virtual void loadConfiguration (Sct_SctApiStatus *_status, ilu_T_CString filename);
00065   virtual void storeModuleConfigurations (Sct_SctApiStatus *_status);
00066   virtual void configureAllModules (Sct_SctApiStatus *_status);
00067   virtual sctConf_T_ABCDModule * retrieveModule (Sct_SctApiStatus *_status, ilu_Cardinal mid);
00068   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);
00069   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);
00070   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 dspNumber);
00071   virtual ilu_Cardinal dspSingleRead (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal dspAddr, ilu_Integer dspNumber);
00072   virtual void dspSingleWrite (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal dspAddr, ilu_Cardinal val, ilu_Integer dspNumber);
00073   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);
00074   virtual ilu_Cardinal findModuleSerial (Sct_SctApiStatus *_status, ilu_T_CString sn);
00075   virtual ilu_T_CString convertToString (Sct_SctApiStatus *_status, ilu_Cardinal mid);
00076   virtual ilu_Cardinal findModule (Sct_SctApiStatus *_status, ilu_ShortCardinal mur, ilu_ShortCardinal number);
00077   virtual ilu_Cardinal findModuleRod (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal channel);
00078   virtual ilu_Cardinal findBarrelModule (Sct_SctApiStatus *_status, ilu_Cardinal barrel, ilu_Cardinal row, ilu_ShortInteger number);
00079   virtual void convertToBarrelModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal * barrel, ilu_Cardinal * row, ilu_ShortInteger * number);
00080   virtual ilu_Cardinal findEndcapModule (Sct_SctApiStatus *_status, ilu_Integer disk, ilu_Integer ring, ilu_Integer number);
00081   virtual void convertToEndcapModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Integer * disk, ilu_Cardinal * ring, ilu_Cardinal * number);
00082   virtual void getABCDModules (Sct_SctApiStatus *_status, Sct_SctApi_T_BankType bank);
00083   virtual void getABCDModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, Sct_SctApi_T_BankType bank);
00084   virtual sctConf_T_ABCDModule * getABCDModuleRaw (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal slot, Sct_SctApi_T_BankType bank);
00085   virtual void setABCDModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, Sct_SctApi_T_BankType bank);
00086   virtual void setABCDModules (Sct_SctApiStatus *_status, Sct_SctApi_T_BankType bank);
00087   virtual void sendABCDModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, Sct_SctApi_T_BankType bank, ilu_Cardinal type);
00088   virtual void sendABCDModules (Sct_SctApiStatus *_status, Sct_SctApi_T_BankType bank);
00089   virtual void modifyABCDMask (Sct_SctApiStatus *_status, ilu_Cardinal mid, Sct_SctApi_T_DataBlock mask);
00090   virtual void modifyABCDTrims (Sct_SctApiStatus *_status, ilu_Cardinal mid, Sct_SctApi_T_CharBlock trims);
00091   virtual void modifyABCDRC (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal chip, ilu_ShortCardinal index, ilu_Real p0, ilu_Real p1, ilu_Real p2);
00092   virtual void modifyABCDVar (Sct_SctApiStatus *_status, ilu_Cardinal typ, ilu_Real var);
00093   virtual void modifyABCDModuleVar (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal typ, ilu_Real var);
00094   virtual void modifyABCDChipVar (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal chip, ilu_Cardinal typ, ilu_Real var);
00095   virtual void modifyABCDVarROD (Sct_SctApiStatus *_status, ilu_Cardinal typ, ilu_Real var, Sct_SctApi_T_BankType bank);
00096   virtual void modifyABCDModuleVarROD (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Cardinal typ, ilu_Real var, Sct_SctApi_T_BankType bank);
00097   virtual void modifyBOCParam (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal channel, ilu_Cardinal type, ilu_Cardinal val);
00098   virtual void lasersOff (Sct_SctApiStatus *_status);
00099   virtual void timSetFrequency (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Real trigFreq, ilu_Real rstFreq);
00100   virtual void freeTriggers (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate);
00101   virtual void stopTriggers (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate);
00102   virtual void timL1A (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate);
00103   virtual void timCalL1A (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_ShortInteger delay);
00104   virtual ilu_ShortInteger timReadRegister (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_ShortInteger value);
00105   virtual void timWriteRegister (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_ShortInteger reg, ilu_ShortInteger value);
00106   virtual void sendTimTrigger (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, class Sct_SctApi_T_Trigger * trig);
00107   virtual void sendTrigger (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, class Sct_SctApi_T_Trigger * trig);
00108   virtual void doScan (Sct_SctApiStatus *_status, class Sct_SctApi_T_Scan * thisScan);
00109   virtual void doRawScan (Sct_SctApiStatus *_status, class Sct_SctApi_T_Scan * thisScan, ilu_Integer delay, ilu_Integer width, ilu_Boolean configure, ilu_Boolean clockByTwo);
00110   virtual void printBOCSetup (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00111   virtual Sct_SctApi_T_BOCChannelList currentBOCSetup (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00112   virtual sctConf_T_BOCGlobalConfig * currentBOCRegisters (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00113   virtual void printABCDModule (Sct_SctApiStatus *_status, ilu_Cardinal mid);
00114   virtual void printABCDRodModule (Sct_SctApiStatus *_status, ilu_Cardinal mid, Sct_SctApi_T_BankType bank);
00115   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);
00116   virtual void rawData (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Integer delay, ilu_Integer units, ilu_Boolean setMask);
00117   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);
00118   virtual void sendL1A (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00119   virtual Sct_SctApi_T_CharBlock probe (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00120   virtual Sct_SctApi_T_CharBlock probeHarness (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal harness);
00121   virtual Sct_SctApi_T_CharBlock probeWithTrigger (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, class Sct_SctApi_T_Trigger * trig);
00122   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);
00123   virtual Sct_SctApi_T_CharMatrix probeScanHarnessWithTrigger (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, class Sct_SctApi_T_Scan * trig, ilu_Cardinal harness);
00124   virtual ilu_Boolean checkAllModulesProbe (Sct_SctApiStatus *_status, ilu_T_CString chars);
00125   virtual Sct_SctApi_T_AutoResultList autoConfigureScan (Sct_SctApiStatus *_status);
00126   virtual ilu_Cardinal getRodSlot (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00127   virtual void testLinkOutSelect (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal link);
00128   virtual ilu_Cardinal testLinkOutRetrieve (Sct_SctApiStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00129   virtual void requestHardReset (Sct_SctApiStatus *_status, ilu_Cardinal mid);
00130   virtual void requestIVCurve (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_ShortReal start, ilu_ShortReal stop, ilu_ShortReal step, ilu_ShortCardinal delay, ilu_ShortReal currentLim);
00131   virtual void setSelect (Sct_SctApiStatus *_status, ilu_Cardinal mid, ilu_Boolean value);
00132   virtual void setSelectAllInCrate (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Boolean value);
00133   virtual void changeRunState (Sct_SctApiStatus *_status, ilu_Integer state);
00134   virtual void ddcSetSingleTimeout (Sct_SctApiStatus *_status, ilu_ShortInteger timeout);
00135   virtual ilu_ShortInteger ddcGetSingleTimeout (Sct_SctApiStatus *_status);
00136   virtual void ddcSetMultipleTimeout (Sct_SctApiStatus *_status, ilu_ShortInteger timeout);
00137   virtual ilu_ShortInteger ddcGetMultipleTimeout (Sct_SctApiStatus *_status);
00138   virtual void ddcChangeState (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Integer channel, ilu_ShortInteger state);
00139   virtual void ddcChangeStateAll (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_ShortInteger state);
00140   virtual void ddcLoadConfiguration (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_ShortInteger state);
00141   virtual void ddcHardReset (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Integer channel);
00142   virtual void ddcHardResetAll (Sct_SctApiStatus *_status, ilu_Integer crate);
00143   virtual ilu_Cardinal ddcGetChannelParameterInt (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Integer channel, ilu_T_CString name);
00144   virtual ilu_ShortReal ddcGetChannelParameterFloat (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Integer channel, ilu_T_CString name);
00145   virtual ilu_T_CString ddcGetChannelParameterString (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Integer channel, ilu_T_CString name);
00146   virtual ilu_Cardinal ddcGetCardParameterInt (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Integer card, ilu_T_CString name);
00147   virtual ilu_ShortReal ddcGetCardParameterFloat (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Integer card, ilu_T_CString name);
00148   virtual ilu_T_CString ddcGetCardParameterString (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_Integer card, ilu_T_CString name);
00149   virtual ilu_Cardinal ddcGetCrateParameterInt (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_T_CString name);
00150   virtual ilu_ShortReal ddcGetCrateParameterFloat (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_T_CString name);
00151   virtual ilu_T_CString ddcGetCrateParameterString (Sct_SctApiStatus *_status, ilu_Integer crate, ilu_T_CString name);
00152   virtual void ddcGetCrateParameters (Sct_SctApiStatus *_status, ilu_Integer crate, Sct_SctApi_T_NameList names, Sct_SctApi_T_NameValueList nameValues);
00153   virtual class Sct_SctApi_T_Scan * createScan (Sct_SctApiStatus *_status);
00154   virtual class Sct_SctApi_T_Scan * getDefaultScan (Sct_SctApiStatus *_status);
00155   virtual class Sct_SctApi_T_Trigger * createTrigger (Sct_SctApiStatus *_status);
00156   virtual class Sct_SctApi_T_Trigger * getDefaultTrigger (Sct_SctApiStatus *_status);
00157   virtual Sct_SctApi_T_ScanList knownScans (Sct_SctApiStatus *_status);
00158 
00159   std::list<Sct_SctApi_T_Scan *> scans;
00160 
00161   ScanServer *defaultScan;
00162   TriggerServer *defaultTrigger;
00163 
00164   static SctApiServer *singleton;
00165 
00166  protected:
00167   SctApi::SctApi &worker();
00168 
00169   MRSStream mrsStream;
00170   ISInfoDictionary isDict;
00171   
00172   ilu_ShortInteger ddcSingleTimeout;
00173   ilu_ShortInteger ddcMultipleTimeout;
00174 
00175  private:
00176   SctApi::SctApi& api;
00177 };
00178 
00179 // ILU wrapper for SctApi::Scan class
00180 class ScanServer : public IPCObject, public virtual Sct_SctApi_T_Scan {
00181   ScanServer(const ScanServer &);
00182   ScanServer &operator=(const ScanServer &);
00183 
00184   static int nextNumber;
00185 
00186  public:
00187   ScanServer(IPCServer* server);
00188 
00189   ScanServer(IPCServer* server, const ScanServer &copy);
00190 
00191   virtual ~ScanServer();
00192 
00193   virtual void print (Sct_SctApiStatus *_status);
00194   virtual void configure (Sct_SctApiStatus *_status, ilu_ShortCardinal type, ilu_Real start, ilu_Real stop, ilu_Real step);
00195   virtual void configure2 (Sct_SctApiStatus *_status, ilu_ShortCardinal type, ilu_Real start, ilu_Real stop, ilu_Real step);
00196   virtual class Sct_SctApi_T_Trigger * getTrigger1 (Sct_SctApiStatus *_status);
00197   virtual class Sct_SctApi_T_Trigger * getTrigger2 (Sct_SctApiStatus *_status);
00198   virtual void setTrigger1 (Sct_SctApiStatus *_status, class Sct_SctApi_T_Trigger * trig);
00199   virtual void setTrigger2 (Sct_SctApiStatus *_status, class Sct_SctApi_T_Trigger * trig);
00200   virtual void setScanVariable1 (Sct_SctApiStatus *_status, ilu_ShortCardinal var);
00201   virtual void setScanVariable2 (Sct_SctApiStatus *_status, ilu_ShortCardinal var);
00202   virtual ilu_ShortCardinal getScanVariable1 (Sct_SctApiStatus *_status);
00203   virtual ilu_ShortCardinal getScanVariable2 (Sct_SctApiStatus *_status);
00204   virtual void setNTrigs (Sct_SctApiStatus *_status, ilu_Cardinal nTrigs);
00205   virtual ilu_Cardinal getNTrigs (Sct_SctApiStatus *_status);
00206   virtual Sct_SctApi_T_TrigPoints getVariableTrigs (Sct_SctApiStatus *_status);
00207   virtual void setVariableTrigs (Sct_SctApiStatus *_status, Sct_SctApi_T_TrigPoints trigs);
00208   virtual void setVariableTrigRange (Sct_SctApiStatus *_status, ilu_ShortCardinal start, ilu_ShortCardinal end, ilu_Cardinal value);
00209   virtual Sct_SctApi_T_ScanPoints getScanPoints1 (Sct_SctApiStatus *_status);
00210   virtual Sct_SctApi_T_ScanPoints getScanPoints2 (Sct_SctApiStatus *_status);
00211   virtual void setScanPoints1 (Sct_SctApiStatus *_status, Sct_SctApi_T_ScanPoints scans);
00212   virtual void setScanPoints2 (Sct_SctApiStatus *_status, Sct_SctApi_T_ScanPoints scans);
00213   virtual ilu_Integer getOption (Sct_SctApiStatus *_status, Sct_SctApi_T_Scan_ScanOptions opt);
00214   virtual void setOption (Sct_SctApiStatus *_status, Sct_SctApi_T_Scan_ScanOptions opt, ilu_Integer val);
00215   virtual ilu_Cardinal getScanNumber (Sct_SctApiStatus *_status);
00216   virtual ilu_Cardinal getRunNumber (Sct_SctApiStatus *_status);
00217   virtual sctConf_T_ModuleList getModuleList (Sct_SctApiStatus *_status, ilu_Cardinal group);
00218   virtual ilu_Cardinal getNGroups (Sct_SctApiStatus *_status);
00219   virtual ilu_T_CString getStartTime(Sct_SctApiStatus *_status);
00220   virtual ilu_T_CString getEndTime(Sct_SctApiStatus *_status);
00221 
00222   // Override default freeable
00223   virtual void destroy(ipcStatus *_status);
00224 
00225   boost::shared_ptr<SctApi::Scan> m_worker;
00226 
00227  protected:
00228   static std::string getServerName();
00229 
00230  protected:
00231   SctApi::Scan &worker();
00232 };
00233 
00234 // ILU wrapper for SctApi::Trigger class
00235 class TriggerServer : public IPCObject, public virtual Sct_SctApi_T_Trigger {
00236   TriggerServer(const TriggerServer &);
00237   TriggerServer &operator=(const TriggerServer &);
00238 
00239   static int nextNumber;
00240 
00241  public:
00242   TriggerServer(/*const char *oid, */IPCServer* server);
00243 
00244   static TriggerServer *getServer(boost::shared_ptr< ::SctApi::Trigger> trigger);
00245   static void mapServer(boost::shared_ptr< ::SctApi::Trigger> trigger, TriggerServer *server);
00246 
00247   virtual ~TriggerServer();
00248 
00249   virtual void print (Sct_SctApiStatus *_status);
00250   virtual void singleL1A (Sct_SctApiStatus *_status);
00251   virtual void doubleL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00252   virtual void delayedL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00253   virtual void calL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00254   virtual void pulseL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00255   virtual void softL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00256   virtual void softCalL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay, ilu_ShortCardinal delay2);
00257   virtual void softPulseL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay, ilu_ShortCardinal delay2);
00258   virtual void bcL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay);
00259   virtual void bcCalL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay, ilu_ShortCardinal delay2);
00260   virtual void bcPulseL1A (Sct_SctApiStatus *_status, ilu_ShortCardinal delay, ilu_ShortCardinal delay2);
00261   virtual void setCommIncr (Sct_SctApiStatus *_status, ilu_ShortCardinal command, ilu_ShortCardinal incr);
00262   virtual void getCommIncr (Sct_SctApiStatus *_status, ilu_ShortCardinal * command, ilu_ShortCardinal * incr);
00263 
00264   virtual void destroy(ipcStatus *_status);
00265 
00266   boost::shared_ptr<SctApi::TriggerImpl> m_worker;
00267 
00268  protected:
00269   static std::map<boost::shared_ptr< ::SctApi::Trigger>, TriggerServer *> serverMap;
00270 
00271   static std::string getServerName();
00272 
00273   SctApi::Trigger &worker();
00274 };
00275 

Generated on Sat Jul 31 14:18:12 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5