SourceCode/Bond/Servo/CLoadPort.h
@@ -1,5 +1,6 @@
#pragma once
#include "CEquipment.h"
#include "ServoCommo.h"
namespace SERVO {
@@ -15,49 +16,90 @@
      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 BOOL glassWillArrive(CGlass* pGlass);
      virtual void onReceiveLBData(const char* pszData, size_t size);
      virtual int onStepEvent(CStep* pStep, int code);
   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 getScanCassetteMap();
      short getDownloadCassetteMap();
   public:
      short getNextCassetteSequenceNo();
      void setIndex(unsigned int index);
      unsigned int getIndex();
      BOOL isEnable();
      int getPortType();
      int getPortMode();
      int getCessetteType();
      int getTransferMode();
      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 generateGlassList(short map);
      int testGenerateGlassListFromConfig(const SERVO::PortConfig& config);
   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& 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:
      virtual int outputGlass(int port);
      int sendCassetteCtrlCmd(short cmd,
         short* jobExistence,
         int jobExistenceSize,
         short slotProcess,
         short jopCount,
         CJobDataA* pJobDataA);
         CJobDataA* pJobDataA,
         ONWRITED onWritedBlock);
      CStep* getCassetteCtrlCmdStep();
      void setCompareMapsBeforeProceeding(BOOL bCompare);
   private:
      int decodePortStatusReport(CStep* pStep, const char* pszData, size_t size);
   private:
      unsigned int m_nIndex;
      int m_nType;
      int m_nMode;
      int m_nCassetteType;
      int m_nTransferMode;
      PortType m_portType;
      PortMode m_portMode;
      CassetteType m_cassetteType;
      TransferMode m_transferMode;
      BOOL m_bEnable;
      BOOL m_bAutoChangeEnable;
      CPortStatusReport m_portStatusReport;
      int m_nNextCassetteSequenceNo;
      // 在开始工艺前是否先需要先比较map
      BOOL m_isCompareMapsBeforeProceeding;
   };
}