2 Copyright (C) 1997-2017 JDERobot Developers Team 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2 of the License, or 7 (at your option) any later version. 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU Library General Public License for more details. 14 You should have received a copy of the GNU General Public License 15 along with this program; if not, see <http://www.gnu.org/licenses/>. 17 Authors : Okan Asik (asik.okan@gmail.com) 20 from threading
import Thread
24 def __init__(self, id, initial, cycleDuration, parent=None, gui=None):
43 if self.
parent is not None:
44 self.parent.addState(self)
49 if self.
gui is not None:
50 self.gui.emitRunningStateById(self.
id)
58 self.currentState.init()
65 self.currentState = state
67 self.states.append(state)
68 self.statesById[state.id] = state
71 self.transitions.append(tran)
84 if self.
parent is not None:
85 if self.parent.getRunningChild() == self:
90 if initState
and runState:
91 self.currentState.init()
96 for tran
in self.currentState.transitions:
97 if tran.checkCondition():
100 self.currentState.init()
105 self.currentState.runCode()
110 elapsedTime = (finishTime - startTime)/1000
115 time.sleep(elapsedTime / 1000)
122 return time.time() * 1000000
131 if self.parent.getRunningChild() == self:
def addTransition(self, tran)
def __init__(self, id, initial, cycleDuration, parent=None, gui=None)
def addState(self, state)
def getRunningChild(self)