[hal, wpilib] Remove SPI support (#7678)

This commit is contained in:
Thad House
2025-01-17 00:22:29 -08:00
committed by GitHub
parent dc335ddedb
commit 92f0a3c961
84 changed files with 12 additions and 12763 deletions

View File

@@ -1,132 +0,0 @@
// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
package edu.wpi.first.wpilibj.simulation;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import static org.junit.jupiter.params.provider.Arguments.arguments;
import edu.wpi.first.hal.HAL;
import edu.wpi.first.wpilibj.ADIS16448_IMU;
import edu.wpi.first.wpilibj.SPI;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
class ADIS16448SimTest {
@ParameterizedTest
@MethodSource("provideEnumCombinations")
void testYawAxis(ADIS16448_IMU.IMUAxis yawAxis, ADIS16448_IMU.CalibrationTime calibrationTime) {
HAL.initialize(500, 0);
try (ADIS16448_IMU imu = new ADIS16448_IMU(yawAxis, SPI.Port.kMXP, calibrationTime)) {
assertEquals(yawAxis, imu.getYawAxis());
}
}
@ParameterizedTest
@MethodSource("provideEnumCombinations")
void testGyroAngles(
ADIS16448_IMU.IMUAxis yawAxis, ADIS16448_IMU.CalibrationTime calibrationTime) {
HAL.initialize(500, 0);
try (ADIS16448_IMU imu = new ADIS16448_IMU(yawAxis, SPI.Port.kMXP, calibrationTime)) {
ADIS16448_IMUSim sim = new ADIS16448_IMUSim(imu);
sim.setGyroAngleX(123.45);
sim.setGyroAngleY(-67.89);
sim.setGyroAngleZ(4.13);
assertEquals(123.45, imu.getGyroAngleX());
assertEquals(-67.89, imu.getGyroAngleY());
assertEquals(4.13, imu.getGyroAngleZ());
}
}
@ParameterizedTest
@MethodSource("provideEnumCombinations")
void testGyroRates(ADIS16448_IMU.IMUAxis yawAxis, ADIS16448_IMU.CalibrationTime calibrationTime) {
HAL.initialize(500, 0);
try (ADIS16448_IMU imu = new ADIS16448_IMU(yawAxis, SPI.Port.kMXP, calibrationTime)) {
ADIS16448_IMUSim sim = new ADIS16448_IMUSim(imu);
sim.setGyroRateX(15.92);
sim.setGyroRateY(-65.35);
sim.setGyroRateZ(2.71);
assertEquals(15.92, imu.getGyroRateX());
assertEquals(-65.35, imu.getGyroRateY());
assertEquals(2.71, imu.getGyroRateZ());
}
}
@ParameterizedTest
@MethodSource("provideEnumCombinations")
void testAccelValues(
ADIS16448_IMU.IMUAxis yawAxis, ADIS16448_IMU.CalibrationTime calibrationTime) {
HAL.initialize(500, 0);
try (ADIS16448_IMU imu = new ADIS16448_IMU(yawAxis, SPI.Port.kMXP, calibrationTime)) {
ADIS16448_IMUSim sim = new ADIS16448_IMUSim(imu);
sim.setAccelX(6.85);
sim.setAccelY(-1.82);
sim.setAccelZ(8.69);
assertEquals(6.85, imu.getAccelX());
assertEquals(-1.82, imu.getAccelY());
assertEquals(8.69, imu.getAccelZ());
}
}
@ParameterizedTest
@MethodSource("provideEnumCombinations")
void testAngleBasedOnYawAxis(
ADIS16448_IMU.IMUAxis yawAxis, ADIS16448_IMU.CalibrationTime calibrationTime) {
HAL.initialize(500, 0);
try (ADIS16448_IMU imu = new ADIS16448_IMU(yawAxis, SPI.Port.kMXP, calibrationTime)) {
ADIS16448_IMUSim sim = new ADIS16448_IMUSim(imu);
sim.setGyroAngleX(123.45);
sim.setGyroAngleY(-67.89);
sim.setGyroAngleZ(4.13);
switch (yawAxis) {
case kX -> assertEquals(imu.getAngle(), imu.getGyroAngleX());
case kY -> assertEquals(imu.getAngle(), imu.getGyroAngleY());
case kZ -> assertEquals(imu.getAngle(), imu.getGyroAngleZ());
default -> fail("invalid YawAxis!");
}
}
}
@ParameterizedTest
@MethodSource("provideEnumCombinations")
void testRateBasedOnYawAxis(
ADIS16448_IMU.IMUAxis yawAxis, ADIS16448_IMU.CalibrationTime calibrationTime) {
HAL.initialize(500, 0);
try (ADIS16448_IMU imu = new ADIS16448_IMU(yawAxis, SPI.Port.kMXP, calibrationTime)) {
ADIS16448_IMUSim sim = new ADIS16448_IMUSim(imu);
sim.setGyroRateX(1.92);
sim.setGyroRateY(-6.35);
sim.setGyroRateZ(20.71);
switch (yawAxis) {
case kX -> assertEquals(imu.getRate(), imu.getGyroRateX());
case kY -> assertEquals(imu.getRate(), imu.getGyroRateY());
case kZ -> assertEquals(imu.getRate(), imu.getGyroRateZ());
default -> fail("invalid YawAxis!");
}
}
}
static Stream<Arguments> provideEnumCombinations() {
return Stream.of(ADIS16448_IMU.IMUAxis.values())
.flatMap(
imuAxis ->
Stream.of(ADIS16448_IMU.CalibrationTime.values())
.map(calibrationTime -> arguments(imuAxis, calibrationTime)));
}
}

View File

@@ -8,9 +8,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import edu.wpi.first.hal.HAL;
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 org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource;
@@ -37,27 +35,4 @@ class ADXL345SimTest {
assertEquals(2.29, allAccel.ZAxis);
}
}
@ParameterizedTest
@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)) {
ADXL345Sim sim = new ADXL345Sim(accel);
sim.setX(1.91);
sim.setY(-3.405);
sim.setZ(2.29);
assertEquals(1.91, accel.getX());
assertEquals(-3.405, accel.getY());
assertEquals(2.29, accel.getZ());
ADXL345_SPI.AllAxes allAccel = accel.getAccelerations();
assertEquals(1.91, allAccel.XAxis);
assertEquals(-3.405, allAccel.YAxis);
assertEquals(2.29, allAccel.ZAxis);
}
}
}

View File

@@ -1,41 +0,0 @@
// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
package edu.wpi.first.wpilibj.simulation;
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 org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource;
class ADXL362SimTest {
@ParameterizedTest
@EnumSource(ADXL362.Range.class)
void testAccel(ADXL362.Range range) {
HAL.initialize(500, 0);
try (ADXL362 accel = new ADXL362(SPI.Port.kMXP, range)) {
assertEquals(0, accel.getX());
assertEquals(0, accel.getY());
assertEquals(0, accel.getZ());
ADXL362Sim sim = new ADXL362Sim(accel);
sim.setX(1.91);
sim.setY(-3.405);
sim.setZ(2.29);
assertEquals(1.91, accel.getX());
assertEquals(-3.405, accel.getY());
assertEquals(2.29, accel.getZ());
ADXL362.AllAxes allAccel = accel.getAccelerations();
assertEquals(1.91, allAccel.XAxis);
assertEquals(-3.405, allAccel.YAxis);
assertEquals(2.29, allAccel.ZAxis);
}
}
}

View File

@@ -1,35 +0,0 @@
// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
package edu.wpi.first.wpilibj.simulation;
import static org.junit.jupiter.api.Assertions.assertEquals;
import edu.wpi.first.hal.HAL;
import edu.wpi.first.wpilibj.ADXRS450_Gyro;
import org.junit.jupiter.api.Test;
@SuppressWarnings({"TypeName"})
class ADXRS450_GyroSimTest {
@Test
void testCallbacks() {
HAL.initialize(500, 0);
try (ADXRS450_Gyro gyro = new ADXRS450_Gyro()) {
ADXRS450_GyroSim sim = new ADXRS450_GyroSim(gyro);
assertEquals(0, gyro.getAngle());
assertEquals(0, gyro.getRate());
sim.setAngle(123.456);
sim.setRate(229.3504);
assertEquals(123.456, gyro.getAngle());
assertEquals(229.3504, gyro.getRate());
gyro.reset();
assertEquals(0, gyro.getAngle());
}
}
}