#pragma once #include "CEquipment.h" #include "ServoCommo.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 initSlots(); virtual void onTimer(UINT nTimerid); virtual void serialize(CArchive& ar); virtual void getAttributeVector(CAttributeVector& attrubutes); virtual int recvIntent(CPin* pPin, CIntent* pIntent); virtual void onReceiveLBData(const char* pszData, size_t size); public: int setPortType(PortType type, ONWRITED onWritedBlock = nullptr); int eablePort(BOOL bEnable, ONWRITED onWritedBlock = nullptr); int setPortMode(PortMode mode, ONWRITED onWritedBlock = nullptr); int setCassetteType(CassetteType type, ONWRITED onWritedBlock = nullptr); int setTransferMode(TransferMode mode, ONWRITED onWritedBlock = nullptr); int eableAutoChange(BOOL bEnable, ONWRITED onWritedBlock = nullptr); void localEanblePort(BOOL bEnable); void localSetPortType(PortType type); void localSetPortMode(PortMode mode); void localSetCessetteType(CassetteType type); void localSetTransferMode(TransferMode mode); void localAutoChangeEnable(BOOL bEnable); short getCassetteMap(); public: short getNextCassetteSequenceNo(); void setIndex(unsigned int index); unsigned int getIndex(); BOOL isEnable(); PortType getPortType(); PortMode getPortMode(); CassetteType getCessetteType(); TransferMode getTransferMode(); BOOL isAutoChange(); int getPortStatus(); int getCassetteSequenceNo(); std::string& getCassetteId(); int getLoadingCassetteType(); int getQTimeFlag(); int getCassetteMappingState(); int getCassetteStatus(); int testGenerateGlassList(MaterialsType type); int testGenerateGlassListFromConfig(const SERVO::PortConfig& config); public: static std::string& getPortTypeDescription(PortType portType, std::string& strDescription); static std::string& getPortModeDescription(PortMode portMode, std::string& strDescription); static std::string& getPortCassetteTypeDescription(CassetteType casseteType, std::string& strDescription); static std::string& getPortTransferModeDescription(TransferMode mode, std::string& strDescription); static std::string& getEnableModeDescription(int mode, std::string& strDescription); static std::string& getPortStatusDescription(int portStatus, std::string& strDescription); static std::string& getLoadingCassetteTypeDescription(int type, std::string& strDescription); static std::string& getQTimeFlagDescription(int flag, std::string& strDescription); static std::string& getCassetteMappingStateDescription(int state, std::string& strDescription); static std::string& getCassetteStatusDescription(int state, std::string& strDescription); public: int sendCassetteCtrlCmd(short cmd, short* jobExistence, int jobExistenceSize, short slotProcess, short jopCount, CJobDataA* pJobDataA, ONWRITED onWritedBlock); CStep* getCassetteCtrlCmdStep(); private: int decodePortStatusReport(CStep* pStep, const char* pszData, size_t size); private: unsigned int m_nIndex; PortType m_portType; PortMode m_portMode; CassetteType m_cassetteType; TransferMode m_transferMode; BOOL m_bEnable; BOOL m_bAutoChangeEnable; CPortStatusReport m_portStatusReport; int m_nNextCassetteSequenceNo; }; }