WPILibC++  unspecified
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
IterativeRobotBase.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) FIRST 2017. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in the root directory of */
5 /* the project. */
6 /*----------------------------------------------------------------------------*/
7 
8 #pragma once
9 
10 #include "RobotBase.h"
11 
12 namespace frc {
13 
43 class IterativeRobotBase : public RobotBase {
44  public:
45  virtual void RobotInit();
46  virtual void DisabledInit();
47  virtual void AutonomousInit();
48  virtual void TeleopInit();
49  virtual void TestInit();
50 
51  virtual void RobotPeriodic();
52  virtual void DisabledPeriodic();
53  virtual void AutonomousPeriodic();
54  virtual void TeleopPeriodic();
55  virtual void TestPeriodic();
56 
57  protected:
59  virtual ~IterativeRobotBase() = default;
60 
61  void LoopFunc();
62 
63  private:
64  enum class Mode { kNone, kDisabled, kAutonomous, kTeleop, kTest };
65 
66  Mode m_lastMode = Mode::kNone;
67 };
68 
69 } // namespace frc
virtual void DisabledPeriodic()
Periodic code for disabled mode should go here.
Definition: IterativeRobotBase.cpp:96
virtual void AutonomousPeriodic()
Periodic code for autonomous mode should go here.
Definition: IterativeRobotBase.cpp:111
virtual void DisabledInit()
Initialization code for disabled mode should go here.
Definition: IterativeRobotBase.cpp:41
virtual void RobotInit()
Robot-wide initialization code should go here.
Definition: IterativeRobotBase.cpp:30
virtual void AutonomousInit()
Initialization code for autonomous mode should go here.
Definition: IterativeRobotBase.cpp:51
virtual void TestInit()
Initialization code for test mode should go here.
Definition: IterativeRobotBase.cpp:71
virtual void TeleopInit()
Initialization code for teleop mode should go here.
Definition: IterativeRobotBase.cpp:61
virtual void TestPeriodic()
Periodic code for test mode should go here.
Definition: IterativeRobotBase.cpp:140
Implement a Robot Program framework.
Definition: RobotBase.h:42
virtual void RobotPeriodic()
Periodic code for all modes should go here.
Definition: IterativeRobotBase.cpp:81
virtual void TeleopPeriodic()
Periodic code for teleop mode should go here.
Definition: IterativeRobotBase.cpp:126
IterativeRobotBase implements a specific type of robot program framework, extending the RobotBase cla...
Definition: IterativeRobotBase.h:43