def cli(): def doit(dev): kbd = passive(dev, 20) sys.stdout.write('temp: %d' % kbd.get_temperature()) picross.enumerate(0xbeca, 0x0101, picross.make_string_functor(doit)) picross.enumerate(0x2139, 0x0101, picross.make_string_functor(doit))
def main(): def doit(dev): kbd = pico_native.passive(dev, 500) kbd.start() kbd.wait() for k in range(0, 22): kbd.set_ledcolour(k, 0) if len(sys.argv) == 3: kbd.set_ledcolour(int(sys.argv[1]) - 1, colours[sys.argv[2]]) print['%x' % ord(x) for x in kbd.debug()] picross.exit(0) cyc = [0x20, 0x08, 0x28, 0] for k in range(0, 1000): kbd.set_ledcolour((k - 0) % 22, cyc[0]) kbd.set_ledcolour((k - 1) % 22, cyc[1]) kbd.set_ledcolour((k - 2) % 22, cyc[2]) kbd.set_ledcolour((k - 3) % 22, cyc[3]) time.sleep(0.5) picross.enumerate(0xbeca, 0x0101, picross.make_string_functor(doit)) picross.enumerate(0x2139, 0x0101, picross.make_string_functor(doit))
def __init__(self,address, ordinal): agent.Agent.__init__(self,signature=version,names='pico manager',protocols='has_subsys',ordinal=ordinal) self.domain = piw.clockdomain_ctl() self.domain.set_source(piw.makestring('*', 0L)) self.load_enumerator = picross.enumerator(ezload.vendor,ezload.product,picross.make_string_functor(self.download_keyboard)) self.load_enumerator2 = picross.enumerator(ezload.new_vendor,ezload.new_product,picross.make_string_functor(self.download_keyboard)) self.add_enumerator = picross.enumerator(0x2139,0x0101,picross.make_string_functor(utils.make_locked_callable(self.add_keyboard)))
def main(): def bs_doit(s): print 'downloading base station MM firmware to',s download(s, bs_firmware()) def psu_doit(s): print 'downloading PSU MM firmware to',s download(s, psu_firmware()) picross.enumerate(vendor,bs_product,picross.make_string_functor(bs_doit)) picross.enumerate(vendor,psu_product,picross.make_string_functor(psu_doit))
def cli(): if len(sys.argv) != 2: print >> sys.stderr, 'usage: writecal filename' sys.exit(1) filename = sys.argv[1] def doit(dev): k = passive(dev, 20) file = open(filename).readlines() download(file, k) picross.enumerate(0xbeca, 0x0101, picross.make_string_functor(doit)) picross.enumerate(0x2139, 0x0101, picross.make_string_functor(doit))
def __init__(self, address, ordinal): agent.Agent.__init__(self, signature=version, names='alpha manager', protocols='has_subsys', ordinal=ordinal) self.domain = piw.clockdomain_ctl() self.domain.set_source(piw.makestring('*', 0L)) self.__thing = piw.thing() piw.tsd_thing(self.__thing) self.__thing.set_slow_dequeue_handler(utils.changify(self.__dequeue)) self.__base = dict() self.__enum = [] lsf = lambda c: picross.make_string_functor( utils.make_locked_callable(c)) self.__enum.append( picross.enumerator(0xbeca, 0x0102, lsf(self.add_alpha2keyboard))) self.__enum.append( picross.enumerator(0xbeca, 0x0103, lsf(self.add_taukeyboard))) self.__enum.append( picross.enumerator(0x2139, 0x0002, lsf(self.download_base_station))) self.__enum.append( picross.enumerator(0x2139, 0x0003, lsf(self.download_psu))) self.__enum.append( picross.enumerator(0x2139, 0x0104, lsf(self.add_base_station), lsf(self.del_base_station))) self.__enum.append( picross.enumerator(0x2139, 0x0105, lsf(self.add_base_station), lsf(self.del_base_station)))
def detect(self): self.__init__() f = picross.make_string_functor(self.__detect_instrument) self.__mm_bases = picross.enumerate(0x2139, 0x0104, f) self.__em_bases = picross.enumerate(0x2139, 0x0002, f) self.__psus = picross.enumerate(0x2139, 0x0003, f) self.__legacy_alphas = picross.enumerate(0xbeca, 0x0102, picross.f_string())
def cli(): def doit(dev): kbd = passive(dev, 20) for k in range(0, 18): for c in range(0, 4): sys.stdout.write('%d %d ' % (k, c)) sys.stdout.flush() kbd.start_calibration_row(k, c) kbd.read_calibration_row() mn = kbd.get_calibration_min() mx = kbd.get_calibration_max() pts = [kbd.get_calibration_point(p) for p in range(0, 30)] sys.stdout.write('%d %d %s\n' % (mn, mx, ' '.join(map(str, pts)))) sys.stdout.flush() picross.enumerate(0xbeca, 0x0101, picross.make_string_functor(doit)) picross.enumerate(0x2139, 0x0101, picross.make_string_functor(doit))
def main(): parser = optparse.OptionParser(usage=sys.argv[0] + ' [options]') parser.add_option('--req', action='store', type='int', dest='req', default=0xc0, help='request') parser.add_option('--val', action='store', type='int', dest='val', default=0, help='value') parser.add_option('--idx', action='store', type='int', dest='idx', default=0, help='index') parser.add_option('--len', action='store', type='int', dest='len', default=0, help='number of bytes to return') (opts, args) = parser.parse_args(sys.argv) def query(s): print 'querying', s ez = picross.usbdevice(s, 0) if opts.len > 0: r = ez.control_in(0x40 | 0x80, opts.req, opts.val, opts.idx, opts.len) print ' '.join(['%x' % ord(x) for x in r]) else: ez.control(0x40, opts.req, opts.val, opts.idx) picross.enumerate(0xbeca, 0x0101, picross.make_string_functor(query)) picross.enumerate(0x2139, 0x0101, picross.make_string_functor(query))
def main(): if len(sys.argv) < 2: code = firmware(vendor, product) else: code = sys.argv[1] def doit(s): print 'downloading to', s download(s, code) picross.enumerate(vendor, product, picross.make_string_functor(doit))
def stringify(c): if c is None: return picross.f_string() if not isinstance(c,picross.f_string): c = picross.make_string_functor(c) return c