CustomerBeingFSM.cpp 1.5 KB

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