diff --git a/octoprint_filamentreload/__init__.py b/octoprint_filamentreload/__init__.py index 5fa7f2e..f805012 100644 --- a/octoprint_filamentreload/__init__.py +++ b/octoprint_filamentreload/__init__.py @@ -42,6 +42,10 @@ def no_filament_gcode(self): def pause_print(self): return self._settings.get_boolean(["pause_print"]) + @property + def send_gcode_only_once(self): + return self._settings.get_boolean(["send_gcode_only_once"]) + def _setup_sensor(self): if self.sensor_enabled(): self._logger.info("Setting up sensor.") @@ -68,6 +72,7 @@ def get_settings_defaults(self): mode = 0, # Board Mode no_filament_gcode = '', pause_print = True, + send_gcode_only_once = False, # Default set to False for backward compatibility ) def on_settings_save(self, data): @@ -116,6 +121,9 @@ def sensor_callback(self, _): sleep(self.bounce/1000) if self.no_filament(): self._logger.info("Out of filament!") + if self.send_gcode_only_once: + self._logger.info("Sending GCODE only once...removing filament sensor callback.") + GPIO.remove_event_detect(self.pin) if self.pause_print: self._logger.info("Pausing print.") self._printer.pause_print() diff --git a/octoprint_filamentreload/templates/filamentreload_settings.jinja2 b/octoprint_filamentreload/templates/filamentreload_settings.jinja2 index 12f8152..35bdaf7 100644 --- a/octoprint_filamentreload/templates/filamentreload_settings.jinja2 +++ b/octoprint_filamentreload/templates/filamentreload_settings.jinja2 @@ -44,4 +44,12 @@ +