From d119b30d562f67f977537ee7895f7fbce72c3479 Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Fri, 10 Jun 2022 00:30:30 +0000 Subject: [PATCH] New fan_loop function which starts the fan when the temperature reaches the threshold and doesn't stop it until the temperatue is a bit lower than the threshold. Also lowered the threshold a bit. --- .../temp_fan_daemon_a06.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Code/devterm_fan_daemon_cpi_a06/temp_fan_daemon_a06.py b/Code/devterm_fan_daemon_cpi_a06/temp_fan_daemon_a06.py index f84af2a..7267a6e 100755 --- a/Code/devterm_fan_daemon_cpi_a06/temp_fan_daemon_a06.py +++ b/Code/devterm_fan_daemon_cpi_a06/temp_fan_daemon_a06.py @@ -10,9 +10,11 @@ cpus = [] mid_freq = 0 max_freq = 0 -MAX_TEMP=70000 +MAX_TEMP=60000 ONCE_TIME=30 +lastTemp = 0 + gpiopath="/sys/class/gpio" gpiopin=96 def init_fan_gpio(): @@ -82,8 +84,8 @@ def set_performance(scale): #print(_f) subprocess.run( "echo %s | sudo tee %s" %(freq,_f),shell=True) - def fan_loop(): + global lastTemp while True: temps = glob.glob('/sys/class/thermal/thermal_zone[0-9]/') temps.sort() @@ -93,12 +95,18 @@ def fan_loop(): _t = open(_f).read().strip("\n") if isDigit(_t): if int(_t) > MAX_TEMP: + if lastTemp <= MAX_TEMP: + sys.stderr.write("Temp: " + str(_t) + " Fan on.\n") fan_on() - fan_off() - + else: + #Don't turn it off right at the threshold + if int(_t) + 2000 < MAX_TEMP: + if lastTemp + 2000 >= MAX_TEMP: + sys.stderr.write("Temp: " + str(_t) + " Fan off.\n") + fan_off() + lastTemp = int(_t) time.sleep(5) - def main(argv): global cpus scale = 'mid'