Why doesn't the SmartDashboard update?

Hi,

I am trying use the autonomous selector part of the Smartdashboard with this code in the init:


        self.auto_chooser=wpilib.SendableChooser()
        self.auto_chooser.addObject("High Goal, Low Bar", "1")
        self.auto_chooser.addDefault("Crosser Low Bar", "2")
        self.auto_chooser.addObject("Reacher", "3")
        self.auto_chooser.addObject("Crosser RT", "4")
        wpilib.SmartDashboard.putData('Choice', self.auto_chooser)

The problem is that it never actually shows up. I use the connector indicator icon and it shows that it is indeed connected but my options never show up. Is there something else I should be doing? I have tried just doing


wpilib.SmartDashboard.putNumber("Something", 3)

and that doesn’t show either when connected. Any ideas or suggestions are welcome! Thanks!

We are a java team. Here is our code that does multiple autos

public void robotInit() {
		
		updateDashboard();
		
    	autoChooser = new SendableChooser();
    	autoChooser.addDefault("Default Autonomous does nothing!", new Default());
    	// Default Autonomous does nothing
    	autoChooser.addObject("Cross the Low Bar Don't Run This it doesn't work", new LowBar());
    	autoChooser.addObject("Cross Rough Patch/Stone Wall", new Main());
    	autoChooser.addObject("Cross the Low Bar, Experimental!", new LowBarEx());
    	//autoChooser.addObject("If Jonathan lied to us and we can cross twice", new RoughPatch());
    	CameraServer server = CameraServer.getInstance();

    	server.setQuality(50);
    	
    	SmartDashboard.putData("Autonomous", autoChooser);
}

Try opening a new dashboard/recompiling/running teleop for a bit

I can now found that I can do the normal “wpilib.SmartDashboard.putNumber” stuff, but the sendable chooser still refuses to work. I tried starting new dashboard, but the variables keep coming back from our old robot. I have even deleted the save file and somehow it stills finds it way back onto the dashboard.

robotpy has an autonomous selector class that you can point at a directory of .py files and it’ll setup a chooser that should work with SmartDashboard.

If you still want to roll your own, check out how it does it: https://github.com/robotpy/robotpy-wpilib-utilities/blob/master/robotpy_ext/autonomous/selector.py#L151. Your code looks correct though, maybe there’s something else missing…

Additionally, with the latest version of pyfrc (as of a month ago or so?), there’s an integrated chooser built into the simulator, using the key ‘/SmartDashboard/Autonomous Mode’. Run this sample for a cool demo of that working: https://github.com/robotpy/robotpy-wpilib-utilities/tree/master/samples/stateful_autonomous

Go to:
C:\Users[Name]\SmartDashboard

Find save.xml and make a back up copy

Replace it with the clean copy of save.xml and see if that gets your old variables from popping up

save.zip (213 Bytes)


save.zip (213 Bytes)