|
|
- import clr #package pythonnet, not clr
- import wmi
- import time
-
-
- openhardwaremonitor_hwtypes = ['Mainboard','SuperIO','CPU','RAM','GpuNvidia','GpuAti','TBalancer','Heatmaster','HDD']
- cputhermometer_hwtypes = ['Mainboard','SuperIO','CPU','GpuNvidia','GpuAti','TBalancer','Heatmaster','HDD']
- openhardwaremonitor_sensortypes = ['Voltage','Clock','Temperature','Load','Fan','Flow','Control','Level','Factor','Power','Data','SmallData']
- cputhermometer_sensortypes = ['Voltage','Clock','Temperature','Load','Fan','Flow','Control','Level']
-
-
- def initialize_openhardwaremonitor():
- file = 'OpenHardwareMonitorLib'
- clr.AddReference(file)
-
- from OpenHardwareMonitor import Hardware
-
- handle = Hardware.Computer()
- handle.MainboardEnabled = True
- handle.CPUEnabled = True
- handle.RAMEnabled = True
- handle.GPUEnabled = True
- handle.HDDEnabled = True
- handle.Open()
- return handle
-
- def initialize_cputhermometer():
- file = r'C:\Users\Tednokent01\Downloads\MyCity\traffic_analyzer\CPUThermometerLib'
- clr.FindAssembly(file)
- clr.AddReference(file)
- from CPUThermometer import Hardware
-
- handle = Hardware.Computer()
- handle.CPUEnabled = True
- handle.Open()
- return handle
-
- def fetch_stats(handle):
- for i in handle.Hardware:
- i.Update()
- for sensor in i.Sensors:
- parse_sensor(sensor)
- for j in i.SubHardware:
- j.Update()
- for subsensor in j.Sensors:
- parse_sensor(subsensor)
-
-
- def parse_sensor(sensor):
- if sensor.Value is not None:
- if type(sensor).__module__ == 'CPUThermometer.Hardware':
- sensortypes = cputhermometer_sensortypes
- hardwaretypes = cputhermometer_hwtypes
- elif type(sensor).__module__ == 'OpenHardwareMonitor.Hardware':
- sensortypes = openhardwaremonitor_sensortypes
- hardwaretypes = openhardwaremonitor_hwtypes
- else:
- return
-
- if sensor.SensorType == sensortypes.index('Temperature'):
- print(u"%s %s Temperature Sensor #%i %s - %s\u00B0C" % (hardwaretypes[sensor.Hardware.HardwareType], sensor.Hardware.Name, sensor.Index, sensor.Name, sensor.Value))
-
- if __name__ == "__main__":
- print("OpenHardwareMonitor:")
- start = time.time()
- #HardwareHandle = initialize_openhardwaremonitor()
- #print(time.time() - start)
- #start = time.time()
- #fetch_stats(HardwareHandle)
- print(time.time() - start)
- print("\nCPUMonitor:")
- CPUHandle = initialize_cputhermometer()
- fetch_stats(CPUHandle)
|