00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00041 #ifndef __CCAENIO_H
00042 #define __CCAENIO_H
00043
00044 #include <config.h>
00045
00046
00047 #ifndef __VMEMODULE_H
00048 #include <VmeModule.h>
00049 #endif
00050
00051 class CCaenIO : public CVmeModule
00052 {
00053 UInt_t m_nOutputMask;
00055 enum { LENGTH = 256 };
00056
00057 public:
00058
00059
00060 CCaenIO(UInt_t base, int nCrate = 0);
00061 #if defined(HAVE_WIENERVME_INTERFACE) || defined(HAVE_WIENERUSBVME_INTERFACE)
00062 #else
00063 CCaenIO(CVME<UShort_t>& am_CVME);
00064 #endif
00065
00066 CCaenIO(const CCaenIO& aCCaenIO);
00067
00068
00069 virtual ~CCaenIO() { }
00070
00071
00072 CCaenIO& operator=(const CCaenIO& aCCaenIO);
00073
00074
00075 Int_t operator== (const CCaenIO& aCCaenIO);
00076
00077
00078 public:
00079
00080
00081 UShort_t ReadInput(UInt_t input);
00082 UShort_t ReadInputs();
00083
00084
00085 void PulseOutput(UInt_t output);
00086 void SetLevel(UInt_t output);
00087 void ClearLevel(UInt_t output);
00088 void ClearAll();
00089
00090
00091 void SetECL(UShort_t value);
00092 void ClearECL();
00093 #ifdef HAVE_VME_MAPPING
00094 short* getInputPointer();
00095 short* getPulsedOutputPointer();
00096 short* getLatchedOutputPointer();
00097 short* getECLOutputPointer();
00098 #endif
00099 };
00100
00101 #endif