#pragma once namespace BEQ { enum class EQ_STATE { IDLE = 0, RUN, DOWN, MAINTENANCE, MCHG, E_TIME }; enum class STEP_STATE { IDLE = 0, MATERIAL_RECEIVED, MATERIAL_REMOVEED, PROCESSING_STARTED, PROCESSING, PROCESSING_COMPLETED }; class IUnit { public: virtual int getName(char* pszBuffer, int nMaxCount) = 0; virtual void setState(EQ_STATE state) = 0; virtual EQ_STATE getState() = 0; virtual void setDoorCount(int count) = 0; virtual void setDoorState(int state) = 0; virtual int getDoorState() = 0; virtual void setLayerCount(int count) = 0; virtual int getLayerCount() = 0; virtual void setIndex(int index) = 0; virtual int getIndex() = 0; virtual void setAlarm(int code, int level, const char* pszText) = 0; virtual int getAlarmCode() = 0; virtual int getAlarmLevel() = 0; virtual void stepIdle() = 0; virtual void stepMaterialReceived(const char* pszID) = 0; virtual void stepMaterialRemoved(const char* pszID) = 0; virtual void stepProcessingStarted(const char* pszID) = 0; virtual void stepProcessing(const char* pszID, int nSvTime, int nTvTime) = 0; virtual void stepProcessingCompleted(const char* pszID) = 0; virtual STEP_STATE getStepState() = 0; virtual void setDataTime(unsigned long long time) = 0; virtual void setDataTimeAndResetData(unsigned long long time) = 0; virtual unsigned long long getDataTime() = 0; virtual void addData(const char* pszName, const char* pszDataText, bool bComplete) = 0; virtual void addRecipe(int id, const char* pszName, bool bComplete) = 0; virtual int reqLoad(int layer) = 0; virtual int reqUnload(int layer) = 0; }; }