mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
[wpilib] Change opmodes to purely periodic (#8652)
1. Make the OpMode interface itself periodic; this means the only differences between `OpMode` and `PeriodicOpMode` are the latter's methods to add sideloaded periodic callbacks 2. Make OpModeRobot process callbacks in a similar fashion to TimedRobot and 3. Add some lifecycle functions (discussed below) 4. Pull the callback priority queue from TimedRobot to a new class called `PeriodicPriorityQueue` so that `TimedRobot` and `OpModeRobot` have less duplication 5. Fix a typo in the DriverStationJNI class that causes a memory leak when certain driver station sim calls 6. Port the C++ OpModeRobot tests to Java `OpModeRobot` now possesses some `IterativeRobotBase`-stye lifecycle functions; these functions 1. `robotPeriodic` 2. `simulationInit` and `simulationPeriodic` 3. `disabledInit`, `disabledPeriodic`, and `disabledExit` (note that `simulationInit` and `disabledInit` may be renamed to match wpilibsuite#8719) `OpModeRobot` also now processes `OpMode` changes (by the Driver Station) in its `loopFunc` method, similar to `IterativeRobotBase.loopFunc` processing game mode changes; `loopFunc` is, similarly to `TimedRobot`, provided as a default `Callback` --------- Signed-off-by: Zach Harel <zach@zharel.me> Co-authored-by: Joseph Eng <91924258+KangarooKoala@users.noreply.github.com>
This commit is contained in:
@@ -15,13 +15,14 @@ public class MyAuto extends PeriodicOpMode {
|
||||
/** The Robot instance is passed into the opmode via the constructor. */
|
||||
public MyAuto(Robot robot) {
|
||||
m_robot = robot;
|
||||
/*
|
||||
* Can call super(period) to set a different periodic time interval.
|
||||
*
|
||||
* Additional periodic methods may be configured with addPeriodic().
|
||||
*/
|
||||
}
|
||||
|
||||
/*
|
||||
* This method runs periodically, using the same period as the Robot instance.
|
||||
*
|
||||
* Additional periodic methods may be configured with addPeriodic(),
|
||||
* which can have periods that differ from the main Robot instance.
|
||||
*/
|
||||
@Override
|
||||
public void periodic() {
|
||||
// Put custom auto code here
|
||||
|
||||
Reference in New Issue
Block a user