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 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 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 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 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 probe_alpha(): f = picross.f_string() mm_bases = picross.enumerate(0x2139,0x0102,f) em_bases = picross.enumerate(0x2139,0x0002,f) legacy_alphas = picross.enumerate(0xbeca,0x0102,f) return mm_bases!=0 or em_bases!=0 or legacy_alphas!=0