#pragma once #include "Component.h" #include #include #include "Alarm.h" class CLoadMonitor : public CComponent { public: CLoadMonitor(); ~CLoadMonitor(); public: virtual std::string& getClassName(); virtual void onData(int id, const void* pData, int size); virtual void onRecvBroadcast(void* pSender, CIntent* pIntent); virtual void init(); virtual void term(); void setBeginAddr(int nAddr); virtual void OnTimer(UINT nTimerid); void ReqNotReady(int layer); void ReqLoad(int layer); void ReqUnload(int layer); int loadReady(const char* pszMaterielId, const char* pszRecipeId); DWORD WaitForGetRunRecipeResult(int timeout, int& result); unsigned RunRecipeThreadFunction(); virtual void Serialize(CArchive& ar); private: void AddAlarm(CAlarm* pAlarm); private: int m_nBeginAddr; private: std::map m_mapAlarmText; int m_nLastId; int m_nLastLevel; std::list m_alarms; HANDLE m_hEventRunRecipeResult; BOOL m_bWaitingRecipeResult; int m_nRunRecipeResult; BOOL m_bRunRecipeWorking; HANDLE m_hRunRecipeWorkEvent; HANDLE m_hRunRecipeWorkThreadHandle; unsigned m_nRunRecipeWorkThrdaddr; };