feat: handle remove of target properly

This commit is contained in:
2020-08-28 11:41:05 +02:00
parent dfa26e9ca6
commit 4d63e621c9

View File

@@ -51,10 +51,11 @@ class WallE:
self.servo_positions[channel] = min_max.restval
def tick(self):
remove = {}
for channel, target in self.servo_targets.items():
current_value = self.servo_positions[channel]
if target == current_value:
del self.servo_targets[channel]
remove[channel] = target
continue
try:
servo_min_max = SERVO_MIN_MAX[channel]
@@ -65,6 +66,9 @@ class WallE:
new_val = current_value + step_size if target > current_value else current_value - step_size
self.servo_controller.write(channel, new_val)
self.servo_positions[channel] = new_val
for channel, target in remove.items():
if self.servo_targets[channel] == target:
del self.servo_targets[channel]
def set_servo(self, channel, value):
try: