def main(): rumble_msecs = 500 parser = argparse.ArgumentParser() parser.add_argument('--debug', action='store_true', default=False) args = parser.parse_args() logger = init_logging(sys.argv[0]) if args.debug: logger.setLevel(logging.DEBUG) logger.info("Searching for device") ent = get_first_wiimote(logger) if not ent: sys.exit(1) dev = get_iface(ent, logger) if not dev: sys.exit(1) logger.info("Initializing controller") c = Device(dev=dev) logger.info("Controller ready (rumbling for {msecs} milliseconds)".format( msecs=rumble_msecs)) c.rumble(rumble_msecs) battery = c.get_battery_level() logger.info("Battery at {lvl}%".format(lvl=battery)) c.read(logger)
def read(self, limits): """Read minimum from one line and <block_size> chars""" Device.read(self, limits) line = self._readLine() if len(line) < self.block_size: line += " " * (self.block_size - len(line)) else: line = line[:self.block_size] bytes = map(Device._ord, line) return bytes
from device import Device from drum import Crash, Snare, HiHat, Bass, HiTom, LowTom, Cymbal crash = Crash() snare = Snare() hihat = HiHat() bass = Bass() hi_tom = HiTom() low_tom = LowTom() cymbal = Cymbal() device = Device() old = None while True: try: data = device.read() if old != data: for index in const.BUTTONS: if data[index]: if index == const.RED_INDEX: snare.shot(data[index]) elif index == const.YELLOW_INDEX: hihat.shot(data[index]) elif index == const.PEDAL_INDEX: bass.shot(data[index]) elif index == const.BLUE_INDEX: low_tom.shot(data[index]) elif index == const.GREEN_INDEX: hi_tom.shot(data[index]) elif index == const.ORANGE_INDEX: cymbal.shot(data[index])