Skip to content

Commit 193cd3f

Browse files
add baseSparkConfig and deriatives
1 parent d7f6b9b commit 193cd3f

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

src/main/java/org/carlmontrobotics/lib199/MotorControllerFactory.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.revrobotics.spark.SparkMax;
1515
import com.revrobotics.spark.SparkBase.PersistMode;
1616
import com.revrobotics.spark.config.SparkBaseConfig;
17+
import com.revrobotics.spark.config.SparkFlexConfig;
1718
import com.revrobotics.spark.config.SparkBaseConfig.IdleMode;
1819
import com.revrobotics.spark.config.SparkMaxConfig;
1920
import com.revrobotics.servohub.ServoHub.ResetMode;
@@ -128,7 +129,7 @@ public static SparkMax createSparkMax(int id, int temperatureLimit) {
128129
// MotorErrors.reportError(controller.setFF(0));
129130
config.closedLoop.velocityFF(0);
130131

131-
spark.configure(config, SparkBase.ResetMode.kResetSafeParameters, PersistMode.kNoPersistParameters);
132+
spark.configure(config, SparkBase.ResetMode.kResetSafeParameters, SparkBase.PersistMode.kPersistParameters);
132133

133134
return spark;
134135
}
@@ -169,7 +170,28 @@ public static SparkFlex createSparkFlex(int id, SparkBaseConfig config) {
169170
return spark;
170171
}
171172

172-
//delete configureSpark(SparkBase, Config) because SparkBase.configure() already does that.
173+
private static SparkBaseConfig baseSparkConfig(MotorConfig motorConfig) {
174+
SparkMaxConfig config = new SparkMaxConfig();
175+
176+
config.idleMode(IdleMode.kBrake);
177+
178+
config.voltageCompensation(12);//FIXME does this need to be different for different motors?
179+
config.smartCurrentLimit(motorConfig.currentLimitAmps);
180+
181+
config.closedLoop
182+
.minOutput(-1)
183+
.maxOutput(1)
184+
.pid(0,0,0)
185+
.velocityFF(0);
186+
187+
return config;
188+
}
189+
private static SparkMaxConfig baseSparkMaxConfig(MotorConfig motorConfig){
190+
return (SparkMaxConfig) baseSparkConfig(motorConfig);//FIXME apply needed config changes for each controller
191+
}
192+
private static SparkFlexConfig baseSparkFlexConfig(MotorConfig motorConfig){
193+
return (SparkFlexConfig) baseSparkConfig(motorConfig);//criminal casting usage
194+
}
173195

174196
/**
175197
* @deprecated Use {@link SensorFactory#createCANCoder(int)} instead.

0 commit comments

Comments
 (0)