Skip to content

Commit

Permalink
Create LightShow.java
Browse files Browse the repository at this point in the history
- Example CANdle usage in command
  • Loading branch information
Rodney-Lewis committed Feb 23, 2024
1 parent a967d9c commit 3808157
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions src/main/java/frc/robot/commands/LightShow.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// 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.commands;

import java.util.function.BooleanSupplier;

import edu.wpi.first.wpilibj.Timer;
import edu.wpi.first.wpilibj2.command.Command;
import frc.robot.subsystems.SystemLights;

public class LightShow extends Command {

private final SystemLights systemLights;
private final BooleanSupplier hasNoteSupplier;
private final BooleanSupplier isShoulderHomeSupplier;
private Timer timer;
private double LED_CYCLE = 0.1; // 100 ms

public LightShow(SystemLights systemLights, BooleanSupplier hasNoteSupplier,
BooleanSupplier isShoulderHomeSupplier) {
this.systemLights = systemLights;
this.hasNoteSupplier = hasNoteSupplier;
this.isShoulderHomeSupplier = isShoulderHomeSupplier;
timer = new Timer();
addRequirements(systemLights);
}

@Override
public void initialize() {
timer.start();
}

@Override
public void execute() {
if (timer.advanceIfElapsed(LED_CYCLE)) {
if (hasNoteSupplier.getAsBoolean()) {
systemLights.setLEDs(0, 0, 0);
} else if (isShoulderHomeSupplier.getAsBoolean())
timer.reset();
}
}
}

0 comments on commit 3808157

Please sign in to comment.