Updated wk.hw.sensors

* Added monitor_to_file()
* Added save_average_temps()
This commit is contained in:
2Shirt 2019-11-11 23:22:47 -07:00
parent 4ecdc80e4c
commit e3d0902c45
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C

View file

@ -10,7 +10,7 @@ from subprocess import CalledProcessError
from wk.cfg.hw import CPU_THERMAL_LIMIT, SMC_IDS, TEMP_COLORS
from wk.exe import run_program
from wk.std import color_string
from wk.std import color_string, sleep
# STATIC VARIABLES
@ -77,6 +77,32 @@ class Sensors():
# Done
return report
def monitor_to_file(self, path):
"""Write report to path every second until stopped."""
while True:
self.update_sensor_data()
report = self.generate_report('Current', 'Max')
with open(path, 'w') as _f:
_f.write('\n'.join(report))
sleep(1)
def save_average_temps(self, temp_label, seconds=10):
# pylint: disable=unused-variable
"""Save average temps under temp_label over provided seconds.."""
self.clear_temps()
# Get temps
for i in range(seconds):
self.update_sensor_data()
sleep(1)
# Calculate averages
for adapters in self.data.values():
for sources in adapters.values():
for source_data in sources.values():
temps = source_data['Temps']
source_data[temp_label] = sum(temps) / len(temps)
def update_sensor_data(self, exit_on_thermal_limit=True):
"""Update sensor data via OS-specific means."""
if platform.system() == 'Darwin':