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 7267a6e..681eb91 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,7 +10,10 @@ cpus = [] mid_freq = 0 max_freq = 0 +#Start the fan above this temperature MAX_TEMP=60000 +#Cool additionally this far past MAX_TEMP before turning the fan off +TEMP_THRESH=2000 ONCE_TIME=30 lastTemp = 0 @@ -86,9 +89,11 @@ def set_performance(scale): def fan_loop(): global lastTemp + statechange = False while True: temps = glob.glob('/sys/class/thermal/thermal_zone[0-9]/') temps.sort() + statechange = False for var in temps: _f = os.path.join(var,"temp") #print( open(_f).read().strip("\n") ) @@ -98,13 +103,17 @@ def fan_loop(): if lastTemp <= MAX_TEMP: sys.stderr.write("Temp: " + str(_t) + " Fan on.\n") fan_on() + statechange = True else: #Don't turn it off right at the threshold - if int(_t) + 2000 < MAX_TEMP: - if lastTemp + 2000 >= MAX_TEMP: + if int(_t) + TEMP_THRESH < MAX_TEMP: + if lastTemp + TEMP_THRESH >= MAX_TEMP: sys.stderr.write("Temp: " + str(_t) + " Fan off.\n") fan_off() - lastTemp = int(_t) + statechange = True + lastTemp = int(_t) + if statechange: + break time.sleep(5) def main(argv):