Files
allwpilib/robotpyExamples/SysId/robot.py
Peter Johnson ab00aac960 [hal,wpilib] Rename "Test" robot mode to "Utility" (#8782)
The "Utility" name better matches its intended generic use case and
avoids overloaded terminology with unit testing (e.g. the need to name
the opmode annotation `@TestOpMode`).

The driver station will also be updated to reflect this change.
2026-04-20 20:29:25 -07:00

67 lines
2.2 KiB
Python

#!/usr/bin/env python3
#
# Copyright (c) FIRST and other WPILib contributors.
# Open Source Software; you can modify and/or share it under the terms of
# the WPILib BSD license file in the root directory of this project.
#
from commands2 import CommandScheduler, TimedCommandRobot
from sysidroutinebot import SysIdRoutineBot
class MyRobot(TimedCommandRobot):
"""
The methods in this class are called automatically corresponding to each mode,
as described in the TimedRobot documentation.
"""
def __init__(self) -> None:
"""This function is run when the robot is first started up and should be used for any
initialization code.
"""
super().__init__()
self.robot = SysIdRoutineBot()
# Configure default commands and condition bindings on robot startup
self.robot.configureBindings()
self.autonomous_command = None
def disabledInit(self) -> None:
"""This function is called once each time the robot enters Disabled mode."""
pass
def disabledPeriodic(self) -> None:
pass
def autonomousInit(self) -> None:
self.autonomous_command = self.robot.getAutonomousCommand()
if self.autonomous_command is not None:
CommandScheduler.getInstance().schedule(self.autonomous_command)
def autonomousPeriodic(self) -> None:
"""This function is called periodically during autonomous."""
pass
def teleopInit(self) -> None:
# This makes sure that the autonomous stops running when
# teleop starts running. If you want the autonomous to
# continue until interrupted by another command, remove
# this line or comment it out.
if self.autonomous_command is not None:
self.autonomous_command.cancel()
def teleopPeriodic(self) -> None:
"""This function is called periodically during operator control."""
pass
def utilityInit(self) -> None:
# Cancels all running commands at the start of utility mode.
CommandScheduler.getInstance().cancelAll()
def utilityPeriodic(self) -> None:
"""This function is called periodically during utility mode."""
pass