|
Re: Programming Ring Light [Java]
Here is the Code:
import edu.wpi.first.wpilibj.Talon;
import edu.wpi.first.wpilibj.Relay;
import edu.wpi.first.wpilibj.Victor;
import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.Solenoid;
import edu.wpi.first.wpilibj.Compressor;
import edu.wpi.first.wpilibj.RobotDrive;
import edu.wpi.first.wpilibj.SimpleRobot;
import edu.wpi.first.wpilibj.SpeedController;
import edu.wpi.first.wpilibj.GenericHID.Hand;
import edu.wpi.first.wpilibj.AnalogPotentiometer;
public class ASimpleJavaBot extends SimpleRobot {
// Constants
private static final Hand LEFTHAND = Hand.kLeft;
private static final Hand RIGHTHAND = Hand.kRight;
Solenoid launcherClosed = new Solenoid(1);
Solenoid launcherOpen = new Solenoid(2);
Solenoid armsClosed = new Solenoid(3);
Solenoid armsOpen = new Solenoid(4);
SpeedController frontRight = new Victor(3);
SpeedController frontLeft = new Victor(2);
SpeedController rearRight = new Victor(1);
SpeedController rearLeft = new Victor(4);
SpeedController rightArmMotor = new Talon(6);
SpeedController leftArmMotor = new Talon(7);
Compressor compressor = new Compressor(1, 1);
Relay Light = new Relay(2);
Joystick joy1 = new Joystick(1);
XboxController cont1 = new XboxController(1);
XboxController cont2 = new XboxController(2);
RobotDrive drive = new RobotDrive(frontLeft, rearLeft, frontRight,
rearRight);
/**
* 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() {
int count = 0;
compressor.start();
boolean armsDown = false;
boolean ltPressed = false;
drive.setInvertedMotor(RobotDrive.MotorType.kFront Left, false);
drive.setInvertedMotor(RobotDrive.MotorType.kRearL eft, false);
drive.setInvertedMotor(RobotDrive.MotorType.kFront Right, true);
drive.setInvertedMotor(RobotDrive.MotorType.kRearR ight, true);
if (ltPressed == false) {
if (cont2.getTrigger(LEFTHAND) == true) {
if (armsDown == true) {
armsOpen.set(false);
armsClosed.set(true);
armsDown = false;
ltPressed = true;
}
else {
armsOpen.set(true);
armsClosed.set(false);
ltPressed = true;
armsDown = true;
}
}
} else {
if (cont2.getTrigger(LEFTHAND) == false) {
ltPressed = false;
}
}
if (cont2.getBumper(LEFTHAND) == true) {
// up
rightArmMotor.set(1);
leftArmMotor.set(-1);
}
if (cont2.getBumper(RIGHTHAND) == true) {
// down
rightArmMotor.set(-.7);
leftArmMotor.set(.7);
}
if ((cont2.getBumper(RIGHTHAND) == false)
&& (cont2.getBumper(LEFTHAND) == false)) {
rightArmMotor.set(0);
leftArmMotor.set(0);
}
if (cont1.getBumper(RIGHTHAND) == true) {
Light.set(Relay.Value.kOn);
}
if (cont1.getBumper(RIGHTHAND) == false) {
Light.set(Relay.Value.kOff);
}
}
}
private static double RoundToDecimalPlace(double value, int decimalPlaces) {
double exponent = 10 ^ decimalPlaces;
int rounded = (int) (value * exponent);
return (double) rounded / exponent;
}
}
__________________
No matter what, It's always a programming problem
-Everyone Else On The Team
|