aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
authorArksine <arksine.code@gmail.com>2019-07-03 19:12:44 -0400
committerKevinOConnor <kevin@koconnor.net>2019-07-10 09:57:46 -0400
commitd4d8bf795b8b752b35596ea73d419c2ddba4324f (patch)
treeec127449ec8f61ba90e61a86a2fda51d723937de /klippy
parent856b22b38775496e7b30007490325604d979073b (diff)
downloadkutter-d4d8bf795b8b752b35596ea73d419c2ddba4324f.tar.gz
kutter-d4d8bf795b8b752b35596ea73d419c2ddba4324f.tar.xz
kutter-d4d8bf795b8b752b35596ea73d419c2ddba4324f.zip
filament_switch_sensor: add SET_FILAMENT_SENSOR gcode
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Diffstat (limited to 'klippy')
-rw-r--r--klippy/extras/filament_switch_sensor.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/klippy/extras/filament_switch_sensor.py b/klippy/extras/filament_switch_sensor.py
index 20df5959..a5b189df 100644
--- a/klippy/extras/filament_switch_sensor.py
+++ b/klippy/extras/filament_switch_sensor.py
@@ -75,6 +75,10 @@ class BaseSensor(object):
def cmd_QUERY_FILAMENT_SENSOR(self, params):
raise NotImplementedError(
"Sensor must implement cmd_QUERY_FILAMENT_SENSOR")
+ cmd_SET_FILAMENT_SENSOR_help = "Sets the filament sensor on/off"
+ def cmd_SET_FILAMENT_SENSOR(self, params):
+ raise NotImplementedError(
+ "Sensor must implement cmd_SET_FILAMENT_SENSOR")
class SwitchSensor(BaseSensor):
def __init__(self, config):
@@ -85,12 +89,17 @@ class SwitchSensor(BaseSensor):
self.buttons.register_buttons([switch_pin], self._button_handler)
self.event_delay = config.getfloat('event_delay', 3., above=0.)
self.start_time = self.reactor.NEVER
+ self.sensor_enabled = True
self.last_button_state = False
self.last_cb_event_time = 0.
self.gcode.register_mux_command(
"QUERY_FILAMENT_SENSOR", "SENSOR", self.name,
self.cmd_QUERY_FILAMENT_SENSOR,
desc=self.cmd_QUERY_FILAMENT_SENSOR_help)
+ self.gcode.register_mux_command(
+ "SET_FILAMENT_SENSOR", "SENSOR", self.name,
+ self.cmd_SET_FILAMENT_SENSOR,
+ desc=self.cmd_SET_FILAMENT_SENSOR_help)
self.printer.register_event_handler("klippy:ready", self._handle_ready)
def _handle_ready(self):
self.start_time = self.reactor.monotonic() + 2.
@@ -100,14 +109,14 @@ class SwitchSensor(BaseSensor):
return
if state:
# button pushed, check if insert callback should happen
- if (self.insert_enabled and
+ if (self.insert_enabled and self.sensor_enabled and
(eventtime - self.last_cb_event_time) > self.event_delay):
self.last_cb_event_time = eventtime
logging.info(
"switch_sensor: insert event detected, Time %.2f",
eventtime)
self.reactor.register_callback(self._insert_event_handler)
- elif (self.runout_enabled and
+ elif (self.runout_enabled and self.sensor_enabled and
(eventtime - self.last_cb_event_time) > self.event_delay):
# Filament runout detected
self.last_cb_event_time = eventtime
@@ -121,6 +130,8 @@ class SwitchSensor(BaseSensor):
else:
msg = "Switch Sensor: filament not detected"
self.gcode.respond_info(msg)
+ def cmd_SET_FILAMENT_SENSOR(self, params):
+ self.sensor_enabled = self.gcode.get_int("ENABLE", params, 1)
def load_config_prefix(config):
return SwitchSensor(config)