@@ -129,6 +129,16 @@ def _mesg(self, genre, *args, **kwargs):
129129 return [self ._int2coord (angle ) for angle in res ]
130130 elif genre in [ProtocolCode .GET_JOINT_MAX_ANGLE , ProtocolCode .GET_JOINT_MIN_ANGLE ]:
131131 return self ._int2coord (res [0 ])
132+ elif genre == ProtocolCode .GET_ANGLES_COORDS :
133+ r = []
134+ for index in range (len (res )):
135+ if index < 7 :
136+ r .append (self ._int2angle (res [index ]))
137+ elif index < 10 :
138+ r .append (self ._int2coord (res [index ]))
139+ else :
140+ r .append (self ._int2angle (res [index ]))
141+ return r
132142 else :
133143 return res
134144 return None
@@ -234,15 +244,15 @@ def release_all_servos(self, data=None):
234244 else :
235245 return self ._mesg (ProtocolCode .RELEASE_ALL_SERVOS , data )
236246
237- def get_transpoendr_mode (self ):
247+ def get_transponder_mode (self ):
238248 """Obtain the configuration information of serial transmission mode
239249
240250 Return:
241251 mode: 0 - 1 - 2
242252 """
243253 return self ._mesg (ProtocolCode .SET_SSID_PWD , has_reply = True )
244254
245- def set_transpoendr_mode (self , mode ):
255+ def set_transponder_mode (self , mode ):
246256 """Set serial port transmission mode
247257
248258 Args:
@@ -267,4 +277,34 @@ def set_color(self, r, g, b):
267277 g: Green
268278 b: Blue
269279 """
270- return self ._mesg (ProtocolCode .SET_COLOR_MYARM , r , g , b )
280+ return self ._mesg (ProtocolCode .SET_COLOR_MYARM , r , g , b )
281+
282+ def is_in_position (self , data , id = 0 ):
283+ """Judge whether in the position. (mypalletizer 340 does not have this interface)
284+
285+ Args:
286+ data: A data list, angles or coords.
287+ for mycobot: len 6.
288+ for mypalletizer: len 4
289+ id: 1 - coords, 0 - angles
290+
291+ Return:
292+ 1 - True\n
293+ 0 - False\n
294+ -1 - Error
295+ """
296+ if id == 1 :
297+ # self.calibration_parameters(coords=data)
298+ data_list = []
299+ for idx in range (3 ):
300+ data_list .append (self ._coord2int (data [idx ]))
301+ for idx in range (3 , 6 ):
302+ data_list .append (self ._angle2int (data [idx ]))
303+ elif id == 0 :
304+ # self.calibration_parameters(degrees=data)
305+ data_list = [self ._angle2int (i ) for i in data ]
306+ else :
307+ raise Exception ("id is not right, please input 0 or 1" )
308+ return self ._mesg (ProtocolCode .IS_IN_POSITION , id , data_list , has_reply = True )
309+
310+
0 commit comments