class BlinkFader(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.blink = Blink() self.blink.rgb(0,0,0,1) self.daemon = True self.queue = Queue.Queue() self.history = [] self.killed = False def run(self): while not self.killed: while not self.queue.empty(): (r,g,b) = self.queue.get() self.blink.rgb(r,g,b, 1000) self.history.append((r,g,b)) sleep(6) # self.blink.rgb(0, 0, 0, 1000) # sleep(2.5) self.addHistoryToQueue() def addHistoryToQueue(self): for (r,g,b) in self.history: self.add(r,g,b) sleep(.1) def add(self, r, g, b): self.queue.put((r,g,b)) def clear(self): while not self.queue.empty(): self.queue.get() del self.history[0:len(self.history)] self.blink.off() def kill(self): self.killed = True