QPSChannel.hh
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _QPS_CHANNEL_HH_
00014 #define _QPS_CHANNEL_HH_
00015
00016
00017
00018 #include <sstream>
00019
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 class QPSChannel : public QId, public QNamed, public QEleChannel
00032 {
00033
00034 public:
00035
00036
00037 QPSChannel(QEleBaseInterface* IFace, size_t Id, const std::string& Name,
00038 size_t Ctrl, size_t Slot, size_t Board, size_t Ch);
00039
00040
00041 virtual ~QPSChannel() {}
00042
00043
00044
00045
00046
00047
00048
00049 bool SetRegister(size_t Reg, char Value);
00050 bool GetRegister(size_t Reg, char& Value);
00051
00052
00053
00054
00055 bool SetWidth(size_t Width);
00056 bool GetWidth(size_t& Width);
00057
00058
00059 bool SetAttenuation(size_t Atten);
00060 bool GetAttenuation(size_t& Atten);
00061
00062
00063 bool SetAmplitude(size_t Ampli);
00064 bool GetAmplitude(size_t& Ampli);
00065
00066
00067 bool Fire();
00068
00069
00070
00071 inline QEleBaseInterface* GetInterface() {return fFace;}
00072
00073 protected:
00074
00075
00076 virtual bool WriteRegister(size_t Reg, char Value);
00077 virtual bool ReWriteRegister(size_t Reg);
00078
00079
00080 virtual bool ReadRegister(size_t Reg, char& Value);
00081
00082
00083 private:
00084
00085
00086 QEleBaseInterface* fFace;
00087
00088
00089 std::ostringstream fMsgString;
00090
00091 };
00092
00093 #endif // _QPS_CHANNEL_HH_
00094