parent
2e1fa110de
commit
a893f47604
@ -291,6 +291,22 @@ class Printer:
|
||||
return self.devices[dev][stat]
|
||||
return None
|
||||
|
||||
def get_fan_speed(self, fan="fan", speed=None):
|
||||
if fan not in self.config:
|
||||
logging.debug("Error getting %s config", fan)
|
||||
return speed if speed is not None else 0
|
||||
if speed is None and "speed" in self.data[fan]:
|
||||
speed = self.data[fan]["speed"]
|
||||
if 'max_power' in self.config[fan]:
|
||||
max_power = float(self.config[fan]['max_power'])
|
||||
if max_power > 0:
|
||||
speed = speed / max_power
|
||||
if 'off_below' in self.config[fan]:
|
||||
off_below = float(self.config[fan]['off_below'])
|
||||
if speed < off_below:
|
||||
speed = 0
|
||||
return speed
|
||||
|
||||
def get_extruder_count(self):
|
||||
return self.extrudercount
|
||||
|
||||
|
@ -46,7 +46,7 @@ class FanPanel(ScreenPanel):
|
||||
|
||||
for fan in self.devices:
|
||||
if fan in data and "speed" in data[fan]:
|
||||
self.update_fan_speed(fan, data[fan]["speed"])
|
||||
self.update_fan_speed(fan, self._printer.get_fan_speed(fan, data[fan]["speed"]))
|
||||
|
||||
def update_fan_speed(self, fan, speed):
|
||||
if fan not in self.devices:
|
||||
@ -74,10 +74,7 @@ class FanPanel(ScreenPanel):
|
||||
frame.set_property("shadow-type", Gtk.ShadowType.NONE)
|
||||
frame.get_style_context().add_class("frame-item")
|
||||
|
||||
try:
|
||||
self.fan_speed[fan] = float(self._printer.get_data()[fan]["speed"])
|
||||
except Exception:
|
||||
self.fan_speed[fan] = 0
|
||||
self.fan_speed[fan] = float(self._printer.get_fan_speed(fan))
|
||||
|
||||
name = Gtk.Label()
|
||||
if fan == "fan":
|
||||
@ -155,3 +152,9 @@ class FanPanel(ScreenPanel):
|
||||
else:
|
||||
f = " ".join(fan.split(" ")[1:])
|
||||
self._screen._ws.klippy.gcode_script("SET_FAN_SPEED FAN=%s SPEED=%s" % (f, float(value)/100))
|
||||
# Check the speed in case it wasn't applied
|
||||
GLib.timeout_add_seconds(1, self.check_fan_speed, fan)
|
||||
|
||||
def check_fan_speed(self, fan):
|
||||
self.update_fan_speed(fan, self._printer.get_fan_speed(fan))
|
||||
return False
|
||||
|
@ -404,7 +404,7 @@ class JobStatusPanel(ScreenPanel):
|
||||
self.labels['speed'].set_text("%3d%%" % self.speed)
|
||||
|
||||
if "fan" in data and "speed" in data['fan']:
|
||||
self.fan = int(round(data['fan']['speed'], 2)*100)
|
||||
self.fan = int(round(self._printer.get_fan_speed("fan", data['fan']['speed']), 2)*100)
|
||||
self.labels['fan'].set_text("%3d%%" % self.fan)
|
||||
|
||||
self.state_check()
|
||||
|
Loading…
x
Reference in New Issue
Block a user