Robot Filesystem
frc/
│
├── lib/
│
├── robot/
│ │
│ ├── command/
│ │ ├── auton/
│ │ │ └── SomeAutonCommand.java
│ │ └── SomeCommand.java
│ │
│ ├── sensors/
│ │ └── some-sensor/
│ │ ├── SomeSensor.java
│ │ ├── SomeSensorConstants.java
│ │ ├── SomeSensorIO.java
│ │ ├── SomeSensorIOSim.java
│ │ └── SomeSensorIOType.java
│ │
│ ├── subsystems/
│ │ └── some-subsystem/
│ │ ├── some-mechanism/
│ │ │ ├── SomeMechanismIO.java
│ │ │ ├── SomeMechanismIOSim.java
│ │ │ └── SomeMechanismIOType.java
│ │ ├── SomeSubsystem.java
│ │ └── SomeSubsystemConstants.java
│ │
│ ├── utils/
│ │
│ ├── BuildConstants.java
│ ├── Constants.java
│ ├── FieldConstants.java
│ ├── Main.java
│ ├── Robot.java
│ ├── RobotContainer.java
│ └── RobotState.java
Description of Structure
frc/: The root directory for your FRC robot project.
lib/: A directory designated for libraries/files which are not year specific.
robot/: Contains the main code and organization for the robot.
command/: Directory for command classes that control robot actions.
auton/: Subdirectory for autonomous commands.
sensors/: Directory for sensor-related classes and functionality.
some-sensor/: Subdirectory for a specific sensor's implementation.
SomeSensor.java: Class representing the sensor's public facing functionality.
SomeSensorConstants.java: Contains constant values related to the sensor's operation.
SomeSensorIO.java: Input/Output handling class for the sensor.
SomeSensorIOSim.java: Simulation version of the sensor's I/O handling.
SomeSensorIOType.java: Real version of the sensor's I/O handling.
subsystems/: Directory for subsystem classes that manage various robot mechanisms.
some-subsystem/: Subdirectory for a specific subsystem's implementation.
some-mechanism/: Subdirectory for a particular mechanism within the subsystem.
SomeMechanismIO.java: I/O handling class for the mechanism.
SomeMechanismIOSim.java: Simulation version of the mechanism's I/O handling.
SomeMechanismIOType.java: Real version of the mechanism's I/O handling.
SomeSubsystem.java: Class representing the subsystem's public facing functionality.
SomeSubsystemConstants.java: Contains constant values related to the subsystem's operation.
utils/: A directory for year-specific utility classes.
BuildConstants.java: Class holding build-specific constants.
Constants.java: Class containing general constants used throughout the robot code.
FieldConstants.java: Class defining constants related to the field and game elements.
Main.java: The entry point of the robot code where execution begins.
Robot.java: Main class managing the overall robot functionality and lifecycle.
RobotContainer.java: Manages the robot's subsystems and command structure, defining how they interact.
RobotState.java: Represents the current operational state of the robot.