unified choosers

This commit is contained in:
66945
2023-02-25 20:39:33 -07:00
parent 68aaf798ec
commit fb17badba8
@@ -11,12 +11,12 @@ import edu.wpi.first.wpilibj2.command.InstantCommand;
import frc4388.robot.subsystems.SwerveDrive; import frc4388.robot.subsystems.SwerveDrive;
public class PlaybackChooser { public class PlaybackChooser {
private ArrayList<SendableChooser<Command>> m_choosers = new ArrayList<>(); private final ArrayList<SendableChooser<Command>> m_choosers = new ArrayList<>();
private SendableChooser<Command> m_playback = new SendableChooser<>(); private final SendableChooser<Command> m_playback;
private HashMap<String, Command> m_commandPool = new HashMap<>(); private final HashMap<String, Command> m_commandPool = new HashMap<>();
private File m_dir = new File("/home/lvuser/autos/"); private final File m_dir = new File("/home/lvuser/autos/");
private SwerveDrive m_swerve; private final SwerveDrive m_swerve;
// commands // commands
private Command m_noAuto = new InstantCommand(); private Command m_noAuto = new InstantCommand();
@@ -32,12 +32,8 @@ public class PlaybackChooser {
m_commandPool.put((String) pool[i], (Command) pool[i + 1]); m_commandPool.put((String) pool[i], (Command) pool[i + 1]);
} }
for (String auto : m_dir.list()) { appendCommand();
m_playback.addOption(auto, new JoystickPlayback(m_swerve, auto)); m_playback = m_choosers.get(0);
}
m_playback.addOption("No Auto", m_noAuto);
m_choosers.add(m_playback);
SmartDashboard.putData("Command: 0", m_playback); SmartDashboard.putData("Command: 0", m_playback);
} }
@@ -45,21 +41,13 @@ public class PlaybackChooser {
public void appendCommand() { public void appendCommand() {
var chooser = new SendableChooser<Command>(); var chooser = new SendableChooser<Command>();
for (var cmd_name : m_commandPool.keySet()) {
chooser.addOption(cmd_name, m_commandPool.get(cmd_name));
}
m_choosers.add(chooser);
SmartDashboard.putData("Command: " + m_choosers.size(), chooser);
}
// This will be bound to a button for the time being
public void appendPlayback() {
var chooser = new SendableChooser<Command>();
for (String auto : m_dir.list()) { for (String auto : m_dir.list()) {
m_playback.addOption(auto, new JoystickPlayback(m_swerve, auto)); m_playback.addOption(auto, new JoystickPlayback(m_swerve, auto));
} }
for (var cmd_name : m_commandPool.keySet()) {
chooser.addOption(cmd_name, m_commandPool.get(cmd_name));
}
chooser.addOption("No Auto", m_noAuto);
m_choosers.add(chooser); m_choosers.add(chooser);
SmartDashboard.putData("Command: " + m_choosers.size(), chooser); SmartDashboard.putData("Command: " + m_choosers.size(), chooser);
@@ -73,7 +61,7 @@ public class PlaybackChooser {
for (int i = 0; i < m_choosers.size()-1; i++) { for (int i = 0; i < m_choosers.size()-1; i++) {
Command command2 = m_choosers.get(i + 1).getSelected(); Command command2 = m_choosers.get(i + 1).getSelected();
command2 = command2 == null ? m_noAuto : command2.asProxy(); command2 = command2 == null ? m_noAuto : command2.asProxy();
commands[i] = command2.asProxy(); commands[i] = command2.asProxy();
} }