mirror of
https://github.com/Team4388/2023WayOfTheRobot.git
synced 2026-06-09 00:37:59 -06:00
cry about it
This commit is contained in:
@@ -186,9 +186,9 @@ public class RobotMap {
|
|||||||
PWM rightClaw = new PWM(1);
|
PWM rightClaw = new PWM(1);
|
||||||
CANSparkMax spinnyspin = new CANSparkMax(18, MotorType.kBrushless);
|
CANSparkMax spinnyspin = new CANSparkMax(18, MotorType.kBrushless);
|
||||||
|
|
||||||
// ============================================
|
// * ============================================
|
||||||
// =============== AUTO TESTING ===============
|
// * =============== AUTO TESTING ===============
|
||||||
// ============================================
|
// * ============================================
|
||||||
|
|
||||||
static class MotorTest {
|
static class MotorTest {
|
||||||
boolean result;
|
boolean result;
|
||||||
@@ -205,8 +205,8 @@ public class RobotMap {
|
|||||||
private static final long TEST_TIME = 500;
|
private static final long TEST_TIME = 500;
|
||||||
|
|
||||||
public ArrayList<MotorTest> motor_tests = new ArrayList<>();
|
public ArrayList<MotorTest> motor_tests = new ArrayList<>();
|
||||||
private int test_count = 0;
|
private int test_count = 0;
|
||||||
private long test_time = 0;
|
private long test_time = 0;
|
||||||
private double motor_position = 0;
|
private double motor_position = 0;
|
||||||
|
|
||||||
public void restart_motor_tests() {
|
public void restart_motor_tests() {
|
||||||
@@ -222,23 +222,9 @@ public class RobotMap {
|
|||||||
public boolean run_periodic_tests() {
|
public boolean run_periodic_tests() {
|
||||||
if (test_count >= motor_tests.size()) return true;
|
if (test_count >= motor_tests.size()) return true;
|
||||||
|
|
||||||
|
// fine
|
||||||
MotorTest current_test = motor_tests.get(test_count);
|
MotorTest current_test = motor_tests.get(test_count);
|
||||||
|
|
||||||
if (test_time == 0) {
|
|
||||||
test_time = System.currentTimeMillis();
|
|
||||||
|
|
||||||
switch (current_test.motor_type) {
|
|
||||||
case FALCON:
|
|
||||||
motor_position = current_test.as_falcon.getSelectedSensorPosition();
|
|
||||||
current_test.as_falcon.set(.1);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case NEO:
|
|
||||||
// TODO: destroy robot
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (System.currentTimeMillis() - test_time >= TEST_TIME) {
|
if (System.currentTimeMillis() - test_time >= TEST_TIME) {
|
||||||
switch (current_test.motor_type) {
|
switch (current_test.motor_type) {
|
||||||
case FALCON:
|
case FALCON:
|
||||||
@@ -247,24 +233,40 @@ public class RobotMap {
|
|||||||
if (Math.abs(new_pos - motor_position) > .1) {
|
if (Math.abs(new_pos - motor_position) > .1) {
|
||||||
current_test.result = true;
|
current_test.result = true;
|
||||||
} else {
|
} else {
|
||||||
System.out.printf("[DISCONNECTED] %s\n", current_test.name);
|
System.err.printf("[DISCONNECTED] %s\n", current_test.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
current_test.as_falcon.stopMotor();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case NEO: break;
|
case NEO:
|
||||||
|
{
|
||||||
|
double new_pos = current_test.as_neo.get();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
test_time = 0;
|
test_time = System.currentTimeMillis();
|
||||||
test_count++;
|
current_test = motor_tests.get(test_count++);
|
||||||
|
|
||||||
|
switch (current_test.motor_type) {
|
||||||
|
case FALCON:
|
||||||
|
motor_position = current_test.as_falcon.getSelectedSensorPosition();
|
||||||
|
current_test.as_falcon.set(.1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NEO:
|
||||||
|
current_test.as_neo.set(.1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setup_motor_tests() throws IllegalArgumentException, IllegalAccessException {
|
private void setup_motor_tests() throws IllegalArgumentException, IllegalAccessException {
|
||||||
Class map_clazz = this.getClass();
|
Class<? extends RobotMap> map_clazz = this.getClass();
|
||||||
|
|
||||||
for (Field field : map_clazz.getFields()) {
|
for (Field field : map_clazz.getFields()) {
|
||||||
if (field.getType().equals(WPI_TalonFX.class)) {
|
if (field.getType().equals(WPI_TalonFX.class)) {
|
||||||
@@ -273,6 +275,17 @@ public class RobotMap {
|
|||||||
test.name = field.getName();
|
test.name = field.getName();
|
||||||
test.motor_type = MotorTest.MotorType.FALCON;
|
test.motor_type = MotorTest.MotorType.FALCON;
|
||||||
test.as_falcon = (WPI_TalonFX) field.get(this);
|
test.as_falcon = (WPI_TalonFX) field.get(this);
|
||||||
|
|
||||||
|
motor_tests.add(test);
|
||||||
|
}
|
||||||
|
else if (field.getType().equals(CANSparkMax.class)) {
|
||||||
|
MotorTest test = new MotorTest();
|
||||||
|
test.result = false;
|
||||||
|
test.name = field.getName();
|
||||||
|
test.motor_type = MotorTest.MotorType.NEO;
|
||||||
|
test.as_neo = (CANSparkMax) field.get(this);
|
||||||
|
|
||||||
|
motor_tests.add(test);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ public class SwerveDrive extends SubsystemBase {
|
|||||||
setModuleStates(kinematics.toSwerveModuleStates(chassisSpeeds));
|
setModuleStates(kinematics.toSwerveModuleStates(chassisSpeeds));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set each module of the swerve drive to the corresponding desired state.
|
* Set each module of the swerve drive to the corresponding desired state.
|
||||||
* @param desiredStates Array of module states to set.
|
* @param desiredStates Array of module states to set.
|
||||||
@@ -93,6 +94,8 @@ public class SwerveDrive extends SubsystemBase {
|
|||||||
for (int i = 0; i < desiredStates.length; i++) {
|
for (int i = 0; i < desiredStates.length; i++) {
|
||||||
SwerveModule module = modules[i];
|
SwerveModule module = modules[i];
|
||||||
SwerveModuleState state = desiredStates[i];
|
SwerveModuleState state = desiredStates[i];
|
||||||
|
SmartDashboard.putNumber("test motor" + i, module.getBusVoltage());
|
||||||
|
|
||||||
module.setDesiredState(state);
|
module.setDesiredState(state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,7 +81,9 @@ public class SwerveModule extends SubsystemBase {
|
|||||||
// * Note: This assumes that the CANCoders are setup with the default feedback coefficient and the sensor value reports degrees.
|
// * Note: This assumes that the CANCoders are setup with the default feedback coefficient and the sensor value reports degrees.
|
||||||
return Rotation2d.fromDegrees(encoder.getAbsolutePosition());
|
return Rotation2d.fromDegrees(encoder.getAbsolutePosition());
|
||||||
}
|
}
|
||||||
|
public double getBusVoltage() {
|
||||||
|
return this.driveMotor.getBusVoltage();
|
||||||
|
}
|
||||||
public double getAngularVel() {
|
public double getAngularVel() {
|
||||||
return this.angleMotor.getSelectedSensorVelocity();
|
return this.angleMotor.getSelectedSensorVelocity();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user