fan: Support calling set_speed() without a print_time

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2024-09-21 15:42:26 -04:00
parent 1c0adb9af8
commit f4143af4fa
4 changed files with 9 additions and 13 deletions

View file

@ -46,7 +46,7 @@ class TemperatureFan:
self.cmd_SET_TEMPERATURE_FAN_TARGET,
desc=self.cmd_SET_TEMPERATURE_FAN_TARGET_help)
def set_speed(self, read_time, value):
def set_tf_speed(self, read_time, value):
if value <= 0.:
value = 0.
elif value < self.min_speed:
@ -60,7 +60,7 @@ class TemperatureFan:
speed_time = read_time + self.speed_delay
self.next_speed_time = speed_time + 0.75 * MAX_FAN_TIME
self.last_speed_value = value
self.fan.set_speed(speed_time, value)
self.fan.set_speed(value, speed_time)
def temperature_callback(self, read_time, temp):
self.last_temp = temp
self.control.temperature_callback(read_time, temp)
@ -128,10 +128,10 @@ class ControlBangBang:
and temp <= target_temp-self.max_delta):
self.heating = True
if self.heating:
self.temperature_fan.set_speed(read_time, 0.)
self.temperature_fan.set_tf_speed(read_time, 0.)
else:
self.temperature_fan.set_speed(read_time,
self.temperature_fan.get_max_speed())
self.temperature_fan.set_tf_speed(
read_time, self.temperature_fan.get_max_speed())
######################################################################
# Proportional Integral Derivative (PID) control algo
@ -171,7 +171,7 @@ class ControlPID:
# Calculate output
co = self.Kp*temp_err + self.Ki*temp_integ - self.Kd*temp_deriv
bounded_co = max(0., min(self.temperature_fan.get_max_speed(), co))
self.temperature_fan.set_speed(
self.temperature_fan.set_tf_speed(
read_time, max(self.temperature_fan.get_min_speed(),
self.temperature_fan.get_max_speed() - bounded_co))
# Store state for next measurement