[sim] Add sim wrappers for sensors that use SimDevice (#3517)

This commit is contained in:
PJ Reiniger
2021-08-21 02:19:59 -04:00
committed by GitHub
parent 2b3e2ebc11
commit 2edd510ab7
35 changed files with 771 additions and 3 deletions

View File

@@ -0,0 +1,31 @@
// 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;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import edu.wpi.first.wpilibj.simulation.UltrasonicSim;
import org.junit.jupiter.api.Test;
public class UltrasonicTest {
@Test
public void testUltrasonic() {
try (Ultrasonic ultrasonic = new Ultrasonic(0, 1)) {
UltrasonicSim sim = new UltrasonicSim(ultrasonic);
assertEquals(0, ultrasonic.getRangeInches());
assertTrue(ultrasonic.isRangeValid());
sim.setRangeInches(35.04);
assertEquals(35.04, ultrasonic.getRangeInches());
sim.setRangeValid(false);
assertFalse(ultrasonic.isRangeValid());
assertEquals(0, ultrasonic.getRangeInches());
}
}
}

View File

@@ -0,0 +1,64 @@
// 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.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;
public class ADXL345SimTest {
@ParameterizedTest
@EnumSource(Accelerometer.Range.class)
void testInitI2C(Accelerometer.Range range) {
HAL.initialize(500, 0);
try (ADXL345_I2C accel = new ADXL345_I2C(I2C.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_I2C.AllAxes allAccel = accel.getAccelerations();
assertEquals(1.91, allAccel.XAxis);
assertEquals(-3.405, allAccel.YAxis);
assertEquals(2.29, allAccel.ZAxis);
}
}
@ParameterizedTest
@EnumSource(Accelerometer.Range.class)
void testInitSPi(Accelerometer.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

@@ -0,0 +1,42 @@
// 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 edu.wpi.first.wpilibj.interfaces.Accelerometer;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource;
public class ADXL362SimTest {
@ParameterizedTest
@EnumSource(Accelerometer.Range.class)
void testAccel(Accelerometer.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);
}
}
}