Adds a RobotPeriodic method to IterativeRobot (#226)

Called globally during each IterativeRobot loop
This commit is contained in:
Thad House
2016-09-13 20:25:18 -07:00
committed by Peter Johnson
parent 4fc7daedc9
commit f271185cbc
6 changed files with 65 additions and 0 deletions

View File

@@ -62,6 +62,7 @@ class IterativeRobot : public RobotBase {
virtual void TeleopInit();
virtual void TestInit();
virtual void RobotPeriodic();
virtual void DisabledPeriodic();
virtual void AutonomousPeriodic();
virtual void TeleopPeriodic();

View File

@@ -98,6 +98,7 @@ void IterativeRobot::StartCompetition() {
HAL_ObserveUserProgramTeleop();
TeleopPeriodic();
}
RobotPeriodic();
// wait for driver station data so the loop doesn't hog the CPU
m_ds.WaitForData();
}
@@ -160,6 +161,20 @@ void IterativeRobot::TestInit() {
std::printf("Default %s() method... Overload me!\n", __FUNCTION__);
}
/**
* Periodic code for all modes should go here.
*
* Users should override this method for code which will be called periodically
* at a regular rate while the robot is in any mode.
*/
void IterativeRobot::RobotPeriodic() {
static bool firstRun = true;
if (firstRun) {
std::printf("Default %s() method... Overload me!\n", __FUNCTION__);
firstRun = false;
}
}
/**
* Periodic code for disabled mode should go here.
*

View File

@@ -62,6 +62,7 @@ class IterativeRobot : public RobotBase {
virtual void TeleopInit();
virtual void TestInit();
virtual void RobotPeriodic();
virtual void DisabledPeriodic();
virtual void AutonomousPeriodic();
virtual void TeleopPeriodic();

View File

@@ -220,6 +220,20 @@ void IterativeRobot::TestInit() {
std::printf("Default %s() method... Overload me!\n", __FUNCTION__);
}
/**
* Periodic code for all modes should go here.
*
* Users should override this method for code which will be called periodically
* at a regular rate while the robot is in any mode.
*/
void IterativeRobot::RobotPeriodic() {
static bool firstRun = true;
if (firstRun) {
std::printf("Default %s() method... Overload me!\n", __FUNCTION__);
firstRun = false;
}
}
/**
* Periodic code for disabled mode should go here.
*

View File

@@ -135,6 +135,7 @@ public class IterativeRobot extends RobotBase {
teleopPeriodic();
}
}
robotPeriodic();
m_ds.waitForData();
}
}
@@ -204,6 +205,22 @@ public class IterativeRobot extends RobotBase {
}
/* ----------- Overridable periodic code ----------------- */
private boolean m_rpFirstRun = true;
/**
* Periodic code for all robot modes should go here.
*
* <p>Users should override this method for code which will be called periodically at a regular
* rate while the robot is in any mode.
*/
public void robotPeriodic() {
if (m_rpFirstRun) {
System.out.println("Default IterativeRobot.robotPeriodic() method... Overload me!");
m_rpFirstRun = false;
}
Timer.delay(0.001);
}
private boolean m_dpFirstRun = true;

View File

@@ -144,6 +144,7 @@ public class IterativeRobot extends RobotBase {
didTeleopPeriodic = true;
}
}
robotPeriodic();
m_ds.waitForData();
}
}
@@ -209,6 +210,22 @@ public class IterativeRobot extends RobotBase {
}
/* ----------- Overridable periodic code -----------------*/
private boolean m_rpFirstRun = true;
/**
* Periodic code for all robot modes should go here.
*
* <p>Users should override this method for code which will be called periodically at a regular
* rate while the robot is in any mode.
*/
public void robotPeriodic() {
if (m_rpFirstRun) {
System.out.println("Default IterativeRobot.robotPeriodic() method... Overload me!");
m_rpFirstRun = false;
}
Timer.delay(0.001);
}
private boolean dpFirstRun = true;