mrDarker
2025-06-26 da96e6da0b677c6a4e96308aaecd3d619a8e4db2
SourceCode/Bond/Servo/CEquipment.h
@@ -43,6 +43,8 @@
#define SIGNAL_UPSTREAM_TROUBLE   1
#define SIGNAL_INTERLOCK      2
#define SIGNAL_SEND_ABLE      3
#define SIGNAL_RECEIVE_ABLE      3
   typedef std::function<void(int writeCode, int retCode)> ONWRITEDRET;
   typedef std::function<void(void* pEiuipment, BOOL bAlive)> ONALIVE;
@@ -112,6 +114,7 @@
      CPin* getPin(char* pszName);
      std::vector<CPin*>& CEquipment::getInputPins();
      std::vector<CPin*>& CEquipment::getOutputPins();
      CRecipeList* getRecipeList(int unitNo);
      virtual int recvIntent(CPin* pPin, CIntent* pIntent);
      virtual int fetchedOutJob(CJobDataB* pJobDataB);
      virtual int storedJob(CJobDataB* pJobDataB, short putSlot);
@@ -123,6 +126,7 @@
      virtual int onStoredJob(int port, CJobDataB* pJobDataB);
      virtual int onProcessData(CProcessData* pProcessData);
      virtual int onSendAble();
      virtual int onReceiveAble();
      virtual int onProcessStateChanged(PROCESS_STATE state);
      virtual int getIndexerOperationModeBaseValue();
      bool isAlarmStep(SERVO::CStep* pStep);
@@ -142,12 +146,12 @@
      int setDateTime(short year, short month, short day, short hour, short minute, short second);
      int setDispatchingMode(DISPATCHING_MODE mode, ONWRITED onWritedBlock = nullptr);
      int indexerOperationModeChange(IDNEXER_OPERATION_MODE mode, ONWRITEDRET onWritedRetBlock);
      void printDebugString001();
      // 请求主配方列表
      // unitNo: 0:local; Others:unit No
      int masterRecipeListRequest(short unitNo);
      int masterRecipeListRequest(short unitNo, ONSYNCINGSTATECHANGED block);
      // 请求配方参数
      // masterRecipeId: 主配方id
@@ -163,6 +167,7 @@
      // 获取一个指定物料类型(G1,G2,G1&G2)的空槽位
      CSlot* getAvailableSlotForGlass(MaterialsType type);
      CSlot* getAvailableSlotForGlassExcludeSignal(MaterialsType type);
      // 在指定的槽列表中,获取一个指定物料类型(G1,G2,G1&G2)的空槽位
      CSlot* getAvailableSlotForGlass2(MaterialsType type, const std::vector<int>& candidates);
@@ -202,11 +207,14 @@
      BOOL isLocalAlarm();
      BOOL isAutoRecipeChange();
      BOOL isVCREnable(unsigned int index);
      BOOL isLinkSignalOn(unsigned int path, unsigned int signal);
      BOOL isLinkSignalUpstreamOn(unsigned int path, unsigned int signal);
      BOOL isLinkSignalDownstreamOn(unsigned int path, unsigned int signal);
      // 只在模拟测试时使用的函数,用于模拟信号
      void setLinkSignal(unsigned int path, unsigned int signal, BOOL bOn);
      void setLinkSignalBlock(unsigned int path, BOOL* pSignal);
      void setLinkSignalUpstream(unsigned int path, unsigned int signal, BOOL bOn);
      void setLinkSignalUpstreamBlock(unsigned int path, BOOL* pSignal);
      void setLinkSignalDownstream(unsigned int path, unsigned int signal, BOOL bOn);
      void setLinkSignalDownstreamBlock(unsigned int path, BOOL* pSignal);
   protected:
      inline void Lock() { EnterCriticalSection(&m_criticalSection); }
@@ -249,7 +257,8 @@
      BOOL m_bLocalAlarm;
      BOOL m_bAutoRecipeChange;
      BOOL m_bVCREnable[VCR_MAX];
      BOOL m_bLinkSignal[PATH_MAX][SIGNAL_MAX];
      BOOL m_bLinkSignalToUpstream[PATH_MAX][SIGNAL_MAX];
      BOOL m_bLinkSignalToDownstream[PATH_MAX][SIGNAL_MAX];
   protected:
      CCCLinkIEControl* m_pCclink;