12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #pragma once
- #include "SystemResources.h"
- #include "CRightPick.h"
- #include "CLeftPick.h"
- #include "CDieBond.h"
- #include "CStep.h"
- #include "CEvent.h"
- class __declspec(dllexport) CDispath : public CFsmBase
- {
- private:
- CLASS_INFO;
- CRightPick* m_pRightPick;
- CLeftPick* m_pLeftPick;
- CDieBond* m_pDieBond;
- bool m_bIsEndBondPoint = false; //是否为最后一颗固晶点
- THREAD_BOND_INFO_STRUCT stBondThread; //固晶线程信息
- THREAD_BOND_INFO_STRUCT stLeftThread; //华夫盒侧线程信息
- THREAD_BOND_INFO_STRUCT stRightThread; //晶圆台侧线程信息
- unsigned int m_nCurrBondDieNum = 1; //当前固晶数量
- bool IsBondDone(ATTRIBUTE att);
- private:
- void SetCurrBondDieNum(unsigned int iNum); //设置当前固晶数量
- void AddCurrBondDieNum(); //前固晶数量加1
- //自动固晶完成后的处理函数
- void AutoBondDoneHandle();
- //固完一个晶片时的处理函数
- void BondDoneDispathHandle();
- //空闲状态
- string Idle();
- //校准状态
- string Calib();
- //编程状态
- string Programming() { return ""; };
- //诊断状态
- string Diagnosis() { return ""; }
- //自动固晶状态
- string AutoBond();
- //手动操作状态
- string ManualOperation();
- void RunStep(DISPATH_STEP_TYPE eStep);
- public:
- CDispath();
- void SetBondDieTotal(unsigned int iNum); //设置剩余固晶数量
- void SetCurrentPointToEnd();//设置当前固晶点为最后一颗固晶点
- void set_other_fsm(CLeftPick* pLeftPick, CRightPick* pRightPick, CDieBond* pDieBond);
- };
|