summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2015-01-13 15:33:41 -0500
committerLuke Shumaker <lukeshu@sbcglobal.net>2015-01-13 15:33:41 -0500
commit5e28068699f8d458f6f104a93b51d174cd065f6e (patch)
treeff427507632c1d6fbb058ad7f57a44e56631b4b7
Initial commit of Command Based Robotorig
-rw-r--r--.classpath7
-rw-r--r--.gitignore2
-rw-r--r--.project18
-rw-r--r--build.properties4
-rw-r--r--build.xml30
-rw-r--r--src/org/usfirst/frc/team4272/robot2015/OI.java38
-rw-r--r--src/org/usfirst/frc/team4272/robot2015/Robot.java80
-rw-r--r--src/org/usfirst/frc/team4272/robot2015/RobotMap.java18
-rw-r--r--src/org/usfirst/frc/team4272/robot2015/commands/ExampleCommand.java39
-rw-r--r--src/org/usfirst/frc/team4272/robot2015/subsystems/ExampleSubsystem.java19
10 files changed, 255 insertions, 0 deletions
diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..daf6ebb
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,7 @@
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="var" path="wpilib" sourcepath="wpilib.sources"/>
+ <classpathentry kind="var" path="networktables" sourcepath="networktables.sources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fbd5a69
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/doc/
diff --git a/.project b/.project
new file mode 100644
index 0000000..dbab0ef
--- /dev/null
+++ b/.project
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>frc4272-robot2015</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>edu.wpi.first.wpilib.plugins.core.nature.FRCProjectNature</nature>
+ </natures>
+</projectDescription>
diff --git a/build.properties b/build.properties
new file mode 100644
index 0000000..0d5fd76
--- /dev/null
+++ b/build.properties
@@ -0,0 +1,4 @@
+# Project specific information
+package=org.usfirst.frc.team4272.robot2015
+robot.class=${package}.Robot
+simulation.world.file=/usr/share/frcsim/worlds/GearsBotDemo.world \ No newline at end of file
diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000..2182d37
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project name="FRC Deployment" default="deploy">
+
+ <!--
+ The following properties can be defined to override system level
+ settings. These should not be touched unless you know what you're
+ doing. The primary use is to override the wpilib version when
+ working with older robots that can't compile with the latest
+ libraries.
+ -->
+
+ <!-- By default the system version of WPI is used -->
+ <!-- <property name="version" value=""/> -->
+
+ <!-- By default the system team number is used -->
+ <!-- <property name="team-number" value=""/> -->
+
+ <!-- By default the target is set to 10.TE.AM.2 -->
+ <!-- <property name="target" value=""/> -->
+
+ <!-- Any other property in build.properties can also be overridden. -->
+
+ <property file="${user.home}/wpilib/wpilib.properties"/>
+ <property file="build.properties"/>
+ <property file="${user.home}/wpilib/java/${version}/ant/build.properties"/>
+
+ <import file="${wpilib.ant.dir}/build.xml"/>
+
+</project>
diff --git a/src/org/usfirst/frc/team4272/robot2015/OI.java b/src/org/usfirst/frc/team4272/robot2015/OI.java
new file mode 100644
index 0000000..b90f86a
--- /dev/null
+++ b/src/org/usfirst/frc/team4272/robot2015/OI.java
@@ -0,0 +1,38 @@
+package org.usfirst.frc.team4272.robot2015;
+
+import edu.wpi.first.wpilibj.buttons.Button;
+import org.usfirst.frc.team4272.robot2015.commands.ExampleCommand;
+
+/**
+ * This class is the glue that binds the controls on the physical operator
+ * interface to the commands and command groups that allow control of the robot.
+ */
+public class OI {
+ //// CREATING BUTTONS
+ // One type of button is a joystick button which is any button on a joystick.
+ // You create one by telling it which joystick it's on and which button
+ // number it is.
+ // Joystick stick = new Joystick(port);
+ // Button button = new JoystickButton(stick, buttonNumber);
+
+ // There are a few additional built in buttons you can use. Additionally,
+ // by subclassing Button you can create custom triggers and bind those to
+ // commands the same as any other Button.
+
+ //// TRIGGERING COMMANDS WITH BUTTONS
+ // Once you have a button, it's trivial to bind it to a button in one of
+ // three ways:
+
+ // Start the command when the button is pressed and let it run the command
+ // until it is finished as determined by it's isFinished method.
+ // button.whenPressed(new ExampleCommand());
+
+ // Run the command while the button is being held down and interrupt it once
+ // the button is released.
+ // button.whileHeld(new ExampleCommand());
+
+ // Start the command when the button is released and let it run the command
+ // until it is finished as determined by it's isFinished method.
+ // button.whenReleased(new ExampleCommand());
+}
+
diff --git a/src/org/usfirst/frc/team4272/robot2015/Robot.java b/src/org/usfirst/frc/team4272/robot2015/Robot.java
new file mode 100644
index 0000000..930ec3f
--- /dev/null
+++ b/src/org/usfirst/frc/team4272/robot2015/Robot.java
@@ -0,0 +1,80 @@
+
+package org.usfirst.frc.team4272.robot2015;
+
+import edu.wpi.first.wpilibj.IterativeRobot;
+import edu.wpi.first.wpilibj.command.Command;
+import edu.wpi.first.wpilibj.command.Scheduler;
+import edu.wpi.first.wpilibj.livewindow.LiveWindow;
+import org.usfirst.frc.team4272.robot2015.commands.ExampleCommand;
+import org.usfirst.frc.team4272.robot2015.subsystems.ExampleSubsystem;
+
+/**
+ * The VM is configured to automatically run this class, and to call the
+ * functions corresponding to each mode, as described in the IterativeRobot
+ * documentation. If you change the name of this class or the package after
+ * creating this project, you must also update the manifest file in the resource
+ * directory.
+ */
+public class Robot extends IterativeRobot {
+
+ public static final ExampleSubsystem exampleSubsystem = new ExampleSubsystem();
+ public static OI oi;
+
+ Command autonomousCommand;
+
+ /**
+ * This function is run when the robot is first started up and should be
+ * used for any initialization code.
+ */
+ public void robotInit() {
+ oi = new OI();
+ // instantiate the command used for the autonomous period
+ autonomousCommand = new ExampleCommand();
+ }
+
+ public void disabledPeriodic() {
+ Scheduler.getInstance().run();
+ }
+
+ public void autonomousInit() {
+ // schedule the autonomous command (example)
+ if (autonomousCommand != null) autonomousCommand.start();
+ }
+
+ /**
+ * This function is called periodically during autonomous
+ */
+ public void autonomousPeriodic() {
+ Scheduler.getInstance().run();
+ }
+
+ public void teleopInit() {
+ // 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 (autonomousCommand != null) autonomousCommand.cancel();
+ }
+
+ /**
+ * This function is called when the disabled button is hit.
+ * You can use it to reset subsystems before shutting down.
+ */
+ public void disabledInit(){
+
+ }
+
+ /**
+ * This function is called periodically during operator control
+ */
+ public void teleopPeriodic() {
+ Scheduler.getInstance().run();
+ }
+
+ /**
+ * This function is called periodically during test mode
+ */
+ public void testPeriodic() {
+ LiveWindow.run();
+ }
+}
diff --git a/src/org/usfirst/frc/team4272/robot2015/RobotMap.java b/src/org/usfirst/frc/team4272/robot2015/RobotMap.java
new file mode 100644
index 0000000..2238625
--- /dev/null
+++ b/src/org/usfirst/frc/team4272/robot2015/RobotMap.java
@@ -0,0 +1,18 @@
+package org.usfirst.frc.team4272.robot2015;
+/**
+ * The RobotMap is a mapping from the ports sensors and actuators are wired into
+ * to a variable name. This provides flexibility changing wiring, makes checking
+ * the wiring easier and significantly reduces the number of magic numbers
+ * floating around.
+ */
+public class RobotMap {
+ // For example to map the left and right motors, you could define the
+ // following variables to use with your drivetrain subsystem.
+ // public static int leftMotor = 1;
+ // public static int rightMotor = 2;
+
+ // If you are using multiple modules, make sure to define both the port
+ // number and the module. For example you with a rangefinder:
+ // public static int rangefinderPort = 1;
+ // public static int rangefinderModule = 1;
+}
diff --git a/src/org/usfirst/frc/team4272/robot2015/commands/ExampleCommand.java b/src/org/usfirst/frc/team4272/robot2015/commands/ExampleCommand.java
new file mode 100644
index 0000000..42ddd45
--- /dev/null
+++ b/src/org/usfirst/frc/team4272/robot2015/commands/ExampleCommand.java
@@ -0,0 +1,39 @@
+
+package org.usfirst.frc.team4272.robot2015.commands;
+
+import edu.wpi.first.wpilibj.command.Command;
+
+import org.usfirst.frc.team4272.robot2015.Robot;
+
+/**
+ *
+ */
+public class ExampleCommand extends Command {
+
+ public ExampleCommand() {
+ // Use requires() here to declare subsystem dependencies
+ requires(Robot.exampleSubsystem);
+ }
+
+ // Called just before this Command runs the first time
+ protected void initialize() {
+ }
+
+ // Called repeatedly when this Command is scheduled to run
+ protected void execute() {
+ }
+
+ // Make this return true when this Command no longer needs to run execute()
+ protected boolean isFinished() {
+ return false;
+ }
+
+ // Called once after isFinished returns true
+ protected void end() {
+ }
+
+ // Called when another command which requires one or more of the same
+ // subsystems is scheduled to run
+ protected void interrupted() {
+ }
+}
diff --git a/src/org/usfirst/frc/team4272/robot2015/subsystems/ExampleSubsystem.java b/src/org/usfirst/frc/team4272/robot2015/subsystems/ExampleSubsystem.java
new file mode 100644
index 0000000..5b8ebfb
--- /dev/null
+++ b/src/org/usfirst/frc/team4272/robot2015/subsystems/ExampleSubsystem.java
@@ -0,0 +1,19 @@
+
+package org.usfirst.frc.team4272.robot2015.subsystems;
+
+import edu.wpi.first.wpilibj.command.Subsystem;
+
+/**
+ *
+ */
+public class ExampleSubsystem extends Subsystem {
+
+ // Put methods for controlling this subsystem
+ // here. Call these from Commands.
+
+ public void initDefaultCommand() {
+ // Set the default command for a subsystem here.
+ //setDefaultCommand(new MySpecialCommand());
+ }
+}
+