here is the code
/----------------------------------------------------------------------------/
/* Copyright © 2017-2018 FIRST. All Rights Reserved. /
/ Open Source Software - may be modified and shared by FRC teams. The code /
/ must be accompanied by the FIRST BSD license file in the root directory of /
/ the project. /
/----------------------------------------------------------------------------*/
package frc.robot;
//imports
import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.TimedRobot;
import edu.wpi.first.wpilibj.command.Command;
import edu.wpi.first.wpilibj.command.Scheduler;
import edu.wpi.first.wpilibj.smartdashboard.SendableChooser;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
import frc.robot.subsystems.;
import frc.robot.commands.;
import frc.robot.OI;
//imports
/**
- The VM is configured to automatically run this class, and to call the
- functions corresponding to each mode, as described in the TimedRobot
- documentation. If you change the name of this class or the package after
- creating this project, you must also update the build.gradle file in the
- project.
*/
public class Robot extends TimedRobot {
// public static ExampleSubsystem m_subsystem = new ExampleSubsystem();
// public static OI m_oi;
Command m_autonomousCommand;
Joystick _joy = new Joystick(0);
Joystick _backupJoy = new Joystick(1);
SendableChooser m_chooser = new SendableChooser<>();
// command and subsystem calls
public static DriveSubsystem drive = null;
public static LifterSubsystem lift = null;
public static WristSubsystem wrist = null;
public static IntakeSubsystem intake = null;
public static PnumaticSubsystem pnumatics = null;
// up subsystems down commands
public static SwerveDrive swerve = null;
public static GrabBall grabBall = null;
public static GrabDisk grabDisk = null;
public static shift shift = null;
public static scoredisk releaseDisk = null;
public static scoreball releaseBall = null;
public static manualWrist manualWrist = null;
public static manualLift manualLift = null;
public static lifter_test lifter = null;
boolean ran = false;
// command and subsystem calls
/**
- This function is run when the robot is first started up and should be used
- for any initialization code.
*/
@Override
public void robotInit() {
// command and subsystem calls
drive = new DriveSubsystem();
lift = new LifterSubsystem();
wrist = new WristSubsystem();
intake = new IntakeSubsystem();
pnumatics = new PnumaticSubsystem();
// up subsystems down commands
releaseBall = new scoreball();
releaseDisk = new scoredisk();
swerve = new SwerveDrive();
grabBall = new GrabBall();
grabDisk = new GrabDisk();
shift = new shift();
manualWrist = new manualWrist();
manualLift = new manualLift();
lifter = new lifter_test();
drive.init();
// command and subsystem calls
// m_oi = new OI();
// m_chooser.setDefaultOption("Default Auto", new ExampleCommand());
// chooser.addOption("My Auto", new MyAutoCommand());
// SmartDashboard.putData("Auto mode", m_chooser);
}
/**
- This function is called every robot packet, no matter the mode. Use this for
- items like diagnostics that you want ran during disabled, autonomous,
- teleoperated and test.
-
- This runs after the mode specific periodic functions, but before LiveWindow
- and SmartDashboard integrated updating.
*/
@Override
public void robotPeriodic() {
if (_joy.getRawButton(13) || _backupJoy.getRawButton(13)) {
drive.init();
}
if (_joy.getRawButton(7) || _backupJoy.getRawButton(7)) { // on press ready and spinning on releace ball is stowed
grabBall.start();
}
if (_joy.getRawButton(4) || _backupJoy.getRawButton(4)) { // on press ready to grab hatch on releace grab hatch
grabDisk.start();
}
if (_joy.getRawButton(11) || _backupJoy.getRawButton(11)) { // on press shift to low on releace shift to high
pnumatics.shiftlow();
}
else {
pnumatics.shifthigh();
}
if (_joy.getRawButton(6) || _backupJoy.getRawButton(6)) { // on press claws closed on relace claws open
releaseDisk.start();
}
if (_joy.getRawButton(8) || _backupJoy.getRawButton(8)) { // on press shoot ball
releaseBall.start();
}
if (_backupJoy.getRawButton(1) || _backupJoy.getRawButton(3)) { // square button wrist up circle wrist up
manualWrist.start();
}
if (_backupJoy.getRawButton(2) || _backupJoy.getRawButton(4)) { // triangle button lift up x button lift down
manualLift.start();
}
if (_joy.getRawButton(1)) {
lifter.start();
}
swerve.start();
}
/**
- This function is called once each time the robot enters Disabled mode. You
- can use it to reset any subsystem information you want to clear when the
- robot is disabled.
*/
@Override
public void disabledInit() {
}
@Override
public void disabledPeriodic() {
Scheduler.getInstance().run();
}
/**
- This autonomous (along with the chooser code above) shows how to select
- between different autonomous modes using the dashboard. The sendable chooser
- code works with the Java SmartDashboard. If you prefer the LabVIEW Dashboard,
- remove all of the chooser code and uncomment the getString code to get the
- auto name from the text box below the Gyro
-
- You can add additional auto modes by adding additional commands to the
- chooser code above (like the commented example) or additional comparisons to
- the switch structure below with additional strings & commands.
*/
@Override
public void autonomousInit() {
m_autonomousCommand = m_chooser.getSelected();
/*
* String autoSelected = SmartDashboard.getString("Auto Selector", "Default");
* switch(autoSelected) { case "My Auto": autonomousCommand = new
* MyAutoCommand(); break; case "Default Auto": default: autonomousCommand = new
* ExampleCommand(); break; }
*/
// schedule the autonomous command (example)
if (m_autonomousCommand != null) {
m_autonomousCommand.start();
}
}
/**
- This function is called periodically during autonomous.
*/
@Override
public void autonomousPeriodic() {
Scheduler.getInstance().run();
}
@Override
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 (m_autonomousCommand != null) {
m_autonomousCommand.cancel();
}
}
/**
- This function is called periodically during operator control.
*/
@Override
public void teleopPeriodic() {
Scheduler.getInstance().run();
}
/**
- This function is called periodically during test mode.
*/
@Override
public void testPeriodic() {
}
}