mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-24 01:31:46 +00:00
[wpilib] Deprecate Accelerometer and Gyro interfaces (#5445)
Accelerometer is hyper-specific to ADXL accelerometers, and Gyro is less useful now that 3D IMUs are prevalent, and if those IMUs want to support the Gyro interface, they also need to provide a way to set the axis used for the Gyro interface, which is confusing. Higher-order functions (e.g., lambdas) are a more flexible interface boundary than interfaces, but they didn't exist when these interfaces were created.
This commit is contained in:
@@ -11,14 +11,13 @@ import edu.wpi.first.wpilibj.ADXL345_I2C;
|
||||
import edu.wpi.first.wpilibj.ADXL345_SPI;
|
||||
import edu.wpi.first.wpilibj.I2C;
|
||||
import edu.wpi.first.wpilibj.SPI;
|
||||
import edu.wpi.first.wpilibj.interfaces.Accelerometer;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.EnumSource;
|
||||
|
||||
class ADXL345SimTest {
|
||||
@ParameterizedTest
|
||||
@EnumSource(Accelerometer.Range.class)
|
||||
void testInitI2C(Accelerometer.Range range) {
|
||||
@EnumSource(ADXL345_I2C.Range.class)
|
||||
void testInitI2C(ADXL345_I2C.Range range) {
|
||||
HAL.initialize(500, 0);
|
||||
|
||||
try (ADXL345_I2C accel = new ADXL345_I2C(I2C.Port.kMXP, range)) {
|
||||
@@ -40,8 +39,8 @@ class ADXL345SimTest {
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@EnumSource(Accelerometer.Range.class)
|
||||
void testInitSPi(Accelerometer.Range range) {
|
||||
@EnumSource(ADXL345_SPI.Range.class)
|
||||
void testInitSPi(ADXL345_SPI.Range range) {
|
||||
HAL.initialize(500, 0);
|
||||
|
||||
try (ADXL345_SPI accel = new ADXL345_SPI(SPI.Port.kMXP, range)) {
|
||||
|
||||
@@ -9,14 +9,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import edu.wpi.first.hal.HAL;
|
||||
import edu.wpi.first.wpilibj.ADXL362;
|
||||
import edu.wpi.first.wpilibj.SPI;
|
||||
import edu.wpi.first.wpilibj.interfaces.Accelerometer;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.EnumSource;
|
||||
|
||||
class ADXL362SimTest {
|
||||
@ParameterizedTest
|
||||
@EnumSource(Accelerometer.Range.class)
|
||||
void testAccel(Accelerometer.Range range) {
|
||||
@EnumSource(ADXL362.Range.class)
|
||||
void testAccel(ADXL362.Range range) {
|
||||
HAL.initialize(500, 0);
|
||||
|
||||
try (ADXL362 accel = new ADXL362(SPI.Port.kMXP, range)) {
|
||||
|
||||
@@ -6,12 +6,10 @@ package edu.wpi.first.wpilibj.simulation;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import edu.wpi.first.hal.HAL;
|
||||
import edu.wpi.first.wpilibj.BuiltInAccelerometer;
|
||||
import edu.wpi.first.wpilibj.interfaces.Accelerometer;
|
||||
import edu.wpi.first.wpilibj.simulation.testutils.BooleanCallback;
|
||||
import edu.wpi.first.wpilibj.simulation.testutils.DoubleCallback;
|
||||
import edu.wpi.first.wpilibj.simulation.testutils.EnumCallback;
|
||||
@@ -102,7 +100,7 @@ class AccelerometerSimTest {
|
||||
|
||||
EnumCallback callback = new EnumCallback();
|
||||
|
||||
Accelerometer.Range range = Accelerometer.Range.k4G;
|
||||
BuiltInAccelerometer.Range range = BuiltInAccelerometer.Range.k4G;
|
||||
try (CallbackStore cb = sim.registerRangeCallback(callback, false);
|
||||
BuiltInAccelerometer accel = new BuiltInAccelerometer(range)) {
|
||||
assertTrue(callback.wasTriggered());
|
||||
@@ -111,7 +109,7 @@ class AccelerometerSimTest {
|
||||
|
||||
// 2G
|
||||
callback.reset();
|
||||
range = Accelerometer.Range.k2G;
|
||||
range = BuiltInAccelerometer.Range.k2G;
|
||||
accel.setRange(range);
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(range.ordinal(), sim.getRange());
|
||||
@@ -119,7 +117,7 @@ class AccelerometerSimTest {
|
||||
|
||||
// 4G
|
||||
callback.reset();
|
||||
range = Accelerometer.Range.k4G;
|
||||
range = BuiltInAccelerometer.Range.k4G;
|
||||
accel.setRange(range);
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(range.ordinal(), sim.getRange());
|
||||
@@ -127,16 +125,11 @@ class AccelerometerSimTest {
|
||||
|
||||
// 8G
|
||||
callback.reset();
|
||||
range = Accelerometer.Range.k8G;
|
||||
range = BuiltInAccelerometer.Range.k8G;
|
||||
accel.setRange(range);
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(range.ordinal(), sim.getRange());
|
||||
assertEquals(range.ordinal(), callback.getSetValue());
|
||||
|
||||
// 16G - Not supported
|
||||
callback.reset();
|
||||
assertThrows(IllegalArgumentException.class, () -> accel.setRange(Accelerometer.Range.k16G));
|
||||
assertFalse(callback.wasTriggered());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user