CustomerBeingFSM.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #include "stdafx.h"
  2. #include "CustomerBeingFSM.h"
  3. CCustomerBeingFSM::CCustomerBeingFSM()
  4. {
  5. }
  6. CCustomerBeingFSM::~CCustomerBeingFSM()
  7. {
  8. }
  9. void CCustomerBeingFSM::OnStateTrans( int iSrcState, int iDstState )
  10. {
  11. LOG_TRACE("CustomerBeing from state %s to %s", GetStateName(iSrcState), GetStateName(iDstState));
  12. if (iSrcState != FSM_STATE_INIT && iDstState != FSM_STATE_EXIT) {
  13. SetSysState(iDstState);
  14. }
  15. }
  16. ErrorCodeEnum CCustomerBeingFSM::OnInit()
  17. {
  18. AddStateHooker(this);
  19. return Error_Succeed;
  20. }
  21. ErrorCodeEnum CCustomerBeingFSM::OnExit()
  22. {
  23. return Error_Succeed;
  24. }
  25. ErrorCodeEnum CCustomerBeingFSM::SetSysState( int state )
  26. {
  27. static char *sts[] = {
  28. "N", // None
  29. "A", // Approach
  30. "F", // Front
  31. "L", // Lock
  32. "S", // Sleep
  33. };
  34. return GetEntityBase()->GetFunction()->SetSysVar("CustomerBeing", sts[state]);
  35. }
  36. void CCustomerBeingFSM::s0_on_entry()
  37. {
  38. ScheduleTimer(0, 30000);
  39. }
  40. void CCustomerBeingFSM::s0_on_exit()
  41. {
  42. CancelTimer(0);
  43. }
  44. unsigned int CCustomerBeingFSM::s0_on_event(FSMEvent* event)
  45. {
  46. return 0;
  47. }
  48. void CCustomerBeingFSM::s1_on_entry() {}
  49. void CCustomerBeingFSM::s1_on_exit() {}
  50. unsigned int CCustomerBeingFSM::s1_on_event(FSMEvent* event)
  51. {
  52. return 0;
  53. }
  54. void CCustomerBeingFSM::s2_on_entry() {}
  55. void CCustomerBeingFSM::s2_on_exit() {}
  56. unsigned int CCustomerBeingFSM::s2_on_event(FSMEvent* event)
  57. {
  58. return 0;
  59. }
  60. void CCustomerBeingFSM::s3_on_entry() {}
  61. void CCustomerBeingFSM::s3_on_exit() {}
  62. unsigned int CCustomerBeingFSM::s3_on_event(FSMEvent* event)
  63. {
  64. return 0;
  65. }
  66. void CCustomerBeingFSM::s4_on_entry() {}
  67. void CCustomerBeingFSM::s4_on_exit() {}
  68. unsigned int CCustomerBeingFSM::s4_on_event(FSMEvent* event)
  69. {
  70. return 0;
  71. }