fdhwlib  2.0.25
/home/kopmann/git-mirror/fdhwlib/fdhwlib/FE/FEevent.h
Go to the documentation of this file.
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