Override toggle() in PWMOutputDevice, and add reverse() to Motor and
Robot
This commit is contained in:
Dave Jones
2015-10-26 21:23:03 +00:00
parent 010f1fd65c
commit 2a1ed11535
2 changed files with 27 additions and 0 deletions

View File

@@ -347,6 +347,16 @@ class Robot(SourceMixin, CompositeDevice):
self._left.forward(speed)
self._right.backward(speed)
def reverse(self):
"""
Reverse the robot's current motor directions. If the robot is currently
running full speed forward, it will run full speed backward. If the
roboto is turning left at half-speed, it will turn right at half-speed.
If the robot is currently stopped it will remain stopped.
"""
self._left.value = -self._left.value
self._right.value = -self._right.value
def stop(self):
"""
Stop the robot.

View File

@@ -255,6 +255,15 @@ class PWMOutputDevice(DigitalOutputDevice):
self._stop_blink()
self._write(value)
def toggle(self):
"""
Toggle the state of the device. If the device is currently off
(`value` is 0.0), this changes it to "fully" on (`value` is 1.0). If
the device has a duty cycle (`value`) of 0.1, this will toggle it to
0.9, and so on.
"""
self.value = 1.0 - self.value
@property
def is_active(self):
"""
@@ -414,6 +423,14 @@ class Motor(SourceMixin, CompositeDevice):
self._forward.off()
self._backward.value = speed
def reverse(self):
"""
Reverse the current direction of the motor. If the motor is currently
idle this does nothing. Otherwise, the motor's direction will be
reversed at the current speed.
"""
self.value = -self.value
def stop(self):
"""
Stop the motor