parent
2e1fa110de
commit
a893f47604
@ -291,6 +291,22 @@ class Printer:
|
|||||||
return self.devices[dev][stat]
|
return self.devices[dev][stat]
|
||||||
return None
|
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):
|
def get_extruder_count(self):
|
||||||
return self.extrudercount
|
return self.extrudercount
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ class FanPanel(ScreenPanel):
|
|||||||
|
|
||||||
for fan in self.devices:
|
for fan in self.devices:
|
||||||
if fan in data and "speed" in data[fan]:
|
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):
|
def update_fan_speed(self, fan, speed):
|
||||||
if fan not in self.devices:
|
if fan not in self.devices:
|
||||||
@ -74,10 +74,7 @@ class FanPanel(ScreenPanel):
|
|||||||
frame.set_property("shadow-type", Gtk.ShadowType.NONE)
|
frame.set_property("shadow-type", Gtk.ShadowType.NONE)
|
||||||
frame.get_style_context().add_class("frame-item")
|
frame.get_style_context().add_class("frame-item")
|
||||||
|
|
||||||
try:
|
self.fan_speed[fan] = float(self._printer.get_fan_speed(fan))
|
||||||
self.fan_speed[fan] = float(self._printer.get_data()[fan]["speed"])
|
|
||||||
except Exception:
|
|
||||||
self.fan_speed[fan] = 0
|
|
||||||
|
|
||||||
name = Gtk.Label()
|
name = Gtk.Label()
|
||||||
if fan == "fan":
|
if fan == "fan":
|
||||||
@ -155,3 +152,9 @@ class FanPanel(ScreenPanel):
|
|||||||
else:
|
else:
|
||||||
f = " ".join(fan.split(" ")[1:])
|
f = " ".join(fan.split(" ")[1:])
|
||||||
self._screen._ws.klippy.gcode_script("SET_FAN_SPEED FAN=%s SPEED=%s" % (f, float(value)/100))
|
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)
|
self.labels['speed'].set_text("%3d%%" % self.speed)
|
||||||
|
|
||||||
if "fan" in data and "speed" in data['fan']:
|
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.labels['fan'].set_text("%3d%%" % self.fan)
|
||||||
|
|
||||||
self.state_check()
|
self.state_check()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user