fdhwlib
2.0.25
|
00001 /*************************************************************************** 00002 SltControlReg.h - description 00003 00004 begin : Mon Jul 17 2000 00005 copyright : (C) 2000 by Andreas Kopmann 00006 email : kopmann@hpe.fzk.de 00007 ***************************************************************************/ 00008 00009 00010 #ifndef SLTCONTROLREG_H 00011 #define SLTCONTROLREG_H 00012 00013 #include <Hw/SltDef.h> 00014 #include <Hw/SltRegister.h> 00015 00016 // Sources 00017 #if defined (SLT_VER) && (SLT_VER >= 110) 00018 // Version 1.10 00019 # define SLT_TRIGGER_SW 0x01 // Software 00020 # define SLT_TRIGGER_I_N 0x07 // Internal + Neighbors 00021 # define SLT_TRIGGER_LEFT 0x04 // left neighbor 00022 # define SLT_TRIGGER_RIGHT 0x02 // right neighbor 00023 # define SLT_TRIGGER_INT 0x08 // Internal only 00024 # define SLT_TRIGGER_EXT 0x10 // External 00025 00026 # define SLT_INHIBIT_SW 0x01 // Software 00027 # define SLT_INHIBIT_INT 0x02 // Internal 00028 # define SLT_INHIBIT_EXT 0x04 // External 00029 # define SLT_INHIBIT_ALL 0x07 // Internal + External 00030 # define SLT_INHIBIT_NO 0x01 // None of both (only Software) 00031 00032 // not required any more ! 00033 # define SLT_NXPG_INT 0x00 // Internal 00034 # define SLT_NXPG_EXT 0x01 // External 00035 # define SLT_NXPG_SW 0x01 // Software 00036 00037 # define SLT_TESTPULS_NO 0x00 // None 00038 # define SLT_TESTPULS_EXT 0x02 // External 00039 # define SLT_TESTPULS_SW 0x01 // Software 00040 00041 # define SLT_SECSTROBE_INT 0x00 // Internal SecStrobe Signal 00042 # define SLT_SECSTROBE_EXT 0x01 // Extern 00043 # define SLT_SECSTROBE_SW 0x00 // Software - not available - 00044 # define SLT_SECSTROBE_CAR 0x00 // Carry of Subsecond Counter 00045 // - not available - 00046 00047 // called also watchdog in the slt hardware documentation 00048 # define SLT_LOADADC_INT 0x02 // Start with internal second strobe 00049 # define SLT_LOADADC_EXT 0x00 // External - not available - 00050 # define SLT_LOADADC_SW 0x01 // Software 00051 00052 #else 00053 // Version 1.00 00054 # define SLT_TRIGGER_SW 0 // Software 00055 # define SLT_TRIGGER_I_N 1 // Internal + Neighbors 00056 # define SLT_TRIGGER_INT 2 // Internal only 00057 # define SLT_TRIGGER_EXT 3 // External 00058 00059 # define SLT_INHIBIT_INT 0 // Internal (Software is always allowed) 00060 # define SLT_INHIBIT_EXT 1 // External 00061 # define SLT_INHIBIT_ALL 2 // Internal + External 00062 # define SLT_INHIBIT_NO 3 // None of both (only Software) 00063 00064 # define SLT_NXPG_INT 0 // Internal 00065 # define SLT_NXPG_EXT 1 // External 00066 # define SLT_NXPG_SW 2 // Software 00067 00068 # define SLT_TESTPULS_NO 0 // None 00069 # define SLT_TESTPULS_EXT 1 // External 00070 # define SLT_TESTPULS_SW 2 // Software 00071 00072 # define SLT_SECSTROBE_INT 0 // Internal SecStrobe Signal 00073 # define SLT_SECSTROBE_EXT 1 // Extern 00074 # define SLT_SECSTROBE_SW 2 // Software 00075 # define SLT_SECSTROBE_CAR 3 // Carry of Subsecond Counter 00076 00077 # define SLT_LOADADC_INT 0 // Start with internal second strobe 00078 # define SLT_LOADADC_EXT 1 // External 00079 # define SLT_LOADADC_SW 2 // Software 00080 #endif 00081 00082 00083 // Position of the bit field?! 00084 #if defined (SLT_VER) && (SLT_VER >= 110) 00085 00086 // Version 1.10 00087 #define SLT_TRIGGER_LOW 0 00088 #define SLT_TRIGGER_MASK 0x1f 00089 00090 #define SLT_INHIBIT_LOW 5 00091 #define SLT_INHIBIT_MASK 0x07 00092 00093 // Not required any more! 00094 #define SLT_NXPG_LOW 0 00095 #define SLT_NXPG_MASK 0x00 00096 00097 #define SLT_TESTPULS_LOW 8 00098 #define SLT_TESTPULS_MASK 0x03 00099 00100 #define SLT_SECSTROBE_LOW 10 00101 #define SLT_SECSTROBE_MASK 0x01 00102 00103 #define SLT_LOADADC_LOW 11 00104 #define SLT_LOADADC_MASK 0x03 00105 00106 #else 00107 // Version 1.00 00108 #define SLT_TRIGGER_LOW 0 00109 #define SLT_TRIGGER_MASK 0x0f 00110 00111 #define SLT_INHIBIT_LOW 4 00112 #define SLT_INHIBIT_MASK 0x03 00113 00114 #define SLT_NXPG_LOW 6 00115 #define SLT_NXPG_MASK 0x03 00116 00117 #define SLT_TESTPULS_LOW 8 00118 #define SLT_TESTPULS_MASK 0x03 00119 00120 #define SLT_SECSTROBE_LOW 10 00121 #define SLT_SECSTROBE_MASK 0x03 00122 00123 #define SLT_LOADADC_LOW 12 00124 #define SLT_LOADADC_MASK 0x03 00125 #endif 00126 00127 #define SLT_DEADTIME_LOW 13 00128 #define SLT_DEADTIME_MASK 0x01 00129 00130 00145 //##ModelId=3991507D007A 00146 class SltControlReg : public SltRegister { 00147 public: 00148 //##ModelId=3991507D00B7 00149 SltControlReg(const char *name, int slotID, int regID, int r, int w); 00150 //##ModelId=3991507D00B6 00151 ~SltControlReg(); 00152 00156 //##ModelId=3991507D00B1 00157 unsigned long read(); 00158 00159 00167 int writeBitsByName(char *name, unsigned long data); 00168 00169 //##ModelId=3991507D00AF 00170 void setTriggerSource(int source); 00171 //##ModelId=3991507D00AE 00172 int getTriggerSource(); 00173 //##ModelId=3991507D00AC 00174 void setInhibitSource(int source); 00175 //##ModelId=3991507D00A7 00176 int getInhibitSource(); 00177 //##ModelId=3991507D00A5 00178 void setNextPageSource(int source); 00179 //##ModelId=3991507D00A4 00180 int getNextPageSource(); 00181 //##ModelId=3991507D00A2 00182 void setTestpulsSource(int source); 00183 //##ModelId=3991507D009C 00184 int getTestpulsSource(); 00185 //##ModelId=3991507D009A 00186 void setSecStrobeSource(int source); 00187 //##ModelId=3991507D0099 00188 int getSecStrobeSource(); 00189 //##ModelId=3991507D0092 00190 void setInitADCSource(int source); 00191 //##ModelId=3991507D0091 00192 int getInitADCSource(); 00193 00195 void setDeadTimeSource(int source); 00196 00198 void enableDeadTime(); 00199 00201 void disableDeadTime(); 00202 00204 bool isEnabledDeadTime(); 00205 00206 00207 //##ModelId=3991507D0090 00208 int triggerSource; 00209 //##ModelId=3991507D008F 00210 int inhibitSource; 00211 //##ModelId=3991507D008E 00212 int nextPageSource; 00213 //##ModelId=3991507D0087 00214 int testpulsSource; 00215 //##ModelId=3991507D0086 00216 int secStrobeSource; 00217 //##ModelId=3991507D0085 00218 int initADCSource; 00219 00220 int deadTimeSource; 00221 00222 }; 00223 00224 #endif