Merge pull request #4 from mik-at/patch-1

Add macOS compatibiltiy
pull/1/head
Jürgen Weigert 6 years ago committed by GitHub
commit c6c0e9f870
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 47
      led-badge-11x44.py

@ -23,7 +23,10 @@
import sys, os, re, time, argparse
from array import array
import usb.core
if sys.platform == "darwin":
import pyhidapi
else:
import usb.core
__version = "0.6"
@ -335,16 +338,30 @@ parser.add_argument('--mode-help', action='version', help=argparse.SUPPRESS, ver
(No "rotation" or "smothering"(?) effect can be expected, though)
""" % sys.argv[0])
args = parser.parse_args()
dev = usb.core.find(idVendor=0x0416, idProduct=0x5020)
if dev is None:
print("No led tag with vendorID 0x0416 and productID 0x5020 found.")
print("Connect the led tag and run this tool as root.")
sys.exit(1)
if dev.is_kernel_driver_active(0):
dev.detach_kernel_driver(0)
dev.set_configuration()
print("using [%s %s] bus=%d dev=%d" % (dev.manufacturer, dev.product, dev.bus, dev.address))
if sys.platform == "darwin":
pyhidapi.hid_init()
devinfo = pyhidapi.hid_enumerate(0x0416, 0x5020)
#dev = pyhidapi.hid_open(0x0416, 0x5020)
else:
dev = usb.core.find(idVendor=0x0416, idProduct=0x5020)
if sys.platform == "darwin":
if devinfo:
dev = pyhidapi.hid_open_path(devinfo[0].path)
print("using [%s %s] int=%d page=%s via HIDAPI" % (devinfo[0].manufacturer_string, devinfo[0].product_string, devinfo[0].interface_number, devinfo[0].usage_page))
else:
print("No led tag with vendorID 0x0416 and productID 0x5020 found.")
print("Connect the led tag and run this tool as root.")
sys.exit(1)
else:
if dev is None:
print("No led tag with vendorID 0x0416 and productID 0x5020 found.")
print("Connect the led tag and run this tool as root.")
sys.exit(1)
if dev.is_kernel_driver_active(0):
dev.detach_kernel_driver(0)
dev.set_configuration()
print("using [%s %s] bus=%d dev=%d" % (dev.manufacturer, dev.product, dev.bus, dev.address))
if args.preload:
for file in args.preload:
@ -371,5 +388,11 @@ if needpadding:
# print(buf)
for i in range(int(len(buf)/64)):
time.sleep(0.1)
dev.write(1, buf[i*64:i*64+64])
if sys.platform == "darwin":
pyhidapi.hid_write(dev, buf[i*64:i*64+64])
else:
dev.write(1, buf[i*64:i*64+64])
if sys.platform == "darwin":
pyhidapi.hid_close(dev)

Loading…
Cancel
Save