00001 00002 #ifndef _Q_DIGITAL_CONTROLLER_V2_HH_ 00003 #define _Q_DIGITAL_CONTROLLER_V2_HH_ 00004 00005 #include "QBaseDigitalController.hh" 00006 #include "QNiDigitalController.hh" 00007 00008 #include <map> 00009 00026 class QDigitalController_v2: public QBaseDigitalController 00027 { 00028 public: 00030 QDigitalController_v2(); 00031 00033 virtual ~QDigitalController_v2(); 00034 00036 virtual bool Prepare(const unsigned int& pulseId, 00037 const QPulserConfig* cfg); 00038 00040 virtual bool Fire(); 00041 00042 virtual bool SendSynchSignal(); 00043 00044 virtual void ResetPorts(); 00045 private: 00046 00047 QNiDigitalController fNiController; 00048 00050 std::vector<unsigned char> fBytes; 00051 00053 unsigned int fSignalTimeMs; 00054 00064 bool Conf2Bits(unsigned int mem0, 00065 unsigned int mem1, 00066 unsigned int mem2, 00067 unsigned int mem3, 00068 unsigned int id, 00069 std::vector<unsigned char>& bytes); 00070 00076 std::map<unsigned int, unsigned int> fPulseIdMap; 00077 }; 00078 00079 #endif