Skip to content

Commit 2081d21

Browse files
committed
mods not ok
1 parent aa15ba8 commit 2081d21

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

arduino_alvik/arduino_alvik.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ def __init__(self):
7070
self._last_ack = ''
7171
self._version = [None, None, None]
7272
self._touch_events = _ArduinoAlvikTouchEvents()
73+
self._time_skip = ticks_ms()
74+
self._TIMEOUT = 0
7375

7476
@staticmethod
7577
def is_on() -> bool:
@@ -246,14 +248,17 @@ def is_target_reached(self) -> bool:
246248
It also responds with an ack received message
247249
:return:
248250
"""
249-
if self._last_ack != ord('M') and self._last_ack != ord('R'):
250-
sleep_ms(50)
251-
return False
252-
else:
253-
# self._packeter.packetC1B(ord('X'), ord('K'))
254-
# uart.write(self._packeter.msg[0:self._packeter.msg_size])
255-
sleep_ms(200)
256-
return True
251+
if ticks_diff(ticks_ms(), self._time_skip) > self._TIMEOUT:
252+
253+
if self._last_ack != ord('M') and self._last_ack != ord('R'):
254+
sleep_ms(50)
255+
return False
256+
else:
257+
# self._packeter.packetC1B(ord('X'), ord('K'))
258+
# uart.write(self._packeter.msg[0:self._packeter.msg_size])
259+
sleep_ms(200)
260+
return True
261+
return False
257262

258263
def set_behaviour(self, behaviour: int):
259264
"""
@@ -274,9 +279,11 @@ def rotate(self, angle: float, unit: str = 'deg', blocking: bool = True):
274279
"""
275280
angle = convert_angle(angle, unit, 'deg')
276281
sleep_ms(200)
282+
self._time_skip = ticks_ms()
277283
self._packeter.packetC1F(ord('R'), angle)
278284
uart.write(self._packeter.msg[0:self._packeter.msg_size])
279285
if blocking:
286+
self._TIMEOUT = (angle/MOTOR_CONTROL_DEG_S)*1.05
280287
self._wait_for_target(timeout=(angle/MOTOR_CONTROL_DEG_S)*1.05)
281288

282289
def move(self, distance: float, unit: str = 'cm', blocking: bool = True):
@@ -289,9 +296,11 @@ def move(self, distance: float, unit: str = 'cm', blocking: bool = True):
289296
"""
290297
distance = convert_distance(distance, unit, 'mm')
291298
sleep_ms(200)
299+
self._time_skip = ticks_ms()
292300
self._packeter.packetC1F(ord('G'), distance)
293301
uart.write(self._packeter.msg[0:self._packeter.msg_size])
294302
if blocking:
303+
self._TIMEOUT = (distance/MOTOR_CONTROL_MM_S)*1.05
295304
self._wait_for_target(timeout=(distance/MOTOR_CONTROL_MM_S)*1.05)
296305

297306
def stop(self):

0 commit comments

Comments
 (0)