enhering

Main module, main loop

Sep 8th, 2017
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. void COM::CustomLoop() {
  2.  
  3.   m_nCycleCount++;
  4.  
  5.   switch (m_eCOMState) {
  6.     case COM_INIT:                
  7.       m_eCOMState = Init() ? COM_BUILD_MODULE_CAPACITY_MATRIX : COM_TROUBLESHOOT;
  8.       break;
  9.    
  10.     case COM_BUILD_MODULE_CAPACITY_MATRIX:
  11.       m_eCOMState = BuildModuleCapacityMatrix() ? COM_MANAGE_SENSORS : COM_TROUBLESHOOT;      
  12.       break;
  13.  
  14.     case COM_MANAGE_POWER:
  15.       m_eCOMState = ManagePower() ? COM_MANAGE_SENSORS : COM_ANSWER_UART;
  16.       break;
  17.    
  18.     case COM_MANAGE_SENSORS:
  19.       m_eCOMState = ManageSensors() ? COM_MANAGE_GPSS : COM_TROUBLESHOOT;      
  20.       break;
  21.  
  22.     case COM_MANAGE_GPSS:
  23.       m_eCOMState = ManageGPSs() ? COM_MANAGE_KALMAN : COM_TROUBLESHOOT;
  24.       break;
  25.  
  26.     case COM_MANAGE_KALMAN:
  27.       m_eCOMState = ManageKalman() ? COM_MANAGE_GUIDANCE : COM_TROUBLESHOOT;
  28.       break;
  29.  
  30.     case COM_MANAGE_GUIDANCE:
  31.       m_eCOMState = ManageGuidance() ? COM_MANAGE_NAVIGATION : COM_TROUBLESHOOT;
  32.       break;
  33.  
  34.     case COM_MANAGE_NAVIGATION:
  35.       m_eCOMState = ManageNavigation() ? COM_MANAGE_CONTROL : COM_TROUBLESHOOT;
  36.       break;
  37.  
  38.     case COM_MANAGE_CONTROL:
  39.       m_eCOMState = ManageControl() ? COM_MANAGE_SERVOS : COM_TROUBLESHOOT;
  40.       break;
  41.  
  42.     case COM_MANAGE_SERVOS:
  43.       m_eCOMState = ManageServos() ? COM_ANSWER_UART : COM_TROUBLESHOOT;
  44.       break;
  45.    
  46.     case COM_ANSWER_UART:
  47.       m_eCOMState = AnswerUART() ? COM_VERIFY_FLAGS : COM_TROUBLESHOOT;
  48.       break;
  49.    
  50.     case COM_VERIFY_FLAGS:
  51.       m_eCOMState = COM_EVALUATE_STATUS;
  52.       VerifyFlags();
  53.       break;
  54.    
  55.     case COM_EVALUATE_STATUS:
  56.       m_eCOMState = EvaluateStatus() ? COM_BROADCAST_TELEMETRY : COM_TROUBLESHOOT;
  57.       break;
  58.    
  59.     case COM_BROADCAST_TELEMETRY:
  60.       m_eCOMState = BroadcastTelemetry() ? COM_MANAGE_HEARTBEAT : COM_TROUBLESHOOT;    
  61.       break;
  62.    
  63.     case COM_MANAGE_HEARTBEAT:    
  64.       m_eCOMState = ManageHeartbeat() ? COM_INIT : COM_TROUBLESHOOT;
  65.       break;
  66.  
  67.     default: m_eCOMState = COM_INIT;
  68.   }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment