MLCSlowController.hh

Go to the documentation of this file.
00001 
00051 #ifndef _M_LC_SLOW_CONTROLLER_HH_
00052 #define _M_LC_SLOW_CONTROLLER_HH_
00053 
00054 
00055 #include "QModule.hh"
00056 
00057 
00058 #include <list>
00059 #include <vector>
00060 
00061 class QLCSlowConfig;
00062 
00063 class MLCSlowController : public QModule {
00064   
00065 public:
00067   MLCSlowController(QSequence* s);
00068   
00070   virtual ~MLCSlowController();
00071 
00079   void Init();
00080   
00087   QEvent* Do(QEvent* ev);
00088   
00090   void Done();
00091 
00092 private:
00094    enum QLCStepMode {
00095       QLC_STEP_LINEAR, 
00097       QLC_STEP_LOG     
00100    };
00101 
00106    std::vector< std::list<unsigned short> > fGroups;
00107    
00108    short fDefaultBias;      
00109    short fDefaultGain;      
00110    bool fDefaultResistance; 
00111    float fExtBiasStepSize;  
00112    float fDefaultExternalBias;
00113    bool fAdjustOffsetAtStartup; 
00116    QLCStepMode fStepMode;
00117 
00125   void GroupChannels(const std::list<unsigned short>& channels);
00126 
00132    void InitConfig(QLCSlowConfig& conf,const bool polarity);
00133    
00138    void GetInitParameters();
00139 
00146    virtual bool PopulateNextConfig();
00147 
00158    bool IncrementExternalBias(int step = 0);
00159 
00161    float GetExtBiasStepSize() const { return fExtBiasStepSize; }
00162    
00164    void SetExtBiasStepSize(const float size) { fExtBiasStepSize = size; }
00165 };
00166 
00167 #endif // _M_LC_SLOW_CONTROLLER_HH_

Generated on Fri Mar 6 13:40:39 2009 for CUORE Software by  doxygen 1.5.1