Skip to content

Commit f83bb31

Browse files
committed
fix bug
1 parent 2095d3f commit f83bb31

File tree

2 files changed

+50
-18
lines changed

2 files changed

+50
-18
lines changed

pymycobot/Interface.py

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# coding=utf-8
2+
from re import I
23
from pymycobot.common import ProtocolCode
34
from pymycobot.generate import MyCobotCommandGenerator
45

@@ -136,8 +137,8 @@ def set_fresh_mode(self, id, mode):
136137
Args:
137138
id: 1/2 (L/R).\n
138139
mode: int
139-
0 - Always execute the latest command first.
140-
1 - Execute instructions sequentially in the form of a queue.
140+
1 - Always execute the latest command first.
141+
0 - Execute instructions sequentially in the form of a queue.
141142
"""
142143
return self._mesg(ProtocolCode.SET_FRESH_MODE, id, mode)
143144

@@ -157,7 +158,8 @@ def is_free_mode(self, id):
157158
id: 0/1/2/3 (ALL/L/R/W)
158159
159160
Return:
160-
0/1
161+
0 - No
162+
1 - Yes
161163
"""
162164
return self._process_single(
163165
self._mesg(ProtocolCode.IS_FREE_MODE, id, has_reply=True)
@@ -293,12 +295,12 @@ def stop(self, id):
293295
"""
294296
return self._mesg(ProtocolCode.STOP, id)
295297

296-
def is_in_position(self, id, data, mode): # TODO 通信协议可能有问题,待完善
298+
def is_in_position(self, id, data: list, mode): # TODO 通信协议可能有问题,待完善
297299
"""Judge whether in the position.
298300
299301
Args:
300302
id: 0/1/2/3 (ALL/L/R/W).
301-
data: A data list, angles or coords. If id is 1/2. data length is 6. If id is 0. data len 13. if id is 3. data len 1
303+
data: A data list, angles or coords. If id is 1/2. data length is 6. If id is 0. data len 13 (data==[[left_angles/left_coords],[right_angles/right_coords],[waist_angle/waist_coord]]). if id is 3. data len 1
302304
mode: 1 - coords, 0 - angles
303305
304306
@@ -307,20 +309,45 @@ def is_in_position(self, id, data, mode): # TODO 通信协议可能有问题,
307309
0 - False
308310
-1 - Error
309311
"""
312+
# TODO 22-8-2 need test
313+
data_list = []
310314
if mode == 1:
311-
# self.calibration_parameters(coords=data)
312-
data_list = []
313-
for idx in range(3):
314-
data_list.append(self._coord2int(data[idx]))
315-
for idx in range(3, 6):
316-
data_list.append(self._angle2int(data[idx]))
315+
if len(data) == 3:
316+
for i in data:
317+
# if isinstance(i, list):
318+
if len(i) == 6:
319+
for idx in range(3):
320+
data_list.append(self._coord2int(i[idx]))
321+
for idx in range(3, 6):
322+
data_list.append(self._angle2int(i[idx]))
323+
elif len(i) == 1:
324+
data_list.append(self._coord2int(i[0]))
325+
elif len(data) == 6:
326+
for idx in range(3):
327+
data_list.append(self._coord2int(data[idx]))
328+
for idx in range(3, 6):
329+
data_list.append(self._angle2int(data[idx]))
330+
elif len(data) == 1:
331+
data_list.append(self._coord2int(data[0]))
317332
elif mode == 0:
318333
# self.calibration_parameters(degrees=data)
319-
data_list = [self._angle2int(i) for i in data]
334+
if len(data) == 3:
335+
for i in data:
336+
# if isinstance(i, list):
337+
if len(i) == 6:
338+
for idx in range(6):
339+
data_list.append(self._angle2int(i[idx]))
340+
elif len(i) == 1:
341+
data_list.append(self._angle2int(i[0]))
342+
elif len(data) == 6:
343+
for idx in range(6):
344+
data_list.append(self._angle2int(data[idx]))
345+
elif len(data) == 1:
346+
data_list.append(self._angle2int(data[0]))
320347
else:
321348
raise Exception("id is not right, please input 0 or 1")
322349

323-
return self._mesg(ProtocolCode.IS_IN_POSITION, data_list, id, has_reply=True)
350+
return self._mesg(ProtocolCode.IS_IN_POSITION, id, data_list, mode, has_reply=True)
324351

325352
def is_moving(self, id):
326353
"""Detect if the robot is moving
@@ -462,7 +489,7 @@ def get_acceleration(self, id):
462489
return self._mesg(ProtocolCode.GET_ACCELERATION, id, has_reply=True)
463490

464491
def set_acceleration(self, id, acc):
465-
"""Read acceleration during all moves
492+
"""Set acceleration during all moves
466493
467494
Args:
468495
id: 1/2/3 (L/R/W)
@@ -865,7 +892,7 @@ def get_plan_acceleration(self, id = 0):
865892
id: 0/1/2/3 (ALL/L/R/W)
866893
867894
Return:
868-
[movel planning acceleration, movej planning acceleration].
895+
acceleration value.
869896
"""
870897
return self._mesg(ProtocolCode.GET_PLAN_ACCELERATION, id, has_reply=True)
871898

@@ -1038,7 +1065,12 @@ def collision_switch(self, state):
10381065
return self._mesg(ProtocolCode.COLLISION_SWITCH, state)
10391066

10401067
def is_collision_on(self):
1041-
"""Get collision detection status"""
1068+
"""Get collision detection status
1069+
1070+
Args:
1071+
0 - close
1072+
1 - open
1073+
"""
10421074
return self._mesg(ProtocolCode.IS_COLLISION_ON, 0, has_reply = True)
10431075

10441076

pymycobot/mybuddy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,8 @@ def set_gpio_output(self, pin, v):
235235
"""
236236
self.gpio.output(pin, v)
237237

238-
def set_gpio_input(self, pin):
239-
"""Set GPIO input value.
238+
def get_gpio_input(self, pin):
239+
"""Get GPIO input value.
240240
241241
Args:
242242
pin: (int)pin number.

0 commit comments

Comments
 (0)