Skip to content

Commit 83a6794

Browse files
committed
made proggress in knowing what subdivisions to make. also made initial color decisions
1 parent 66e4da0 commit 83a6794

File tree

3 files changed

+72
-9
lines changed

3 files changed

+72
-9
lines changed
Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
11
package frc.robot.constants;
22

3-
public class LEDConstants {}
3+
import edu.wpi.first.wpilibj.util.Color;
4+
5+
public class LEDConstants {
6+
public static final int stripLength = 42;
7+
8+
public static final Color kAlmostBlack = new Color(0, 0, 1);
9+
// LED Colors
10+
public static final Color kHasAlgea = Color.kAquamarine;
11+
public static final Color kNotHasAlgea = kAlmostBlack;
12+
public static final Color kCoralNotInRobot = Color.kOrange;
13+
public static final Color kCoralInFunnel = Color.kHotPink;
14+
public static final Color kCoralInRobot = Color.kWhite;
15+
public static final Color kCurrentLimiting = Color.kRed;
16+
public static final Color kAutoPlacing = Color.kPurple;
17+
public static final Color kManual = kAlmostBlack;
18+
public static final Color kRight = Color.kSaddleBrown;
19+
public static final Color kLeft = Color.kGreenYellow;
20+
public static final Color kL1 = Color.kBlue;
21+
public static final Color kL2 = Color.kGreen;
22+
public static final Color kL3 = Color.kYellow;
23+
public static final Color kL4 = Color.kRed;
24+
public static final Color kGettingAlgea = Color.kAquamarine;
25+
public static final Color kNotGettingAlgea = kAlmostBlack;
26+
}

src/main/java/frc/robot/subsystems/led/LEDIO.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,17 @@ public void setOff() {
5151
for (int i = 0; i < led.getLength(); i++) {
5252
setLED(i, Color.kBlack);
5353
}
54+
ledBase.setData(led);
5455
}
5556

5657
public void setStrip(LEDPattern pattern) {
5758
pattern.applyTo(led);
5859
}
60+
61+
public void setStrip(Color color) {
62+
for (int i = 0; i < led.getLength(); i++) {
63+
setLED(i, color);
64+
}
65+
ledBase.setData(led);
66+
}
5967
}

src/main/java/frc/robot/subsystems/led/LEDSubsystem.java

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,24 @@
22

33
import static edu.wpi.first.units.Units.Seconds;
44

5+
import java.util.Map;
56
import java.util.Set;
67

78
import org.strykeforce.telemetry.measurable.MeasurableSubsystem;
89
import org.strykeforce.telemetry.measurable.Measure;
910

1011
import edu.wpi.first.wpilibj.LEDPattern;
1112
import edu.wpi.first.wpilibj.util.Color;
13+
import frc.robot.constants.LEDConstants;
1214

1315
public class LEDSubsystem extends MeasurableSubsystem{
1416
private LEDIO io;
15-
private LEDPattern base = LEDPattern.steps(map.of(0, Color.kAqua, ));
16-
LEDPattern red = LEDPattern.solid(Color.kRed);
17+
private LEDPattern base = LEDPattern.solid(Color.kBlack);
18+
private LEDPattern coral = LEDPattern.solid(LEDConstants.kCoralInRobot);
19+
private LEDPattern algea = LEDPattern.steps(Map.of(0, LEDConstants.kHasAlgea, LEDConstants.stripLength/3, Color.kBlack));
20+
21+
private LEDPattern currentLimiting = LEDPattern.solid(LEDConstants.kCurrentLimiting).blink(Seconds.of(1), Seconds.of(2));
22+
private LEDPattern autoplace = LEDPattern.steps(Map.of(LEDConstants.stripLength/3*2, LEDConstants.kAutoPlacing)).blink(Seconds.of(0.25));
1723
public LEDStates currState = LEDStates.OFF;
1824
public CoralStates coralState = CoralStates.NO_PIECE;
1925
public boolean autoPlacing = false;
@@ -22,15 +28,41 @@ public class LEDSubsystem extends MeasurableSubsystem{
2228

2329
public LEDSubsystem(LEDIO io) {
2430
this.io = io;
25-
red.blink(Seconds.of(1), Seconds.of(2));
31+
}
32+
33+
private void buildBase() {
34+
switch (coralState) {
35+
case IN_FUNNEL:
36+
coral = LEDPattern.solid(LEDConstants.kCoralInFunnel);
37+
break;
38+
case IN_ROBOT:
39+
coral = LEDPattern.solid(LEDConstants.kCoralInRobot);
40+
break;
41+
case NO_PIECE:
42+
coral = LEDPattern.solid(LEDConstants.kCoralNotInRobot);
43+
break;
44+
}
45+
algea = LEDPattern.steps(Map.of(0, LEDConstants.kHasAlgea, LEDConstants.stripLength/3, Color.kBlack));
2646

2747
}
2848

2949
public void periodic() {
30-
red.blink(Seconds.of(1), Seconds.of(2));
31-
if (isLimiting) {
32-
red.overlayOn(base);
50+
switch (currState) {
51+
case OFF:
52+
break;
53+
case NORMAL:
54+
if (autoPlacing) {
55+
base = autoplace.overlayOn(base);
56+
}
57+
if (isLimiting) {
58+
base = currentLimiting.overlayOn(base);
59+
}
60+
io.setStrip(base);
61+
break;
62+
case CLIMB:
63+
break;
3364
}
65+
io.updateLEDs();
3466
}
3567

3668
@Override
@@ -46,8 +78,8 @@ public enum LEDStates {
4678
}
4779

4880
public enum CoralStates {
49-
HAS_PIECE,
50-
IN_MECH,
81+
IN_FUNNEL,
82+
IN_ROBOT,
5183
NO_PIECE,
5284
}
5385
}

0 commit comments

Comments
 (0)