QBSChannel.hh

00001 /*
00002  * APOLLO: A complete DAQ and Online Data Analysis Framework for Cuore
00003  * 
00004  * A.G. created 12/07/06
00005  *
00006  * $Id: QBSChannel.hh 404 2006-11-10 23:40:40Z giacher $
00007  * $Revision: 404 $
00008  *
00009  * Class QBSChannel: Bessel Channel class
00010  *
00011  */
00012 
00013 
00014 #ifndef _QBS_CHANNEL_HH_
00015 #define _QBS_CHANNEL_HH_
00016 
00017 
00018 // C/C++ Includes
00019 #include <sstream>
00020 
00021 // Apollo Includes
00022 #include "QCuore.hh"
00023 #include "QNamed.hh"
00024 #include "QId.hh"
00025 
00026 // Hardware Includes
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    // ctor 
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    // dtor
00042    virtual ~QBSChannel() {}
00043 
00044 
00045    // FIXME: All Get/Set Methods return "false" if no error occurred 
00046    //        "true" otherwise.
00047     
00048    // Bessel Setter/Getter
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    // Bessel Register Global Setter/Getter
00063    bool SetRegister(char  Value);
00064    bool GetRegister(char& Value);
00065   
00066    // Get Used Interface
00067    inline QEleBaseInterface* GetInterface() {return fFace;}
00068 
00069 protected:
00070 
00071    // Write Register
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    // Read Register
00078    virtual bool ReadRegister (size_t Reg, char& Value);
00079    inline  bool ReadRegister(char& Value) {return ReadRegister(0,Value);}
00080 
00081 private:
00082 
00083    // Pointer to Interface
00084    QEleBaseInterface* fFace;
00085     
00086    // String Stream for perfome message
00087    std::ostringstream fMsgString;
00088   
00089 };
00090 
00091 #endif // _QBS_CHANNEL_HH_

Generated on Tue Nov 16 10:49:54 2010 for CUORE Software by  doxygen 1.5.6