mirror of
https://github.com/BroncBotz3481/YAGSL
synced 2026-06-19 06:21:40 +00:00
Addressing issue #6 by copying CAN status frame optimization from democat's library
This commit is contained in:
@@ -186,10 +186,6 @@ public class SparkMaxSwerve extends SwerveMotor
|
||||
{
|
||||
absoluteEncoder.setPositionConversionFactor(positionConversionFactor);
|
||||
absoluteEncoder.setVelocityConversionFactor(positionConversionFactor / 60);
|
||||
if (!isAttachedAbsoluteEncoder())
|
||||
{
|
||||
configureCANStatusFrames(10, 20, 20, 500, 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package swervelib.motors;
|
||||
import com.ctre.phoenix.motorcontrol.ControlMode;
|
||||
import com.ctre.phoenix.motorcontrol.DemandType;
|
||||
import com.ctre.phoenix.motorcontrol.NeutralMode;
|
||||
import com.ctre.phoenix.motorcontrol.StatusFrameEnhanced;
|
||||
import com.ctre.phoenix.motorcontrol.can.TalonFXConfiguration;
|
||||
import com.ctre.phoenix.motorcontrol.can.WPI_TalonFX;
|
||||
import edu.wpi.first.wpilibj.RobotBase;
|
||||
@@ -137,6 +138,21 @@ public class TalonFXSwerve extends SwerveMotor
|
||||
public void configureIntegratedEncoder(double positionConversionFactor)
|
||||
{
|
||||
this.positionConversionFactor = positionConversionFactor;
|
||||
// Taken from democat's library.
|
||||
// https://github.com/democat3457/swerve-lib/blob/7c03126b8c22f23a501b2c2742f9d173a5bcbc40/src/main/java/com/swervedrivespecialties/swervelib/ctre/Falcon500DriveControllerFactoryBuilder.java#L16
|
||||
configureCANStatusFrames(250);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the CAN status frames.
|
||||
*
|
||||
* @param CANStatus1 Applied Motor Output, Fault Information, Limit Switch Information
|
||||
*/
|
||||
public void configureCANStatusFrames(int CANStatus1)
|
||||
{
|
||||
motor.setStatusFramePeriod(StatusFrameEnhanced.Status_1_General, CANStatus1);
|
||||
// TODO: Configure Status Frame 2 thru 21 if necessary
|
||||
// https://v5.docs.ctr-electronics.com/en/stable/ch18_CommonAPI.html#setting-status-frame-periods
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -198,7 +214,7 @@ public class TalonFXSwerve extends SwerveMotor
|
||||
{
|
||||
if (configChanged)
|
||||
{
|
||||
motor.configAllSettings(configuration);
|
||||
motor.configAllSettings(configuration, 250);
|
||||
configChanged = false;
|
||||
}
|
||||
}
|
||||
@@ -337,7 +353,7 @@ public class TalonFXSwerve extends SwerveMotor
|
||||
{
|
||||
if (!absoluteEncoder && !RobotBase.isSimulation())
|
||||
{
|
||||
motor.setSelectedSensorPosition(convertToNativeSensorUnits(position));
|
||||
motor.setSelectedSensorPosition(convertToNativeSensorUnits(position), 0, 250);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user