示例#1
0
class ModeManager(object):

    def __init__(self, *args, **kwargs):
        self.bb = BlinkyTape('/dev/ttyACM0')

    def render(self, colors):
        self.bb.send_list(colors)

    def run_mode(self, mode):
        while True:
            start = time.time()
            mode.calc_next_step()
            self.render(mode.get_colors())
            if not mode.no_sleep:
                time.sleep(1.0/mode.fps)
            diff = time.time() - start
            sys.stdout.write("%.02f fps                    \r" % (1.0/diff))
示例#2
0
class ModeManager(object):
    def __init__(self, device='/dev/ttyACM0', *args, **kwargs):
        self.bb = BlinkyTape(device)

    def render(self, colors):
        self.bb.send_list(colors)

    def run_mode(self, mode):
        while True:
            start = time.time()
            mode.calc_next_step()
            self.render(mode.get_colors())
            if not mode.no_sleep:
                renderTime = time.time() - start
                sleepTime = 1.0 / mode.fps - renderTime
                if sleepTime >= 0.0:
                    time.sleep(sleepTime)
            diff = time.time() - start
            sys.stdout.write("%.02f fps                    \r" % (1.0 / diff))
示例#3
0
def display():
    current_red_led_count=0
    leds = getLedColourList(current_red_led_count)

    if not TEST:
        bb = BlinkyTape('/dev/ttyACM0')

    logging.info('Starting thread')
    while True:
        red_led_count = calculateRedLeds(statuses)

        # do stuff
        if (current_red_led_count != red_led_count):
            current_red_led_count = red_led_count
            logging.info('Change to number of red lights: %s', current_red_led_count)
            logging.debug('statuses: %s', statuses)
            leds = getLedColourList(current_red_led_count)
        else:
            animate(leds)
        if not TEST:
            bb.send_list(leds)
        time.sleep(0.1)