At regionals does fms enable autonomous then disable disable autonomous? So that if you had an autonomous 20 secs long only 15 secs of it will execute, or will the whole thing execute and you would get a penalty?
Nope. FMS just tells your program “Hey, your teleop now!”. Your program doesn’t need to respond in any way. Your robot could be fully autonomous if you really wanted to.
So if the autonomous was 20 secs only 15 would be executed then.
No. Autonomous (at least in Java) will run until it is finished. There is no way a method’s execution can be “stopped”.
Would just like to point out that if you’re using the Command-based template there is a line in the RobotMain class under TeleopInit() that cancels the autonomous command. If you want it to keep running, delete that line.
If you’re using the Iterative template as it’s intended (meaning periodic() doesn’t hang), then your autonomous mode code will be automatically stopped when you leave autonomous mode. In the Command-based setup, since the Scheduler handles running everything, you have to make sure you cancel any Commands if you don’t want them to keep running (the default template does this). SimpleRobot gives absolute control, and it makes it your responsibility as the programmer to check for the current mode and exit when necessary.
Well, if you really wanted to design it this way, then you could have things running in threads, then interrupt them, or set a boolean and have them return. That was part of my team’s architecture last year.