Skip to content

Commit d09af7a

Browse files
committed
Disable source when directly controlling DigitalOutputDevice, close gpiozero#200
1 parent eaa6016 commit d09af7a

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

gpiozero/output_devices.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,14 +142,17 @@ def value(self, value):
142142

143143
def close(self):
144144
self._stop_blink()
145+
self._stop_source()
145146
super(DigitalOutputDevice, self).close()
146147

147148
def on(self):
148149
self._stop_blink()
150+
self._stop_source()
149151
self._write(True)
150152

151153
def off(self):
152154
self._stop_blink()
155+
self._stop_source()
153156
self._write(False)
154157

155158
def blink(self, on_time=1, off_time=1, n=None, background=True):
@@ -172,6 +175,7 @@ def blink(self, on_time=1, off_time=1, n=None, background=True):
172175
this method never returning).
173176
"""
174177
self._stop_blink()
178+
self._stop_source()
175179
self._blink_thread = GPIOThread(
176180
target=self._blink_device, args=(on_time, off_time, n)
177181
)
@@ -180,6 +184,10 @@ def blink(self, on_time=1, off_time=1, n=None, background=True):
180184
self._blink_thread.join()
181185
self._blink_thread = None
182186

187+
def _stop_source(self):
188+
if self.source is not None:
189+
self.source = None
190+
183191
def _stop_blink(self):
184192
if self._controller:
185193
self._controller._stop_blink(self)
@@ -1207,4 +1215,3 @@ def angle(self, value):
12071215
self._value_range *
12081216
((value - self._min_angle) / self._angular_range) +
12091217
self._min_value)
1210-

0 commit comments

Comments
 (0)