#ifndef __OTX_FLASH_MCDCMDBOARDCAST_HPP__
#define __OTX_FLASH_MCDCMDBOARDCAST_HPP__

#include <iostream>
#include "otx/OTXBasicTypes.hpp"
#include "asam/mcd/MCDEventHandler.hpp"
#include "binary.h"
#include <mutex>
#define MAX_FLASH_FRAME_SIZE 0xFFFFFF00
namespace otx {
	namespace flash {
		class MCDCmdBoardcast
		{
		private:
			MCDCmdBoardcast();

		public:
			~MCDCmdBoardcast();
			static MCDCmdBoardcast* getInstance();
		private:
			static MCDCmdBoardcast* instance;
			asam::mcd::MCDSystem* mcdSystem;
			asam::mcd::MCDProject* mcdProject;
			asam::d::MCDInterface* mInterface;
			static asam::mcd::MCDLogicalLink* logicalLink;

		public:
			void delay(int ms);
			CBinary sendCommand(CBinary dSend);
			void EnterProgramMode();
		};

	}
}

#endif // __OTX_FLASH_MCDCMDBOARDCAST_HPP__