Esempio n. 1
0
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