View Single Post
  #4   Spotlight this post!  
Unread 08-03-2016, 16:28
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,086
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: Timing, threads, the Field Management System, etc

Regarding while loops:
Code:
while (2+2==4) {
    System.out.println("I am still in autonomous");
}
If you're ever watching a match, and a Java/C++ team moves/does something in autonomous, but doesn't do anything during teleop... most of the time it's because they have a while loop checking for some condition that didn't occur that they thought would occur.

While loops are evil in robot code. Prefer not to use them (with a very few limited exceptions).

Threads are also evil (once again, with exceptions) in robot code and when used improperly can lead to difficult to diagnose bugs, prefer asynchronous constructs such as state machines instead.
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff