CDispath.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #pragma once
  2. #include "SystemResources.h"
  3. #include "CRightPick.h"
  4. #include "CLeftPick.h"
  5. #include "CDieBond.h"
  6. #include "CStep.h"
  7. #include "CEvent.h"
  8. class __declspec(dllexport) CDispath : public CFsmBase
  9. {
  10. private:
  11. CLASS_INFO;
  12. CRightPick* m_pRightPick;
  13. CLeftPick* m_pLeftPick;
  14. CDieBond* m_pDieBond;
  15. bool m_bIsEndBondPoint = false; //是否为最后一颗固晶点
  16. THREAD_BOND_INFO_STRUCT stBondThread; //固晶线程信息
  17. THREAD_BOND_INFO_STRUCT stLeftThread; //华夫盒侧线程信息
  18. THREAD_BOND_INFO_STRUCT stRightThread; //晶圆台侧线程信息
  19. unsigned int m_nCurrBondDieNum = 1; //当前固晶数量
  20. bool IsBondDone(ATTRIBUTE att);
  21. private:
  22. void SetCurrBondDieNum(unsigned int iNum); //设置当前固晶数量
  23. void AddCurrBondDieNum(); //前固晶数量加1
  24. //自动固晶完成后的处理函数
  25. void AutoBondDoneHandle();
  26. //固完一个晶片时的处理函数
  27. void BondDoneDispathHandle();
  28. //空闲状态
  29. string Idle();
  30. //校准状态
  31. string Calib();
  32. //编程状态
  33. string Programming() { return ""; };
  34. //诊断状态
  35. string Diagnosis() { return ""; }
  36. //自动固晶状态
  37. string AutoBond();
  38. //手动操作状态
  39. string ManualOperation();
  40. void RunStep(DISPATH_STEP_TYPE eStep);
  41. public:
  42. CDispath();
  43. void SetBondDieTotal(unsigned int iNum); //设置剩余固晶数量
  44. void SetCurrentPointToEnd();//设置当前固晶点为最后一颗固晶点
  45. void set_other_fsm(CLeftPick* pLeftPick, CRightPick* pRightPick, CDieBond* pDieBond);
  46. };