data conversion refactoring
This commit is contained in:
parent
f3dbe5f3c2
commit
f1ab2b29bd
27
g203-led.py
27
g203-led.py
|
@ -9,6 +9,7 @@ import sys
|
||||||
import usb.core
|
import usb.core
|
||||||
import usb.util
|
import usb.util
|
||||||
import re
|
import re
|
||||||
|
import binascii
|
||||||
|
|
||||||
g203_vendor_id = 0x046d
|
g203_vendor_id = 0x046d
|
||||||
g203_product_id = 0xc084
|
g203_product_id = 0xc084
|
||||||
|
@ -18,7 +19,7 @@ default_brightness = 100
|
||||||
|
|
||||||
|
|
||||||
dev = None
|
dev = None
|
||||||
intf = None
|
wIndex = None
|
||||||
|
|
||||||
|
|
||||||
def help():
|
def help():
|
||||||
|
@ -101,37 +102,37 @@ def set_led_cycle(rate, brightness):
|
||||||
|
|
||||||
def set_led(mode, data):
|
def set_led(mode, data):
|
||||||
global dev
|
global dev
|
||||||
|
global wIndex
|
||||||
|
|
||||||
prefix = '11ff0e3b00'
|
prefix = '11ff0e3b00'
|
||||||
suffix = '000000000000'
|
suffix = '000000000000'
|
||||||
data = prefix + mode + data + suffix
|
data = prefix + mode + data + suffix
|
||||||
data = [ int(''.join([data[i], data[i+1]]), base=16) for i in range(0, len(data), 2)]
|
|
||||||
|
|
||||||
attach_mouse()
|
attach_mouse()
|
||||||
dev.ctrl_transfer(0x21, 0x09, 0x0211, 0x01, data)
|
dev.ctrl_transfer(0x21, 0x09, 0x0211, wIndex, binascii.unhexlify(data))
|
||||||
detach_mouse()
|
detach_mouse()
|
||||||
|
|
||||||
|
|
||||||
def attach_mouse():
|
def attach_mouse():
|
||||||
global dev
|
global dev
|
||||||
global intf
|
global wIndex
|
||||||
dev = usb.core.find(idVendor=g203_vendor_id, idProduct=g203_product_id)
|
dev = usb.core.find(idVendor=g203_vendor_id, idProduct=g203_product_id)
|
||||||
if dev is None:
|
if dev is None:
|
||||||
print_error('Device {:04x}:{:04x} not found.'.format(g203_vendor_id, g203_product_id))
|
print_error('Device {:04x}:{:04x} not found.'.format(g203_vendor_id, g203_product_id))
|
||||||
intf = 1
|
wIndex = 0x01
|
||||||
if dev.is_kernel_driver_active(intf) is True:
|
if dev.is_kernel_driver_active(wIndex) is True:
|
||||||
dev.detach_kernel_driver(intf)
|
dev.detach_kernel_driver(wIndex)
|
||||||
usb.util.claim_interface(dev, intf)
|
usb.util.claim_interface(dev, wIndex)
|
||||||
|
|
||||||
|
|
||||||
def detach_mouse():
|
def detach_mouse():
|
||||||
global dev
|
global dev
|
||||||
global intf
|
global wIndex
|
||||||
if intf is not None:
|
if wIndex is not None:
|
||||||
usb.util.release_interface(dev, intf)
|
usb.util.release_interface(dev, wIndex)
|
||||||
dev.attach_kernel_driver(intf)
|
dev.attach_kernel_driver(wIndex)
|
||||||
dev = None
|
dev = None
|
||||||
intf = None
|
wIndex = None
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Reference in New Issue
Block a user