QBSChannel.hh
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef _QBS_CHANNEL_HH_
00015 #define _QBS_CHANNEL_HH_
00016
00017
00018
00019 #include <sstream>
00020
00021
00022 #include "QCuore.hh"
00023 #include "QNamed.hh"
00024 #include "QId.hh"
00025
00026
00027 #include "QEleChannel.hh"
00028 #include "QEleBaseInterface.hh"
00029
00030
00031
00032 class QBSChannel : public QId, public QNamed, public QEleChannel
00033 {
00034
00035 public:
00036
00037
00038 QBSChannel(QEleBaseInterface* IFace, size_t Id, const std::string& Label,
00039 size_t Ctrl, size_t Slot, size_t Board, size_t Ch);
00040
00041
00042 virtual ~QBSChannel() {}
00043
00044
00045
00046
00047
00048
00049 bool SetFilterEnable(bool Status);
00050 bool GetFilterEnable(bool& Status);
00051 bool IsFilterEnabled();
00052
00053 bool SetCutFrequency(size_t CutFreq);
00054 bool GetCutFrequency(size_t& CutFreq);
00055
00056 bool SetPoloZeroDeletion(size_t Time);
00057 bool GetPoloZeroDeletion(size_t& Time);
00058
00059 bool SetTriggerGain(size_t Gain);
00060 bool GetTriggerGain(size_t& Gain);
00061
00062
00063 bool SetRegister(char Value);
00064 bool GetRegister(char& Value);
00065
00066
00067 inline QEleBaseInterface* GetInterface() {return fFace;}
00068
00069 protected:
00070
00071
00072 virtual bool WriteRegister(size_t Reg, char Value);
00073 inline bool WriteRegister(char Value) {return WriteRegister(0,Value);}
00074 virtual bool ReWriteRegister(size_t Reg);
00075 inline bool ReWriteRegister() {return ReWriteRegister(0);}
00076
00077
00078 virtual bool ReadRegister (size_t Reg, char& Value);
00079 inline bool ReadRegister(char& Value) {return ReadRegister(0,Value);}
00080
00081 private:
00082
00083
00084 QEleBaseInterface* fFace;
00085
00086
00087 std::ostringstream fMsgString;
00088
00089 };
00090
00091 #endif // _QBS_CHANNEL_HH_