# See the License for the specific language governing permissions and # limitations under the License. from pypdevs.simulator import Simulator from Tkinter import * from trafficLightModel import * isBlinking = None model = TrafficLight(name="trafficLight") refs = {"INTERRUPT": model.INTERRUPT} root = Tk() sim = Simulator(model) sim.setRealTime(True) sim.setRealTimeInputFile(None) sim.setRealTimePorts(refs) sim.setVerbose(None) sim.setRealTimePlatformTk(root) def toManual(): global isBlinking isBlinking = False sim.realtime_interrupt("INTERRUPT toManual") def toAutonomous(): global isBlinking isBlinking = None sim.realtime_interrupt("INTERRUPT toAutonomous")
# you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from pypdevs.simulator import Simulator from trafficLightModel import * model = TrafficLight(name="trafficLight") refs = {"INTERRUPT": model.INTERRUPT} sim = Simulator(model) sim.setRealTime(True) sim.setRealTimeInputFile(None) sim.setRealTimePorts(refs) sim.setVerbose(None) sim.setRealTimePlatformGameLoop() sim.simulate() import time while 1: before = time.time() sim.realtime_loop_call() time.sleep(0.1 - (before - time.time())) print("Current state: " + str(model.state.get()))
"unknown state <%s> in TrafficLight time advance transition function"\ % state) # ====================================================================== # class TrafficLightSystem(CoupledDEVS): def __init__(self): CoupledDEVS.__init__(self, "System") self.light = self.addSubModel(TrafficLight("Light")) self.observed = self.addOutPort(name="observed") self.connectPorts(self.light.OBSERVED, self.observed) def my_function(event): print("Observed the following event: " + str(event)) from pypdevs.simulator import Simulator model = TrafficLightSystem() sim = Simulator(model) sim.setRealTime() sim.setListenPorts(model.observed, my_function) sim.simulate() import time while 1: time.sleep(0.1)