#pragma once #include #include "CEquipment.h" #include "CEFEM.h" #include "CBonder.h" #include "CLoadPort.h" #include "CFliper.h" #include "CAligner.h" #include "CVacuumBake.h" #include "CBakeCooling.h" #include "CCLinkIEControl.h" namespace SERVO { typedef std::function ONEQALIVE; typedef std::function ONEQSTEPEVENT; typedef struct _MasterListener { ONEQALIVE onEqAlive; ONEQALIVE onEqCimStateChanged; ONEQSTEPEVENT onEqStepEvent; } MasterListener; class CMaster { public: CMaster(); ~CMaster(); public: void setListener(MasterListener listener); int init(); int term(); void onTimer(UINT nTimerid); std::list& getEquipmentList(); CEquipment* getEquipment(int id); void setCacheFilepath(const char* pszFilepath); private: int addToEquipmentList(CEquipment* pEquipment); int addLoadPort(int index, StepListener& listener); int addFliper(StepListener& listener); int addVacuumBake(StepListener& listener); int addAligner(StepListener& listener); int addEFEM(StepListener& listener); int addBonder(int index, StepListener& listener); int addBakeCooling(StepListener& listener); void connectEquipments(); int saveCache(); int readCache(); void serialize(CArchive& ar); private: MasterListener m_listener; CCCLinkIEControl m_cclink; std::list m_listEquipment; std::string m_strFilepath; }; }