Fri, 17 Feb 2017 13:26:39 +0100
changes to run client on windows platform too via libusb dev
""" Simple CPU load Display On Linux simply run with python analgauge.py & On Windows: Make sure to install libusb-win32-devel-filter-1.2.6.0.exe from here: https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/ Then assign a filter to the connected device matching VENDOR_ID and PRODUCT_ID pythonw.exe analgauge.py """ import usb.core from psutil import cpu_percent from time import sleep from random import random from sys import exit, platform #VALUE_MIN = 0x00 # TODO VALUE_MAX = 0x78 VENDOR_ID = 0x16c0 PRODUCT_ID = 0x05df class AnalGauge: def __init__(self): self.dev = usb.core.find( idVendor = VENDOR_ID, idProduct = PRODUCT_ID ) if not self.dev: print "AnalGauge Device not found!" exit(1) self.dev.set_configuration() def update(self, d): try: data = [int(d)] result = self.dev.ctrl_transfer( 0x21, 0x9, wValue = 0x200, wIndex = 0x00, data_or_wLength = data ) except usb.core.USBError, e: if platform == "linux": self.dev.detach_kernel_driver(0) else: exit(1) print(e) if __name__ == "__main__": g = AnalGauge() #g.update(VALUE_MAX) #exit() #while True: # g.update(random() * VALUE_MAX) # sleep(0.5) while True: pct = cpu_percent(interval=1) g.update((VALUE_MAX * pct)/100)