Here's the command (LiftBox):
Code:
package org.usfirst.frc4328.Judy.commands;
import edu.wpi.first.wpilibj.command.Command;
import org.usfirst.frc4328.Judy.Robot;
import org.usfirst.frc4328.Judy.RobotMap;
//import edu.wpi.first.wpilibj.command.Scheduler;
/**
*
*/
public class LiftBox extends Command {
public LiftBox() {
// Use requires() here to declare subsystem dependencies
// eg. requires(chassis);
requires(Robot.judyelevator);
}
// Called just before this Command runs the first time
protected void initialize() {
}
// Called repeatedly when this Command is scheduled to run
protected void execute() {
RobotMap.judyelevatorSpeedControllerElevtaor.set(1.0);
//RobotMap.judydrivetrainjudyrobotdrive.mecanumDrive_Cartesian(Robot.oi.joystick1.getX(), Robot.oi.joystick1.getY(), Robot.oi.joystick1.getTwist(), RobotMap.judygyroscopeGyro1.getAngle());
}
// 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() {
end();
}
}
And here is the Robot.java:
Code:
// RobotBuilder Version: 1.5
//
// This file was generated by RobotBuilder. It contains sections of
// code that are automatically generated and assigned by robotbuilder.
// These sections will be updated in the future when you export to
// Java from RobotBuilder. Do not put any code or make any change in
// the blocks indicating autogenerated code or it will be lost on an
// update. Deleting the comments indicating the section will prevent
// it from being updated in the future.
package org.usfirst.frc4328.Judy;
import edu.wpi.first.wpilibj.IterativeRobot;
//import edu.wpi.first.wpilibj.SpeedController;
import edu.wpi.first.wpilibj.command.Command;
import edu.wpi.first.wpilibj.command.Scheduler;
import edu.wpi.first.wpilibj.livewindow.LiveWindow;
import org.usfirst.frc4328.Judy.commands.*;
import org.usfirst.frc4328.Judy.subsystems.*;
/**
* 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 {
Command autonomousCommand;
public static OI oi;
// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS
public static judydrivetrain judydrivetrain;
public static judyelevator judyelevator;
public static judygyroscope judygyroscope;
// END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS
/**
* This function is run when the robot is first started up and should be
* used for any initialization code.
*/
public void robotInit() {
RobotMap.init();
// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS
judydrivetrain = new judydrivetrain();
judyelevator = new judyelevator();
judygyroscope = new judygyroscope();
// END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS
// OI must be constructed after subsystems. If the OI creates Commands
//(which it very likely will), subsystems are not guaranteed to be
// constructed yet. Thus, their requires() statements may grab null
// pointers. Bad news. Don't move it.
oi = new OI();
// instantiate the command used for the autonomous period
// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=AUTONOMOUS
autonomousCommand = new AutonomousCommand();
// END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=AUTONOMOUS
}
/**
* This function is called when the disabled button is hit.
* You can use it to reset subsystems before shutting down.
*/
public void disabledInit(){
}
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 periodically during operator control
*/
public void teleopPeriodic() {
Scheduler.getInstance().run();
RobotMap.judydrivetrainjudyrobotdrive.mecanumDrive_Cartesian(oi.joystick1.getX(), oi.joystick1.getY(), oi.joystick1.getTwist(), RobotMap.judygyroscopeGyro1.getAngle());
RobotMap.judyelevatorSpeedControllerElevtaor.set(oi.joystick2.getY());
}
/**
* This function is called periodically during test mode
*/
public void testPeriodic() {
LiveWindow.run();
}
}
And yes, our robot is named Judy (she has a large tail so you know... big booty Judy seemed to fit.) Also, I apologize for not putting it on GitHub, our school blocks it and I really don't feel like pulling another VPN from Japan or something.