#pragma once #include "CEquipment.h" namespace SERVO { class CLoadPort : public CEquipment { public: CLoadPort(); virtual ~CLoadPort(); public: virtual const char* getClassName(); virtual void init(); virtual void term(); virtual void initPins(); virtual void initSteps(); virtual void onTimer(UINT nTimerid); virtual void serialize(CArchive& ar); virtual void getAttributeVector(CAttributeVector& attrubutes); virtual int recvIntent(CPin* pPin, CIntent* pIntent); virtual BOOL glassWillArrive(CGlass* pGlass); virtual void onReceiveLBData(const char* pszData, size_t size); virtual int onStepEvent(CStep* pStep, int code); public: void setIndex(unsigned int index); unsigned int getIndex(); BOOL isEnable(); int getPortType(); int getPortMode(); int getCessetteType(); int getTransferMode(); BOOL isAutoChange(); public: static std::string& getPortTypeDescription(int portType, std::string& strDescription); static std::string& getPortModeDescription(int portMode, std::string& strDescription); static std::string& getPortCassetteTypeDescription(int casseteType, std::string& strDescription); static std::string& getPortTransferModeDescription(int mode, std::string& strDescription); static std::string& getEnableModeDescription(int mode, std::string& strDescription); public: virtual int outputGlass(int port); int sendCassetteCtrlCmd(short cmd, short* jobExistence, int jobExistenceSize, short slotProcess, short jopCount, CJobDataA* pJobDataA); CStep* getCassetteCtrlCmdStep(); private: unsigned int m_nIndex; int m_nType; int m_nMode; int m_nCassetteType; int m_nTransferMode; BOOL m_bEnable; BOOL m_bAutoChangeEnable; }; }