Skip to content

Commit 596d374

Browse files
committed
Try another way to remove the segfault.
1 parent 8a067ee commit 596d374

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

octoprint_filamentsensorng/__init__.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ def initialize(self):
1818
if GPIO.VERSION < "0.6": # Need at least 0.6 for edge detection
1919
raise Exception("RPi.GPIO must be greater than 0.6")
2020
GPIO.setwarnings(False) # Disable GPIO warnings
21-
self.filamentsensorngPlugin_confirmations_tracking = 0
21+
self.confirmations_tracking = 0
22+
self.turn_off_tracking = False
2223

2324
@property
2425
def pin(self):
@@ -126,7 +127,7 @@ def on_event(self, event, payload):
126127
Events.ERROR
127128
):
128129
self._logger.info("%s: Disabling filament sensor." % (event))
129-
GPIO.remove_event_detect(self.pin)
130+
self.turn_off_tracking = True
130131

131132
@octoprint.plugin.BlueprintPlugin.route("/status", methods=["GET"])
132133
def check_status(self):
@@ -139,19 +140,21 @@ def sensor_callback(self, _):
139140
sleep(self.poll_time/1000)
140141
self.debug_only_output('Pin: '+str(GPIO.input(self.pin)))
141142
if self.no_filament():
142-
self.filamentsensorngPlugin_confirmations_tracking+=1
143-
self.debug_only_output('Confirmations: '+str(self.filamentsensorngPlugin_confirmations_tracking))
144-
if self.confirmations<=self.filamentsensorngPlugin_confirmations_tracking:
143+
self.confirmations_tracking+=1
144+
self.debug_only_output('Confirmations: '+str(self.confirmations_tracking))
145+
if self.confirmations<=self.confirmations_tracking:
145146
self._logger.info("Out of filament!")
146147
if self.pause_print:
147148
self._logger.info("Pausing print.")
148149
self._printer.pause_print()
150+
self.turn_off_tracking = False
151+
GPIO.remove_event_detect(self.pin)
149152
if self.no_filament_gcode:
150153
self._logger.info("Sending out of filament GCODE")
151154
self._printer.commands(self.no_filament_gcode)
152-
self.filamentsensorngPlugin_confirmations_tracking = 0
155+
self.confirmations_tracking = 0
153156
else:
154-
self.filamentsensorngPlugin_confirmations_tracking = 0
157+
self.confirmations_tracking = 0
155158

156159
def get_update_information(self):
157160
return dict(

0 commit comments

Comments
 (0)