fan_generic: Add support for named fans and gcode to control them (#3054)
Signed-off-by: Pontus Borg <liquidpontus@yahoo.se>
This commit is contained in:
parent
3eefc037c5
commit
c9e7119a93
|
@ -1224,6 +1224,12 @@
|
||||||
# given id. The default is to not report the temperature via M105.
|
# given id. The default is to not report the temperature via M105.
|
||||||
|
|
||||||
|
|
||||||
|
# Manually controlled fan (one may define any number of sections with a
|
||||||
|
# "fan_generic" prefix). The speed of a manually controlled fan is set with the
|
||||||
|
# SET_FAN_SPEED gcode command.
|
||||||
|
#[fan_generic extruder_partfan]
|
||||||
|
# Options are the same as for the [fan] section
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Additional servos, LEDs, buttons, and other pins
|
# Additional servos, LEDs, buttons, and other pins
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
|
@ -244,6 +244,13 @@ The following command is available when an "output_pin" config section
|
||||||
is enabled:
|
is enabled:
|
||||||
- `SET_PIN PIN=config_name VALUE=<value>`
|
- `SET_PIN PIN=config_name VALUE=<value>`
|
||||||
|
|
||||||
|
## Manually Controlled Fans Commands
|
||||||
|
|
||||||
|
The following command is available when a "fan_generic" config section
|
||||||
|
is enabled:
|
||||||
|
- `SET_FAN_SPEED FAN=config_name SPEED=<speed>` This command sets
|
||||||
|
the speed of a fan. <speed> must be between 0.0 and 1.0.
|
||||||
|
|
||||||
## Neopixel and Dotstar Commands
|
## Neopixel and Dotstar Commands
|
||||||
|
|
||||||
The following command is available when "neopixel" or "dotstar" config
|
The following command is available when "neopixel" or "dotstar" config
|
||||||
|
|
|
@ -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)
|
Loading…
Reference in New Issue