Files
allwpilib/wpilibcExamples/example_projects.bzl
Peter Johnson dacded37e5 [hal, wpilib] Add OpMode support (#7744)
User code:
- OpModeRobot used as the robot base class
- LinearOpMode and PeriodicOpMode are provided opmode base classes
- In Java, annotations can be used to automatically register opmode classes

Additional user code functionality:
- OpMode (string) is available in addition to the overall
auto/teleop/test robot mode
- OpMode does not indicate enable (enable/disable is still separate)
- The HAL API uses integer UIDs; these are exposed at the user API level
as well for faster checks
- User code creates opmodes on startup (these have name, category,
description, etc).

DS:
- DS will present opmode selection lists for auto and teleop for
match/practice. During a match, the DS will automatically activate the
selected opmode in the corresponding match period.
- For testing, an overall mode is selected (e.g. teleop/auto/test) and a
single opmode is selected

Future work:
- Command framework support/integration
- Python annotation support
- Unit tests (needs race-free DS sim updates)
- Porting of examples

Co-authored-by: Joseph Eng <91924258+KangarooKoala@users.noreply.github.com>
2025-12-12 20:25:57 -08:00

105 lines
2.2 KiB
Python

EXAMPLE_FOLDERS = [
"AddressableLED",
"AprilTagsVision",
"ArcadeDrive",
"ArcadeDriveXboxController",
"ArmSimulation",
"CANPDP",
"DifferentialDriveBot",
"DifferentialDrivePoseEstimator",
"DigitalCommunication",
"DriveDistanceOffboard",
"DutyCycleEncoder",
"DutyCycleInput",
"ElevatorExponentialProfile",
"ElevatorExponentialSimulation",
"ElevatorProfiledPID",
"ElevatorSimulation",
"ElevatorTrapezoidProfile",
"Encoder",
"EventLoop",
"FlywheelBangBangController",
"GettingStarted",
"Gyro",
"GyroMecanum",
"HAL",
"HatchbotInlined",
"HatchbotTraditional",
"HidRumble",
"HttpCamera",
"I2CCommunication",
"IntermediateVision",
"MecanumBot",
"MecanumDrive",
"MecanumDrivePoseEstimator",
"Mechanism2d",
"MotorControl",
"PotentiometerPID",
"QuickVision",
"RapidReactCommandBot",
"RomiReference",
"SelectCommand",
"SimpleDifferentialDriveSimulation",
"Solenoid",
"StateSpaceArm",
"StateSpaceElevator",
"StateSpaceFlywheel",
"StateSpaceFlywheelSysId",
"SwerveBot",
"SwerveDrivePoseEstimator",
"SysIdRoutine",
"TankDrive",
"TankDriveXboxController",
"UnitTest",
"XRPReference",
]
COMMANDS_V2_FOLDERS = [
"command2",
"emptyclass",
"instantcommand",
"parallelcommandgroup",
"paralleldeadlinegroup",
"parallelracegroup",
"sequentialcommandgroup",
"subsystem2",
]
SNIPPETS_FOLDERS = [
"ADXLAccelerometers",
"AccelerometerCollision",
"AccelerometerFilter",
"AnalogAccelerometer",
"AnalogEncoder",
"AnalogInput",
"AnalogPotentiometer",
"DigitalInput",
"DutyCycleEncoder",
"Encoder",
"EncoderDrive",
"EncoderHoming",
"LimitSwitch",
"OnboardIMU",
"ProfiledPIDFeedforward",
]
TEMPLATES_FOLDERS = [
"commandv2",
"commandv2skeleton",
"opmode",
"robotbaseskeleton",
"timed",
"timedskeleton",
"timeslice",
"timesliceskeleton",
]
TESTS_FOLDERS = [
"ArmSimulation",
"DigitalCommunication",
"ElevatorSimulation",
"I2CCommunication",
"PotentiometerPID",
"UnitTest",
]