/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2008. 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 com.edinarobotics.zephyr;


import com.edinarobotics.utils.gamepad.Gamepad;
import edu.wpi.first.wpilibj.SimpleRobot;

/**
 * The VM is configured to automatically run this class, and to call the
 * functions corresponding to each mode, as described in the SimpleRobot
 * 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 Zephyr extends SimpleRobot {
    private double leftDrive;
    private double rightDrive;
    
    /**
     * This function is called once each time the robot enters autonomous mode.
     */
    public void autonomous() {
        
    }

    /**
     * This function is called once each time the robot enters operator control.
     */
    public void operatorControl() {
        Gamepad gamepad1 = new Gamepad(1);
        Gamepad gamepad2 = new Gamepad(2);
        Components components = Components.getInstance();
        while(this.isOperatorControl()&&this.isEnabled()){
           leftDrive = gamepad1.getLeftY();
           rightDrive = gamepad1.getRightY();
           mechanismSet();
        }
        stop();
    }
    
    private void mechanismSet(){
        Components.getInstance().driveControl.tankDrive(leftDrive, rightDrive);
    }
    
    private void stop(){
        leftDrive = 0;
        rightDrive = 0;
        mechanismSet();
    }
}

@@ -564,16 +564,94 @@
 amepad;%0A
+import edu.wpi.first.wpilibj.Relay;%0Aimport edu.wpi.first.wpilibj.Relay.Value;%0A
 import e
@@ -1076,24 +1076,28 @@
 le leftDrive
+ = 0
 ;%0A    privat
@@ -1115,16 +1115,99 @@
 ghtDrive
+ = 0;%0A    private double shooterSpeed = 0;%0A    private boolean ballLoaderUp = false
 ;%0A    %0A 
@@ -1789,171 +1789,541 @@
     
-mechanismSet();%0A        %7D%0A        stop();%0A    %7D%0A    %0A    private void mechanismSet()%7B%0A        Components.getInstance().driveControl.tankDrive(leftDrive, rightDrive
+shooterSpeed = gamepad2.getLeftY();%0A           ballLoaderUp = gamepad1.getRawButton(Gamepad.RIGHT_TRIGGER);%0A           mechanismSet();%0A        %7D%0A        stop();%0A    %7D%0A    %0A    private void mechanismSet()%7B%0A        Components robotParts = Components.getInstance();%0A        robotParts.driveControl.tankDrive(leftDrive, rightDrive);%0A        robotParts.shooterJaguar.set(shooterSpeed);%0A        robotParts.ballLoadPiston.set((ballLoaderUp ? Relay.Value.kReverse :%0A                                                      Relay.Value.kForward)
 );%0A 

Add single gamepad control for pneumatics components to operatorControl().