File: TriggerEvent.py

package info (click to toggle)
cain 1.10%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 29,856 kB
  • sloc: cpp: 49,612; python: 14,988; xml: 11,654; ansic: 3,644; makefile: 133; sh: 2
file content (25 lines) | stat: -rw-r--r-- 874 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""Implements the TriggerEvent class."""

from Event import Event
from math import *

class TriggerEvent(Event):

    def __init__(self, model, assignmentString, triggerExpression, delay,
                 useValuesFromTriggerTime):
        Event.__init__(self, model, assignmentString)
        self.triggerExpression = triggerExpression
        self.delay = delay
        self.useValuesFromTriggerTime = useValuesFromTriggerTime
        
    def initialize(self):
        Event.initialize(self)
        e = self.model.decorateExceptTime(self.triggerExpression)
        self.trigger = lambda m, t: eval(e)
        self.value = self.trigger(self.model, self.model.time)

    def evaluate(self, time):
        oldValue = self.value
        self.value = self.trigger(self.model, time)
        # Return True if the trigger became true.
        return not oldValue and self.value