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