mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-03 03:01:44 +00:00
Adds a RobotPeriodic method to IterativeRobot (#226)
Called globally during each IterativeRobot loop
This commit is contained in:
committed by
Peter Johnson
parent
4fc7daedc9
commit
f271185cbc
@@ -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();
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user