fdhwlib
2.0.25
|
00001 /*************************************************************************** 00002 FEevent.h - description 00003 00004 begin : Mon Jul 3 2000 00005 copyright : (C) 2000 by Andreas Kopmann 00006 email : kopmann@hpe.fzk.de 00007 ***************************************************************************/ 00008 00009 00010 #ifndef _INC_FEEVENT_392AB6F001FD_INCLUDED 00011 #define _INC_FEEVENT_392AB6F001FD_INCLUDED 00012 00013 #include <Hw/Subrack.h> 00014 00015 #include <FE/FEdef.h> 00016 00017 #include <Hw/SltDef.h> 00018 #include <Hw/FltDef.h> 00019 00020 #include <FE/febaseevent.h> 00021 00022 00023 class FEtimeStamp; 00024 class FEpageStatus; 00025 00065 //##ModelId=399121FC02A2 00066 class FEevent : public FEbaseEvent { 00067 public: 00068 FEevent(Subrack *s); 00069 00094 void read(int page, unsigned long *data); 00095 00102 void read(int page, int start, unsigned long *data); 00103 00111 void readMultiplicity(int page, unsigned char *data); 00112 00119 void readMultiplicity(int page, int start, unsigned char *data); 00120 00121 00125 int getActualPage(); 00126 00132 int getNextPage(); 00133 00134 using FEbaseEvent::isInUse; 00135 00139 bool isInUse(int page); 00140 00145 void isInUse(FEpageStatus &status); 00146 00157 void isInUse(unsigned long *status); 00158 00159 #if defined (SLT_VER) && (SLT_VER >= 300) 00160 #else 00161 unsigned long isInUse(); 00162 #endif 00163 00165 void setPageFree(int page); 00166 00179 void setPageInUse(int page); 00180 00183 unsigned long getTimeStampHigh(int page); 00184 00187 unsigned long getTimeStampLow(int page); 00188 00189 using FEbaseEvent::getTimeStamp; 00190 00209 void getTimeStamp(int page, unsigned long *sec, 00210 int *subSec1, int *subSec2, int *imgAddr, 00211 int *evtAddr, int *trigger=0); 00212 00217 void getTimeStamp(int page, FEtimeStamp *timeStamp); 00218 00219 00223 unsigned long getLastTriggerTimeStampHigh(int page); 00224 00227 unsigned long getLastTriggerTimeStampLow(int page); 00228 00257 int getTriggerSource(); 00258 00260 void setTriggerSource(int source); 00261 00271 void enableNeighborTrig(); 00272 00282 void disableNeighborTrig(); 00283 00294 bool isEnabledNeighborTrig(); 00295 00305 void forceTrigger(); 00306 00307 #if defined (SLT_VER) && (SLT_VER >= 110) 00308 void enableLeftNeighborTrig(); 00309 void enableRightNeighborTrig(); 00310 void disableLeftNeigborTrig(); 00311 void disableRightNeighborTrig(); 00312 bool isEnabledLeftNeigborTrig(); 00313 bool isEnabledRightNeighborTrig(); 00314 #endif 00315 00323 int getNextPageDelay(); 00324 00327 void setNextPageDelay(int delay); 00328 00329 00337 int getCoincidenceTime(); 00338 00340 void setCoincidenceTime(int time); 00341 00345 int getLengthOfBoxcar(int col=0, int fpga=1); 00346 00347 00353 int waitForNextPage(); 00354 00355 void disableNextPage(); 00356 00357 void enableNextPage(); 00358 00359 bool isEnabledNextPage(); 00360 00367 void waitForPageErr(); 00368 00369 void disablePageErr(); 00370 00371 void enablePageErr(); 00372 00373 bool isEnabledPageErr(); 00374 00375 private: 00376 00377 Subrack *s; 00378 00379 }; 00380 00381 #endif /* _INC_FEEVENT_392AB6F001FD_INCLUDED */ 00382 00383