QEleBaseInterface.hh

00001 
00010 #ifndef QELE_BASE_INTERFACE_HH
00011 #define QELE_BASE_INTERFACE_HH
00012 
00013 
00014 // C/C++ includes
00015 #include <string>
00016 
00017 // Apollo Includes
00018 #include "QCuore.hh"
00019 #include "QError.hh"
00020 
00021 // FIXME: the following include is temporary
00022 #include "QEleChannel.hh"
00023 
00024 
00025 class QEleBaseInterface 
00026 {
00027 public:
00028 
00029 
00030    // ctor
00031    QEleBaseInterface(QSlowTypes::QSlowEleInterface_t type);
00032   
00033    // dtor
00034    virtual ~QEleBaseInterface() {}  
00035 
00036    // Open connection with electronic
00037    virtual void Open()=0;
00038 
00039    // Close connection with electronic
00040    virtual void Close()=0;
00041 
00042    // Check if connection is opened
00043    virtual const bool IsOpen()const=0;
00044 
00045    // Front-End Write/Read
00046    virtual void WriteFrontEnd(const QEleLib::QEleAddress& Add, unsigned int Reg, char  Data)=0;
00047    virtual void ReadFrontEnd (const QEleLib::QEleAddress& Add, unsigned int Reg, char& Data)=0;
00048   
00049    // Bessel Write/Read
00050    virtual void WriteBessel(const QEleLib::QEleAddress &Add, char  Data)=0;
00051    virtual void ReadBessel (const QEleLib::QEleAddress &Add, char& Data)=0;  
00052   
00053    // Pulser Write/Read
00054    virtual void WritePulserAttenuation(const QEleLib::QEleAddress &Add, char  Attenuation)=0;
00055    virtual void ReadPulserAttenuation (const QEleLib::QEleAddress &Add, char& Attenuation)=0;
00056    virtual void WritePulserStatus(const QEleLib::QEleAddress &Add, char  Time, char  LowDAC, char  Status)=0;
00057    virtual void ReadPulserStatus (const QEleLib::QEleAddress &Add, char& Time, char& LowDAC, char& Status)=0;
00058 
00059    // Error Handling
00060    virtual const bool IsError() const=0;
00061    virtual const std::string& GetErrorString() const=0;
00062    virtual const QError_ GetQErrorCode() const=0;
00063    
00064    // Get Type
00065    inline const QSlowTypes::QSlowEleInterface_t GetType() const {return fType;}
00066 
00067 protected:
00068 
00069   
00070 private:
00071    
00072    QSlowTypes::QSlowEleInterface_t fType; 
00073 
00074 
00075 };
00076 
00077 #endif // QELE_BASE_INTERFACE_HH
00078 

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