Files
allwpilib/wpilibjExamples/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

111 lines
2.3 KiB
Python

EXAMPLES_FOLDERS = [
"addressableled",
"apriltagsvision",
"arcadedrive",
"arcadedrivexboxcontroller",
"armsimulation",
"canpdp",
"differentialdrivebot",
"differentialdriveposeestimator",
"digitalcommunication",
"drivedistanceoffboard",
"dutycycleencoder",
"dutycycleinput",
"elevatorexponentialprofile",
"elevatorexponentialsimulation",
"elevatorprofiledpid",
"elevatorsimulation",
"elevatortrapezoidprofile",
"encoder",
"eventloop",
"flywheelbangbangcontroller",
"gettingstarted",
"gyro",
"gyromecanum",
"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 = [
"accelerometercollision",
"accelerometerfilter",
"adxlaccelerometers",
"analogaccelerometer",
"analogencoder",
"analoginput",
"analogpotentiometer",
"digitalinput",
"dutycycleencoder",
"encoder",
"encoderdrive",
"encoderhoming",
"limitswitch",
"onboardimu",
"profiledpidfeedforward",
]
TEMPLATES_FOLDERS = [
"commandv2",
"commandv2skeleton",
"educational",
"opmode",
"robotbaseskeleton",
"romicommandv2",
"romieducational",
"romitimed",
"timed",
"timedskeleton",
"timeslice",
"timesliceskeleton",
"xrpcommandv2",
"xrpeducational",
"xrptimed",
]
TEST_FOLDERS = [
"armsimulation",
"digitalcommunication",
"elevatorsimulation",
"i2ccommunication",
"potentiometerpid",
"unittest",
]