You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Change:** Threshold changed from `<= 0` to `< 1e-6` and explanatory comment added above the guard.
177
+
**Change:** Threshold changed from `<= 0` to `>= 1e-6`(inverted with `!`) and explanatory comment added above the guard. The inverted syntax `!(x >= threshold)` catches both values below the threshold AND NaN values (since NaN comparisons always return false).
177
178
178
179
### Launcher.java - v_0r Guard (NEW)
179
180
180
181
**After the denominator check:**
181
182
```java
182
183
double v_0r = dr *Math.sqrt(g / denominator);
183
-
if (v_0r <1e-6) {
184
+
// Use !(x >= threshold) instead of (x < threshold) to catch NaN
**Change:** Threshold changed from `< 0` to `< 1e-6` and explanatory comment added above the guard.
219
+
**Change:** Threshold changed from `< 0` to `>= 1e-6`(inverted with `!`) and explanatory comment added above the guard. The inverted syntax catches NaN values as well.
@@ -99,28 +105,27 @@ Displays the currently selected autonomous routine during disabled mode.
99
105
- Shows counting blocks in alliance color (red or blue)
100
106
- Number of blocks corresponds to the auto option number (1, 2, 3, etc.)
101
107
- Blinks yellow if no auto is selected
102
-
- Sets the last LED to yellow if there's a mismatch between driver station alliance and selected alliance
108
+
- Shows yellow warning on `WARNING_ALLIANCE` if there's a mismatch between driver station alliance and selected alliance
109
+
- Shows orange-red warning on `WARNING_STORAGE` if USB storage is below 2GB free
103
110
104
-
**Used on:**`X_AXIS` (LEDs 12-23)
111
+
**Used on:**`AUTO_SELECTION` (LEDs 24-35)
105
112
106
113
### displayPoseSeek(currentPose, targetPose)
107
114
108
-
Provides visual feedback for manually aligning the robot to a target pose. Useful during disabled mode to help drivers position the robot for autonomous.
Provides visual feedback for manually aligning the robot to a target pose. Useful during disabled mode to help drivers position the robot for autonomous. Coordinates are transformed to robot-relative.
111
116
112
117
| Segment | Meaning |
113
118
|---------|---------|
114
-
|**X (center)**| Green = drive forward, Red = drive backward, White = correct |
|`blinkingYellowPattern`| Blinking yellow (0.5s period, for missing auto) |
328
385
|`bounceRippleYellowPattern`| Yellow bounce ripple (spindexing, not on target) |
329
386
|`bounceRippleGreenPattern`| Green bounce ripple (spindexing, on target) |
330
387
|`autoSelectionPattern`| Counting blocks in alliance color |
331
-
|`hubCountdownPattern`|Progress bar for match phase |
388
+
|`hubCountdownPattern`|Urgent countdown bar for match phase (flashes in final 10s)|
332
389
333
390
## Simulation
334
391
@@ -359,4 +416,7 @@ Check the start/end indices in your `Portion` definitions. Indices are inclusive
359
416
WPILib uses RGB order. Some LED strips expect GRB. Check your strip's data format.
360
417
361
418
### Same LEDs lighting up for different series
362
-
Verify that portion definitions in the `P` class have non-overlapping indices for the segments you're using independently.
419
+
Some series intentionally overlap (e.g., `WARNING_STORAGE` overlaps with `Y_AXIS`). This is by design - warning indicators share space with other displays. Make sure your code doesn't apply conflicting patterns to overlapping series simultaneously.
420
+
421
+
### Warning indicators not showing
422
+
Warning indicators (`WARNING_ALLIANCE`, `WARNING_STORAGE`, `WARNING_COMPRESSOR`) are controlled by `displayAutoSelection()` and `displayCompressorState()`. Ensure these methods are being called in the appropriate robot modes.
0 commit comments