Merge pull request #42 from dirkhillbrecht/fixhidapi

Fix HID API sending path through pyhidapi
rebase020124
Jürgen Weigert 11 months ago committed by GitHub
commit 0767ec6250
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      led-badge-11x44.py

@ -459,6 +459,7 @@ parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpForm
epilog='Example combining image and text:\n sudo %s "I:HEART2:you"' % sys.argv[0])
parser.add_argument('-t', '--type', default='11x44',
help="Type of display: supported values are 12x48 or (default) 11x44. Rename the program to led-badge-12x48, to switch the default.")
parser.add_argument('-H', '--hid', default='0', help="Set to 1 to ensure connect via HID API, program will then not fallback to usb.core library")
parser.add_argument('-s', '--speed', default='4', help="Scroll speed (Range 1..8). Up to 8 comma-separated values")
parser.add_argument('-B', '--brightness', default='100',
help="Brightness for the display in percent: 25, 50, 75, or 100")
@ -498,6 +499,8 @@ if have_pyhidapi:
devinfo = pyhidapi.hid_enumerate(0x0416, 0x5020)
# dev = pyhidapi.hid_open(0x0416, 0x5020)
else:
if args.hid != "0":
sys.exit("HID API access is needed but not initialized. Fix your setup")
dev = usb.core.find(idVendor=0x0416, idProduct=0x5020)
if have_pyhidapi:
@ -563,7 +566,12 @@ if len(buf) > 8192:
sys.exit(1)
if have_pyhidapi:
pyhidapi.hid_write(dev, buf)
for i in range(int(len(buf)/64)):
# sendbuf must contain "report ID" as first byte. "0" does the job here.
sendbuf=array('B',[0])
# Then, put the 64 payload bytes into the buffer
sendbuf.extend(buf[i*64:i*64+64])
pyhidapi.hid_write(dev,sendbuf)
else:
for i in range(int(len(buf) / 64)):
time.sleep(0.1)

Loading…
Cancel
Save