aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
diff options
context:
space:
mode:
Diffstat (limited to 'klippy/extras')
-rw-r--r--klippy/extras/fan_generic.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/klippy/extras/fan_generic.py b/klippy/extras/fan_generic.py
new file mode 100644
index 00000000..def9a77e
--- /dev/null
+++ b/klippy/extras/fan_generic.py
@@ -0,0 +1,28 @@
+# Support fans that are controlled by gcode
+#
+# Copyright (C) 2016-2020 Kevin O'Connor <kevin@koconnor.net>
+#
+# This file may be distributed under the terms of the GNU GPLv3 license.
+from . import fan
+
+class PrinterFanGeneric:
+ cmd_SET_FAN_SPEED_help = "Sets the speed of a fan"
+ def __init__(self, config):
+ self.printer = config.get_printer()
+ self.fan = fan.Fan(config, default_shutdown_speed=0.)
+ self.fan_name = config.get_name().split()[-1]
+
+ gcode = self.printer.lookup_object("gcode")
+ gcode.register_mux_command("SET_FAN_SPEED", "FAN",
+ self.fan_name,
+ self.cmd_SET_FAN_SPEED,
+ desc=self.cmd_SET_FAN_SPEED_help)
+
+ def get_status(self, eventtime):
+ return self.fan.get_status(eventtime)
+ def cmd_SET_FAN_SPEED(self, gcmd):
+ speed = gcmd.get_float('SPEED', 0.)
+ self.fan.set_speed_from_command(speed)
+
+def load_config_prefix(config):
+ return PrinterFanGeneric(config)