Ejemplo n.º 1
0
    def timeslice(self, time):
        Node.timeslice(self,time)

        ev = self.event_available('IN',time)
        if ev:
            newstate = int(not ev.state)
            ev.set_processed()
        else:
            newstate = int(not self.in_port_states['IN'])

        if self.out_port_states['OUT'] != newstate:
            self.send_state_change('OUT',newstate, time)

        self.timeslice_updatestates(time)
Ejemplo n.º 2
0
    def timeslice(self, time):
        timepass = time - self.lastslice
        lastslice = self.lastslice
        Node.timeslice(self, time)

        if self.state is None:
            self.state = self.initstate
            self.send_state_change('CLK', self.state, time)
        else:
            period = self.period
            while (timepass):
                period = period - 1
                timepass = timepass - 1
                if period == 0:
                    self.state = int(not self.state)
                    self.send_state_change('CLK', self.state, lastslice + (time - timepass))
                    period = self.initperiod

            self.period = period
Ejemplo n.º 3
0
    def timeslice(self, time):
        Node.timeslice(self, time)

        A = self.in_port_states['A']
        B = self.in_port_states['B']

        aevent = self.event_available('A',time)
        bevent = self.event_available('B',time)
        if aevent:
            aevent.set_processed()
            A = aevent.state
        if self.in_events.has_key('B'):
            bevent.set_processed()
            B = bevent.state

        result = self.operator(A, B)
        if result != self.lastout:
            self.lastout = result
            self.send_state_change('OUT', result, time)

        self.timeslice_updatestates(time)
Ejemplo n.º 4
0
    def timeslice(self, time):
        Node.timeslice(self, time)

        for node in self.contents:
            node.timeslice(time)