@@ -4083,8 +4083,7 @@ def get_c37_error_info(self, is_radian=None):
40834083 ret = self ._arm .get_common_info (102 , return_val = False )
40844084 if ret [0 ] == 0 and len (ret ) > 1 and len (ret [1 ]) > 1 :
40854085 is_rad = self ._is_radian if is_radian is None else is_radian
4086- if not is_rad :
4087- ret [1 ][1 ] = ret [1 ][1 ] if is_rad else math .degrees (ret [1 ][1 ])
4086+ ret [1 ][1 ] = ret [1 ][1 ] if is_rad else math .degrees (ret [1 ][1 ])
40884087 return ret
40894088
40904089 def get_c23_error_info (self , is_radian = None ):
@@ -4095,13 +4094,18 @@ def get_c23_error_info(self, is_radian=None):
40954094
40964095 :return: tuple((code, err_info)), only when code is 0, the returned result is correct.
40974096 code: See the [API Code Documentation](./xarm_api_code.md#api-code) for details.
4098- err_info: [servo_id, angle]
4097+ err_info: [( servo_id, angle), ... ]
40994098 """
41004099 ret = self ._arm .get_common_info (103 , return_val = False )
41014100 if ret [0 ] == 0 and len (ret ) > 1 and len (ret [1 ]) > 1 :
41024101 is_rad = self ._is_radian if is_radian is None else is_radian
4103- if not is_rad :
4104- ret [1 ][1 ] = ret [1 ][1 ] if is_rad else math .degrees (ret [1 ][1 ])
4102+ err_info = []
4103+ bits = ret [1 ][0 ]
4104+ for i in range (self .axis ):
4105+ if (bits >> i ) & 0x01 :
4106+ err_info .append ((i + 1 , ret [1 ][i + 1 ] if is_rad else math .degrees (ret [1 ][i + 1 ])))
4107+ return 0 , err_info
4108+ # ret[1][1] = ret[1][1] if is_rad else math.degrees(ret[1][1])
41054109 return ret
41064110
41074111 def get_c24_error_info (self , is_radian = None ):
@@ -4117,8 +4121,7 @@ def get_c24_error_info(self, is_radian=None):
41174121 ret = self ._arm .get_common_info (104 , return_val = False )
41184122 if ret [0 ] == 0 and len (ret ) > 1 and len (ret [1 ]) > 1 :
41194123 is_rad = self ._is_radian if is_radian is None else is_radian
4120- if not is_rad :
4121- ret [1 ][1 ] = ret [1 ][1 ] if is_rad else math .degrees (ret [1 ][1 ])
4124+ ret [1 ][1 ] = ret [1 ][1 ] if is_rad else math .degrees (ret [1 ][1 ])
41224125 return ret
41234126
41244127 def get_c60_error_info (self ):
@@ -4142,11 +4145,16 @@ def get_c38_error_info(self, is_radian=None):
41424145
41434146 :return: tuple((code, err_info)), only when code is 0, the returned result is correct.
41444147 code: See the [API Code Documentation](./xarm_api_code.md#api-code) for details.
4145- err_info: [servo_id, angle]
4148+ err_info: [( servo_id, angle), ... ]
41464149 """
41474150 ret = self ._arm .get_common_info (106 , return_val = False )
41484151 if ret [0 ] == 0 and len (ret ) > 1 and len (ret [1 ]) > 1 :
41494152 is_rad = self ._is_radian if is_radian is None else is_radian
4150- if not is_rad :
4151- ret [1 ][1 ] = ret [1 ][1 ] if is_rad else math .degrees (ret [1 ][1 ])
4153+ err_info = []
4154+ bits = ret [1 ][0 ]
4155+ for i in range (self .axis ):
4156+ if (bits >> i ) & 0x01 :
4157+ err_info .append ((i + 1 , ret [1 ][i + 1 ] if is_rad else math .degrees (ret [1 ][i + 1 ])))
4158+ return 0 , err_info
4159+ # ret[1][1] = ret[1][1] if is_rad else math.degrees(ret[1][1])
41524160 return ret
0 commit comments