fdhwlib  2.0.25
/home/kopmann/git-mirror/fdhwlib/fdhwlib/Hw/FltPeriphStatus.h
Go to the documentation of this file.
00001 /***************************************************************************
00002     FltPeriphStatus.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 #if defined (_MSC_VER) && (_MSC_VER >= 1000)
00011 #pragma once
00012 #endif
00013 #ifndef _INC_FLTPERIPHSTATUS_3916F1E100AF_INCLUDED
00014 #define _INC_FLTPERIPHSTATUS_3916F1E100AF_INCLUDED
00015 
00016 #include <Pbus/Pbus.h>
00017 
00018 #include <Hw/FltDef.h>
00019 #include <Hw/fltperiphregister.h>
00020 
00021 
00022 // bit masks for the peripheral FPGA status register
00023 #define PFPGA_RUN_MODE  0x4000  
00024 #define PFPGA_LED_OFF   0x8000
00025 
00026 //class Flt;
00027 
00028 
00029 /*  The tint workaround is intended to be able to change
00030   * the integration time use by the hitrate controller.
00031   * When changing the parameter some temporary variables
00032   * are not cleared properly */
00033 #define USE_TINT_WORKAROUND
00034 
00035 
00036 
00059 //##ModelId=39912200035C
00060 class FltPeriphStatus :public FltPeriphRegister {
00061 public:
00062         //##ModelId=399122000395
00063         FltPeriphStatus(const char * name, int slotID, int regID, int r, int w, int len);
00064 
00075   int writeBitsByName(int no, char *name, unsigned long data);
00076 
00078         bool isOnLed(int fpgaNr);
00079 
00081         //##ModelId=39912200037F
00082         void setLedOn(int fpgaNr);
00083 
00085         void setLedOff(int fpgaNr);
00086 
00091         bool isInRunMode(int fpgaNr);
00092 
00094         void setRunMode(int fpgaNr);
00095 
00097         void setRunMode();
00098 
00099 
00101         void setTestMode(int fpgaNr);
00102 
00104         void setTestMode();
00105 
00121   void broadcastRunMode(int mode);
00122 
00123   void broadcastTestMode(int mode);
00124 
00125 #if defined (FLT_VER) && (FLT_VER >= 210)
00126 
00127   // The pixel trigger mode switches have been
00128   // moved to a separate register
00129 #else
00130 
00139         int getPixelTriggerMode(int fpgaNr, int channel);
00140 
00141         void setPixelTriggerMode(int fpgaNr, int channel, int mode);
00142 #endif
00143 
00144 #if defined (FLT_VER) && (FLT_VER >= 200)
00145 
00148   int getVersion(int fpgaNr);
00149 
00154   int getBoxcarLength(int fpgaNr);
00155 
00160   int getIntegrationTime(int fpgaNr);
00161 
00162 #if defined (FLT_VER) && (FLT_VER >= 210)
00163 
00167   void setIntegrationTime(int fpgaNr, int time);
00168 
00173   void setBoxcarLength(int fpgaNr, int length);
00174 
00175 
00179   int getCoincidenceTime(int fpgaNr);
00180 
00185   void setCoincidenceTime(int fpgaNr, int time);
00186 
00187 
00194   int getMaxThreshDelta(int fpgaNr);
00195 
00202   void setMaxThreshDelta(int fpgaNr, int incr);
00203 
00204 #endif
00205 
00206 #endif
00207 
00208 
00209 };
00210 
00211 #endif /* _INC_FLTPERIPHSTATUS_3916F1E100AF_INCLUDED */
00212