137 lines
3.9 KiB
Java
137 lines
3.9 KiB
Java
// Copyright (c) FIRST and other WPILib contributors.
|
|
// Open Source Software; you can modify and/or share it under the terms of
|
|
// the WPILib BSD license file in the root directory of this project.
|
|
|
|
package frc.robot.subsystems;
|
|
|
|
import java.util.Optional;
|
|
|
|
import com.ctre.phoenix.led.CANdle;
|
|
import com.ctre.phoenix.led.RainbowAnimation;
|
|
|
|
import edu.wpi.first.networktables.GenericEntry;
|
|
import edu.wpi.first.wpilibj.DriverStation;
|
|
import edu.wpi.first.wpilibj.DriverStation.Alliance;
|
|
import edu.wpi.first.wpilibj.shuffleboard.BuiltInWidgets;
|
|
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
|
|
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
|
|
import edu.wpi.first.wpilibj2.command.SubsystemBase;
|
|
|
|
public class Led extends SubsystemBase {
|
|
ShuffleboardTab teb = Shuffleboard.getTab("teb");
|
|
private GenericEntry equipe =
|
|
teb.add("equipe commence (bleu = ouvert, rouge = fermé)", true).withWidget(BuiltInWidgets.kToggleSwitch).getEntry();
|
|
CANdle CANDle = new CANdle(17);
|
|
RainbowAnimation rainbowAnim = new RainbowAnimation();
|
|
public void bleu(){
|
|
CANDle.setLEDs(0, 0, 255,0,0,8);
|
|
CANDle.setLEDs(0, 0, 255,0,16,8);
|
|
CANDle.setLEDs(0, 0, 255,0,32,8);
|
|
CANDle.setLEDs(0, 0, 255,0,56,8);
|
|
CANDle.setLEDs(0, 0, 255,0,72,8);
|
|
CANDle.setLEDs(0, 0, 255,0,88,8);
|
|
CANDle.setLEDs(0, 0, 255,0,104,8);
|
|
CANDle.setLEDs(0, 0, 255,0,120,8);
|
|
CANDle.setLEDs(0, 0, 255,0,136,8);
|
|
|
|
}
|
|
public void Vert1(){
|
|
CANDle.setLEDs(0, 255, 0,0,0,8);
|
|
CANDle.setLEDs(0, 255, 0,0,16,8);
|
|
CANDle.setLEDs(0, 255, 0,0,32,8);
|
|
CANDle.setLEDs(0, 255, 0,0,56,8);
|
|
CANDle.setLEDs(0, 255, 0,0,72,8);
|
|
CANDle.setLEDs(0, 255, 0,0,88,8);
|
|
CANDle.setLEDs(0, 255, 0,0,104,8);
|
|
CANDle.setLEDs(0, 255, 0,0,120,8);
|
|
CANDle.setLEDs(0, 255, 0,0,136,8);
|
|
}
|
|
public void Rouge(){
|
|
CANDle.setLEDs(255, 0, 0,0,0,8);
|
|
CANDle.setLEDs(255, 0, 0,0,16,8);
|
|
CANDle.setLEDs(255, 0, 0,0,32,8);
|
|
CANDle.setLEDs(255, 0, 0,0,48,8);
|
|
CANDle.setLEDs(255, 0, 0,0,64,8);
|
|
CANDle.setLEDs(255, 0, 0,0,80,8);
|
|
CANDle.setLEDs(255, 0, 0,0,96,8);
|
|
CANDle.setLEDs(255, 0, 0,0,112,8);
|
|
CANDle.setLEDs(255, 0, 0,0,128,8);
|
|
}
|
|
public void Jaune2(){
|
|
CANDle.setLEDs(255, 255, 0,0,8,8);
|
|
CANDle.setLEDs(255, 255, 0,0,24,8);
|
|
CANDle.setLEDs(255, 255, 0,0,40,8);
|
|
CANDle.setLEDs(255, 255, 0,0,56,8);
|
|
CANDle.setLEDs(255, 255, 0,0,72,8);
|
|
CANDle.setLEDs(255, 255, 0,0,88,8);
|
|
CANDle.setLEDs(255, 255, 0,0,104,8);
|
|
CANDle.setLEDs(255, 255, 0,0,120,8);
|
|
CANDle.setLEDs(255, 255, 0,0,136,8);
|
|
}
|
|
public void Rouge2(){
|
|
CANDle.setLEDs(255, 0, 0,0,8,8);
|
|
CANDle.setLEDs(255, 0, 0,0,24,8);
|
|
CANDle.setLEDs(255, 0, 0,0,40,8);
|
|
CANDle.setLEDs(255, 0, 0,0,56,8);
|
|
CANDle.setLEDs(255, 0, 0,0,72,8);
|
|
CANDle.setLEDs(255, 0, 0,0,88,8);
|
|
CANDle.setLEDs(255, 0, 0,0,104,8);
|
|
CANDle.setLEDs(255, 0, 0,0,120,8);
|
|
CANDle.setLEDs(255, 0, 0,0,136,8);
|
|
}
|
|
public void RainBow(){
|
|
CANDle.animate(rainbowAnim);
|
|
}
|
|
public void RainBowStop(){
|
|
CANDle.animate(null);
|
|
}
|
|
public boolean Equipe(){
|
|
return equipe.getBoolean(true);
|
|
}
|
|
/** Creates a new Led. */
|
|
public Led() {}
|
|
|
|
@Override
|
|
public void periodic() {
|
|
double temps = DriverStation.getMatchTime();
|
|
if(temps > 20 && temps < 30){
|
|
Vert1();
|
|
}
|
|
if(Equipe()){
|
|
if(temps > 30 && temps < 55){
|
|
bleu();
|
|
}
|
|
else if(temps > 30 && temps < 80){
|
|
Rouge();
|
|
}
|
|
else if(temps > 80 && temps < 105){
|
|
bleu();
|
|
}
|
|
else if(temps > 105 && temps < 130){
|
|
Rouge();
|
|
}
|
|
else{
|
|
RainBow();
|
|
}
|
|
}
|
|
else{
|
|
if(temps > 30 && temps < 55){
|
|
Rouge();
|
|
}
|
|
else if(temps > 30 && temps < 80){
|
|
bleu();
|
|
}
|
|
else if(temps > 80 && temps < 105){
|
|
Rouge();
|
|
}
|
|
else if(temps > 105 && temps < 130){
|
|
bleu();
|
|
}
|
|
else{
|
|
RainBow();
|
|
}
|
|
}
|
|
// This method will be called once per scheduler run
|
|
}
|
|
}
|