def reset(self):
     super(BoatRollingAverage, self).reset()
     self.buffer = CircularBuffer(size=self.meters_to_average)
     self.buffer.append(self.other_boat.pace)
     self.pace = BoatRollingAverage.DEFAULT_PACE
     self.current_distance = self.other_boat.distance
     self.next_update_at = self.current_distance
     self.next_update_pace_at = self.current_distance
Beispiel #2
0
 def reset(self):
     super(BoatRollingAverage, self).reset()
     self.buffer = CircularBuffer(size=self.meters_to_average)
     self.buffer.append(self.other_boat.pace)
     self.pace = BoatRollingAverage.DEFAULT_PACE
     self.current_distance = self.other_boat.distance
     self.next_update_at = self.current_distance
     self.next_update_pace_at = self.current_distance
class BoatRollingAverage(BoatConstant):

    DEFAULT_PACE = 220

    def __init__(self,
                 name,
                 other_boat,
                 meters_to_average=500,
                 meters_between_pace_updates=10):
        super(BoatRollingAverage, self).__init__(name)
        self.other_boat = other_boat
        self.meters_to_average = meters_to_average
        self.meters_between_pace_updates = meters_between_pace_updates
        self.reset()

    def reset(self):
        super(BoatRollingAverage, self).reset()
        self.buffer = CircularBuffer(size=self.meters_to_average)
        self.buffer.append(self.other_boat.pace)
        self.pace = BoatRollingAverage.DEFAULT_PACE
        self.current_distance = self.other_boat.distance
        self.next_update_at = self.current_distance
        self.next_update_pace_at = self.current_distance

    def move(self, timeGone):
        # time to record another pace?
        if self.other_boat.distance > self.next_update_at:
            self.next_update_at += 1
            self.buffer.append(self.other_boat.pace)
            log.debug("storing %s for dist %s" %
                      (self.other_boat.pace, self.other_boat.distance))

        # time update this boat's pace to the current rolling average?
        if self.other_boat.distance > self.next_update_pace_at:
            self.next_update_pace_at += self.meters_between_pace_updates
            newPace = int(self.buffer.average + 0.5)
            if newPace != self.pace and newPace != 0:
                log.debug("changing pace to %s" % newPace)
                self.changePace(newPace)

        super(BoatRollingAverage, self).move(timeGone)
Beispiel #4
0
class BoatRollingAverage(BoatConstant):

    DEFAULT_PACE = 220

    def __init__(self, name, other_boat, meters_to_average=500, meters_between_pace_updates=10):
        super(BoatRollingAverage, self).__init__(name)
        self.other_boat = other_boat 
        self.meters_to_average = meters_to_average
        self.meters_between_pace_updates=meters_between_pace_updates
        self.reset()

    def reset(self):
        super(BoatRollingAverage, self).reset()
        self.buffer = CircularBuffer(size=self.meters_to_average)
        self.buffer.append(self.other_boat.pace)
        self.pace = BoatRollingAverage.DEFAULT_PACE
        self.current_distance = self.other_boat.distance
        self.next_update_at = self.current_distance
        self.next_update_pace_at = self.current_distance

    def move(self, timeGone):
        # time to record another pace?
        if self.other_boat.distance > self.next_update_at:
            self.next_update_at += 1
            self.buffer.append(self.other_boat.pace)
            log.debug("storing %s for dist %s"%(self.other_boat.pace, self.other_boat.distance))

        # time update this boat's pace to the current rolling average?
        if self.other_boat.distance > self.next_update_pace_at:
            self.next_update_pace_at += self.meters_between_pace_updates
            newPace = int(self.buffer.average+0.5)
            if newPace != self.pace and newPace != 0:
                log.debug("changing pace to %s"%newPace)
                self.changePace(newPace)

        super(BoatRollingAverage, self).move(timeGone)