00001 00013 #ifndef _QBASE_INSTRUMENT_HH_ 00014 #define _QBASE_INSTRUMENT_HH_ 00015 00016 00017 #include "GPIBBaseInterface.hh" 00018 #include "QSlowTypes.hh" 00019 #include "QApolloError.hh" 00020 00021 00022 class QBaseInstrument { 00023 public: 00024 00031 QBaseInstrument(GPIBBaseInterface* iFace, QSlowTypes::QSlowDevice_t type); 00032 00036 virtual ~QBaseInstrument(); 00037 00038 00047 virtual const QError& GetDouble(std::string what, double& value,size_t channel)=0; 00048 00049 00058 virtual const QError& SetDouble(std::string what, double value,size_t channel)=0; 00059 00068 virtual const QError& GetBool(std::string what, bool& value,size_t channel)=0; 00069 00078 virtual const QError& SetBool(std::string what, bool value,size_t channel)=0; 00079 00088 virtual const QError& GetString(std::string what, std::string& text,size_t channel)=0; 00089 00090 00094 inline const QSlowTypes::QSlowDevice_t GetInstrumentType() const {return f_type;} 00095 00096 00100 inline GPIBBaseInterface& GetInterface() {return *f_face;} 00101 00102 protected: 00103 00107 inline QApolloError* GetApolloError() const {return f_err;} 00108 00109 private: 00110 00111 GPIBBaseInterface* f_face; 00112 QApolloError* f_err; 00114 QSlowTypes::QSlowDevice_t f_type; 00118 }; 00119 00120 #endif // _QBASE_INSTRUMENT_HH_