View Single Post
  #2   Spotlight this post!  
Unread 24-01-2016, 18:08
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,043
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: Running different functions at the same time?

There are a number of ways of dealing with this in python. Threads are one of them -- but I generally recommend avoiding threads in robot programming, as it's too easy to get it wrong and there are other ways of doing it that work just as well for many (but not all) problems.

The traditional way of dealing with this sort of thing is through logical constructs referred to as state machines. The idea is to execute the same piece over and over again (but not in a loop),

Code:
if self.state == 0:
    do_something()
    if condition_is_true:
        self.state = 1 # this advances to the next stage

elif self.state == 1:
    do_something_else..
Logically, this is the same as your for loop if the "condition_is_true" is checking to see if some count is 100 or not, and you incremented the count each time.

Another way of dealing with this that's unique to python is by using generators (the Yeti framework that team 4819 has does this), but it's more of an advanced topic.
__________________
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
Reply With Quote