[hal,wpilib] Add function to control "Radio" LED (#6073)

This commit is contained in:
Ryan Blue
2023-12-22 13:57:52 -05:00
committed by GitHub
parent 0b2cfb3abc
commit 4059e0cd9f
22 changed files with 531 additions and 3 deletions

View File

@@ -10,8 +10,10 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import edu.wpi.first.hal.HALUtil;
import edu.wpi.first.wpilibj.RobotController;
import edu.wpi.first.wpilibj.RobotController.RadioLEDState;
import edu.wpi.first.wpilibj.simulation.testutils.BooleanCallback;
import edu.wpi.first.wpilibj.simulation.testutils.DoubleCallback;
import edu.wpi.first.wpilibj.simulation.testutils.EnumCallback;
import edu.wpi.first.wpilibj.simulation.testutils.IntCallback;
import org.junit.jupiter.api.Test;
@@ -279,4 +281,26 @@ class RoboRioSimTest {
assertEquals(kCommentsTruncated, RoboRioSim.getComments());
assertEquals(kCommentsTruncated, RobotController.getComments());
}
@Test
void testRadioLEDState() {
RoboRioSim.resetData();
EnumCallback callback = new EnumCallback();
try (CallbackStore cb = RoboRioSim.registerRadioLEDStateCallback(callback, false)) {
RobotController.setRadioLEDState(RadioLEDState.kGreen);
assertTrue(callback.wasTriggered());
assertEquals(RadioLEDState.kGreen.value, callback.getSetValue());
assertEquals(RadioLEDState.kGreen, RoboRioSim.getRadioLEDState());
assertEquals(RadioLEDState.kGreen, RobotController.getRadioLEDState());
callback.reset();
RoboRioSim.setRadioLEDState(RadioLEDState.kOrange);
assertTrue(callback.wasTriggered());
assertEquals(RadioLEDState.kOrange.value, callback.getSetValue());
assertEquals(RadioLEDState.kOrange, RoboRioSim.getRadioLEDState());
assertEquals(RadioLEDState.kOrange, RobotController.getRadioLEDState());
}
}
}