#pragma once #include "CRightPick.h" #include "CLeftPick.h" #include "CDieBond.h" #include "CDispath.h" class __declspec(dllexport) CDieBondFsm { enum FSM { LeftPick_thread = 0, RightPick_thread, DieBond_thread, Dispath_thread, MAX_FSM }; private: CFsmBase* pFsmArray[MAX_FSM]; static std::mutex m_Mutex; static CDieBondFsm* m_pDieBondFsm; static DWORD WINAPI threadRun(LPVOID pThreadPara); bool m_bIsLoopRunting; //����ѭ�������� public: CDieBondFsm(); static LONG GetInstance(CDieBondFsm** pDieBondFsm); bool GetRunting(); void ExitFsm(); void RunFsm(); void StopFsm(); void pause(bool b); #pragma region ״̬������ӿ� //����ͨ�ýӿ��¼� void send_event(DISPATH_STEP_TYPE msg); //���õ�ǰ�̾���Ϊ���һ�Ź̾��� void SetCurrentPointToEnd(); //���ñ����Զ��̾�������0Ϊ������ void Step_SetBondDieTotal(UINT nBondDieTotal); #pragma endregion };