def button_handler(self, event): """Button action handler. Currently differentiates between exit, rc, rainbow and other buttons only""" logger.debug("%s button pressed", event.label) if event.label is "RC": logger.info("launching RC challenge") new_challenge = RC(timeout=self.timeout, screen=self.screen, joystick=self.joystick) return new_challenge elif event.label is "Rainbow": logger.info("launching Rainbow challenge") new_challenge = Rainbow(timeout=self.timeout, screen=self.screen, joystick=self.joystick) return new_challenge elif event.label is "Maze": logger.info("launching Maze challenge") new_challenge = Maze(timeout=self.timeout, screen=self.screen, joystick=self.joystick, markers = self.markers) return new_challenge elif event.label is "Speed": logger.info("launching Speed challenge") new_challenge = StraightLineSpeed(timeout=self.timeout, screen=self.screen, joystick=self.joystick, markers = self.markers) return new_challenge elif event.label == "Pi Noon": logger.info("launching Pi Noon challenge") new_challenge = PiNoon(timeout=self.timeout, screen=self.screen, joystick=self.joystick) return new_challenge elif event.label is "Exit": logger.info("Exit button pressed. Exiting now.") return "Exit" else: logger.info("unsupported button selected (%s)", event.label) return "Other"
def thread_body(queue): pixels = NeoPixel(DATA_PIN, N_PIXELS, brightness=BRIGHTNESS, auto_write=False) updates = {'RAINBOW': Rainbow(pixels), 'ANT': Ant(pixels), 'OCD': Ocd(pixels), 'FLASH': Flash(pixels), 'IMPLODE': Implode(pixels), 'ERROR': Error(pixels), 'QUIT': Quit(pixels)} assert set(updates.keys()) == MODES mode = "OCD" while True: try: new_mode = queue.get_nowait() assert new_mode in MODES, "unknown mode %s" % mode if new_mode != mode: updates[new_mode].setup() mode = new_mode except: pass sleep = updates[mode].exec_update() if mode == "QUIT": break time.sleep(sleep)
def renderBestMatches(self, fileName, weighted=False): """make an image of where best matches lie set weighted to use a heatmap view of where they map """ img_points = np.zeros((self.weights.rows,self.weights.columns)) try: img = Image.new("RGB", (self.weights.columns, self.weights.rows)) if(weighted): # color points by bestmatch density max = 0 for point in self.bestMatchCoords: img_points[point[0],point[1]] += 1 if(max < img_points[point[0],point[1]]): max = img_points[point[0],point[1]] max += 1 resolution = 200 if(max < resolution): resolution = max - 1 max = self.transColour(max) rainbow = Rainbow(0, max, resolution, "gbr") for point in self.bestMatchCoords: img.putpixel((point[1],point[0]), rainbow.getColour(self.transColour(img_points[point[0],point[1]]))) else: # make all best match points white for point in self.bestMatchCoords: img.putpixel((point[1],point[0]), (255,255,255)) img = img.resize((self.weights.columns*10, self.weights.rows*10),Image.NEAREST) img.save(fileName) except: print sys.exc_info()[0] raise
def loadScripts(self, dir): import sys sys.path.insert(0, "./scripts") from Script import Script s = Script(self, "test") from loading import Loading l = Loading(self.segments[0]) self.scripts.append(l) from TheaterChase import TheaterChase t = TheaterChase(self.segments[0]) self.scripts.append(t) from rainbow import Rainbow r = Rainbow(self.segments[0]) self.scripts.append(r) from LeftToRightRandom import LeftToRightRandom lr = LeftToRightRandom(self.segments[0]) self.scripts.append(lr) from RandomLed import RandomLed r = RandomLed(self.segments[0]) self.scripts.append(r) from Light import Light self.scripts.append(Light(self.segments[0])) from Test import Test self.scripts.append(Test(self.segments[0])) from Cycle import Cycle self.scripts.append(Cycle(self.segments[0])) from SingleColor import SingleColor self.scripts.append(SingleColor(self.segments[0]))
def create_rainbow(ai_settings, screen, rainbows, rainbow_number, row_number): rainbow = Rainbow(ai_settings, screen) rainbow_width = rainbow.rect.width rainbow.x = rainbow_width + 2 * rainbow_width * rainbow_number rainbow.rect.x = rainbow.x rainbow.rect.y = rainbow.rect.height + 2 * rainbow.rect.height * row_number rainbows.add(rainbow)
def start(self): self.rainbow = Rainbow(self.app.ipcon) self.update_frame_rate() self.update_step() self.rainbow.frame_rendered(0)
def create_fleet(ai_settings, screen, unicorn, rainbows): rainbow = Rainbow(ai_settings, screen) number_rainbows_x = get_number_rainbows_x(ai_settings, rainbow.rect.width) number_rows = get_number_rows(ai_settings, unicorn.rect.height, rainbow.rect.height) for row_number in range(number_rows): for rainbow_number in range(number_rainbows_x): create_rainbow(ai_settings, screen, rainbows, rainbow_number, row_number)
def main(): # Setup flags parser = argparse.ArgumentParser(description='Bridge Contentful and Hugo') parser.add_argument('store-id') parser.add_argument('access-token') parser.add_argument('content-directory') args = vars(parser.parse_args()) rainbow = Rainbow(args['store-id'], args['access-token'], args['content-directory']) rainbow.save_posts()
def run(pattern): patterns = [] for r, p in enumerate(pattern): patterns.append( Pattern(pattern=p[0], fgcolor=p[1], style=p[3], bgcolor=p[2], rank=r)) r = Rainbow(patterns) for line in sys.stdin: line = r.process_line(line) print(line, end='')
devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()] if len(devices) == 0: print('No input devices are found. Waiting for next detection') time.sleep(1) for device in devices: key = 0 print(device.fn, device.name, device.phys) if 'keyboard' in device.name.lower(): print('Keyboard device {} is found.'.format(device.name)) else: print('Waiting for keyboard device') time.sleep(1) continue device = evdev.InputDevice(device.fn) rainbow = Rainbow() for event in device.read_loop(): print('type={}, code={}, value={}'.format(event.type, event.code, event.value)) if event.type == evdev.ecodes.EV_KEY: if event.value != 2: key = event.code evdev_code = evdev.ecodes.KEY[key] modkey_element = keymap.modkey(evdev_code) if modkey_element > 0: if event.value == 1: modkey[modkey_element] = 1 else: modkey[modkey_element] = 0 continue
from matrix import Matrix from power import Power from weird1 import Weird1 from weird2 import Weird2 from weird3 import Weird3 from flash import Flash from lighthouse import Lighthouse lenx = 7 leny = 21 strip2D = Strip2D(lenx, leny) effects = [ [Police1(strip2D), 3], [Rainbow(strip2D), 10], [Police2(strip2D), 3], [Bump1(strip2D), 3], [Police3(strip2D), 3], [Lemmings1(strip2D), 10], [CMorph(strip2D), 7], [Plasma(strip2D), 30], [Fire(strip2D), 30], [Fire2(strip2D), 30], [Night(strip2D), 30], [Fade1(strip2D), 3], [Fade2(strip2D), 3], [Stars1(strip2D), 15], [Stars2(strip2D), 10], [Hourglass(strip2D), 30], [Matrix(strip2D), 20],