Add SimulationInit and SimulationPeriodic functions (#2377)

Fixes #2375
This commit is contained in:
Dustin Spicuzza
2020-02-19 02:05:16 -05:00
committed by GitHub
parent 554bda3332
commit 761f79385a
7 changed files with 90 additions and 6 deletions

View File

@@ -1,5 +1,5 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) 2017-2019 FIRST. All Rights Reserved. */
/* Copyright (c) 2017-2020 FIRST. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
@@ -34,6 +34,10 @@ void IterativeRobotBase::RobotInit() {
wpi::outs() << "Default " << __FUNCTION__ << "() method... Override me!\n";
}
void IterativeRobotBase::SimulationInit() {
wpi::outs() << "Default " << __FUNCTION__ << "() method... Override me!\n";
}
void IterativeRobotBase::DisabledInit() {
wpi::outs() << "Default " << __FUNCTION__ << "() method... Override me!\n";
}
@@ -58,6 +62,14 @@ void IterativeRobotBase::RobotPeriodic() {
}
}
void IterativeRobotBase::SimulationPeriodic() {
static bool firstRun = true;
if (firstRun) {
wpi::outs() << "Default " << __FUNCTION__ << "() method... Override me!\n";
firstRun = false;
}
}
void IterativeRobotBase::DisabledPeriodic() {
static bool firstRun = true;
if (firstRun) {
@@ -161,6 +173,12 @@ void IterativeRobotBase::LoopFunc() {
m_watchdog.AddEpoch("LiveWindow::UpdateValues()");
Shuffleboard::Update();
m_watchdog.AddEpoch("Shuffleboard::Update()");
if (IsSimulation()) {
SimulationPeriodic();
m_watchdog.AddEpoch("SimulationPeriodic()");
}
m_watchdog.Disable();
// Warn on loop time overruns