QHeaterDecoder.hh
00001 #ifndef _Q_HEATER_DECODER_HH_
00002 #define _Q_HEATER_DECODER_HH_
00003
00004 #include "QCuore.hh"
00005 #include <list>
00006 #include <map>
00007
00008 class QHeaterDecoder
00009 {
00010 public:
00012 static QHeaterDecoder& GetInstance();
00013
00015 virtual ~QHeaterDecoder();
00016
00023 void SetVersion(int version);
00024
00025 bool SetWords(const std::list<unsigned long>& words);
00026
00027 virtual int GetPulseId() const { return fPulseId; }
00028 virtual int GetConfId() const { return fConfId; }
00029 virtual int GetAmplitude() const { return fAmplitude; }
00030 virtual int GetDuration() const { return fDuration; }
00031 virtual int GetAttenuation() const { return fAttenuation; }
00032
00033 private:
00034 int fVersion;
00035
00036 int fPulseId;
00037 int fConfId;
00038 int fAmplitude;
00039 int fDuration;
00040 int fAttenuation;
00041
00047 std::map<unsigned int, unsigned int> fPulseIdMap;
00048 void FillPulsersMap();
00049
00051 QHeaterDecoder();
00052
00053 void Reset();
00054
00055 bool SetWords_v0(const std::list<unsigned long>& words);
00056 bool SetWords_v1(const std::list<unsigned long>& words);
00057 bool SetWords_v2(const std::list<unsigned long>& words);
00058 };
00059
00060 #endif