Skip to content

Commit 89d781f

Browse files
committed
Adds alerts for changed DashboardNumbers
1 parent 6f246fa commit 89d781f

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/main/java/com/chaos131/util/DashboardNumber.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44

55
package com.chaos131.util;
66

7+
import edu.wpi.first.wpilibj.Alert;
8+
import edu.wpi.first.wpilibj.Alert.AlertType;
79
import java.util.ArrayList;
810
import java.util.HashSet;
911
import java.util.List;
1012
import java.util.Set;
1113
import java.util.function.Consumer;
12-
import org.littletonrobotics.junction.Logger;
1314
import org.littletonrobotics.junction.networktables.LoggedNetworkNumber;
1415

1516
/**
@@ -25,6 +26,9 @@ public class DashboardNumber {
2526
/** The NetworkNumber that is used for getting updates to/from the NetworkTables. */
2627
protected LoggedNetworkNumber m_networkNumber;
2728

29+
/** The original value of the DashboardNumber */
30+
private double m_originalValue;
31+
2832
/** Value being stored */
2933
private double m_value;
3034

@@ -34,6 +38,9 @@ public class DashboardNumber {
3438
/** What to do when the number is changed */
3539
private Consumer<Double> m_onUpdate;
3640

41+
/** The alert to display when the current value is different from the original value. */
42+
private Alert m_changedValueAlert;
43+
3744
/** Adds a task to periodically check all dashboard numbers */
3845
static {
3946
PeriodicTasks.getInstance().addTask(DashboardNumber::checkAll);
@@ -76,12 +83,14 @@ public DashboardNumber(
7683
boolean willTriggerWithInitialValue,
7784
Consumer<Double> onUpdate) {
7885
m_value = startValue;
86+
m_originalValue = startValue;
7987
m_name = name;
8088
m_onUpdate = onUpdate;
8189
if (willTriggerWithInitialValue) {
8290
onUpdate.accept(m_value);
8391
}
8492
m_networkNumber = new LoggedNetworkNumber("DashboardNumbers/" + name, startValue);
93+
m_changedValueAlert = new Alert("Changed DashboardNumbers", "", AlertType.kWarning);
8594
AllUpdaters.add(this);
8695
}
8796

@@ -99,6 +108,14 @@ private void checkValue() {
99108
m_value = newValue;
100109
m_onUpdate.accept(m_value);
101110
ChangedValues.add(m_name);
111+
112+
if (newValue != m_originalValue) {
113+
m_changedValueAlert.set(true);
114+
m_changedValueAlert.setText(
115+
String.format("Value '%s' changed from %f to %f", m_name, m_originalValue, newValue));
116+
} else {
117+
m_changedValueAlert.set(false);
118+
}
102119
}
103120
}
104121

@@ -107,6 +124,5 @@ private static void checkAll() {
107124
for (DashboardNumber dashboardNumber : AllUpdaters) {
108125
dashboardNumber.checkValue();
109126
}
110-
Logger.recordOutput("DashboardNumbers/ChangedValues", ChangedValues.toArray(new String[0]));
111127
}
112128
}

0 commit comments

Comments
 (0)