#ifndef MonitorCommander_HH_ #define MonitorCommander_HH_ #include namespace T2KDAQ { class TFBPacketHandler; // class ::std::ostream; class MonitorCommander { public: MonitorCommander(); virtual ~MonitorCommander(); void ResetBuffer(); void AddRead(unsigned short aSlaveAddr, bool aWordXfer); void AddRead(unsigned short aSlaveAddr, unsigned short aIntAddr, bool aWordXfer); void AddWrite(unsigned short aSlaveAddr, unsigned short aDatum, bool aWordXfer); void AddWrite(unsigned short aSlaveAddr, unsigned short aIntAddr, unsigned short aDatum, bool aWordXfer); void AddPause(unsigned short aLen); unsigned short GetFillLevel()const; unsigned short GetCommandCount()const; unsigned short GetDataPacketSize()const; void GetPacket(TFBPacketHandler & aPkt)const; void MakeSimScript(std::ostream & aOs); void MakeSimScript(const std::string & aFileName); friend std::ostream & operator<<(std::ostream & aOs, const MonitorCommander & aMC); private: MonitorCommander(const MonitorCommander &); MonitorCommander & operator=(const MonitorCommander &); void PrintBinary(std::ostream & aOs, unsigned short aDatum); private: unsigned short mBuf[1024]; unsigned short mFillLevel; unsigned short mCmdCount; unsigned short mReturnPktSize; }; std::ostream & operator<<(std::ostream & aOs, const MonitorCommander & aMC); }//~namespace T2KDAQ #endif//~MonitorCommander_HH_