![]() |
pass a value to a command.
I have a command that spins the robot x degrees from current gyro heading. I can use a smartdashboard.getnumber when I'm in teleop. I would like to use this command not referencing the smartdashboard in autonomous passing unique x degrees at different steps. When I add a double to one of the the addsequential(new command(90)) it asked me to add a parameter to the command. I said yes and use this not the smartdashboard.get. I then add a value to each ...(new command(#)). After hours of test and debugging I found the each of the commands reacts as the last ...(new command(#)).
I hope the rambling makes sense. I can try and post some sample code when I'm back to the development pc. |
Re: pass a value to a command.
Inside of the command you will probably see a constructor at the top (a constructor is a method with the same name as the command). The constructor should have 1 int parameter. Create a new global variable, and in the constructor assign the parameter to the global variable. Then replace SmartDashboard.get with the global variable.
|
Re: pass a value to a command.
Is what I had:
Code:
public class DriveSpinInPlace extends Command {If I have: Code:
addSequential(new DriveSpinInPlace(90))Am I declaring the correct type of variable? |
Re: pass a value to a command.
Quote:
What static does is that it basically means the variable will have the same value for every command that you create. And because of the way that CommandGroups work (basically, it will call the constructor of every single command the moment it is created), the last value that you set will be the value that stays in your spin variable for the entire execution. |
Re: pass a value to a command.
Thank you I'll give it a go. The Static was added automatically.
|
Re: pass a value to a command.
That worked thanks. But you knew that already didn't you?
|
| All times are GMT -5. The time now is 01:39. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi