|
|
@ -0,0 +1,73 @@ |
|
|
|
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) |