Skip to content

Commit fb9edb4

Browse files
authored
Merge pull request #103 from Mrkun5018/main
Fixed GitHub issue 96&97 bugs
2 parents 2e9a18e + a8b91db commit fb9edb4

File tree

3 files changed

+20
-28
lines changed

3 files changed

+20
-28
lines changed

pymycobot/error.py

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,14 @@ def calibration_parameters(**kwargs):
349349
"coords_min": [-310, -310, -140, -180, -180, -180],
350350
"coords_max": [310, 310, 480, 180, 180, 180]
351351
},
352+
"MyArmM": {
353+
"joint_id": [1, 2, 3, 4, 5, 6, 7],
354+
"servo_id": [1, 2, 3, 4, 5, 6, 7, 8],
355+
"angles_min": [-170, -83, -90, -155, -91, -153, -118],
356+
"angles_max": [170, 83, 84, 153, 88, 153, 2],
357+
"encoders_min": [137, 1163, 1035, 1013, 248, 979, 220, 706],
358+
"encoders_max": [4004, 2945, 3079, 3026, 3724, 2994, 3704, 2048]
359+
},
352360
"MyArmSocket": {
353361
"id": [1, 2, 3, 4, 5, 6, 7, 8],
354362
"angles_min": [-160, -70, -170, -113, -170, -115, -180],
@@ -1284,52 +1292,40 @@ def calibration_parameters(**kwargs):
12841292
value = kwargs[parameter]
12851293
value_type = type(value)
12861294
if parameter in ("servo_id", "joint_id") and value not in limit_info[parameter]:
1287-
raise MyArmDataException(
1288-
"The id not right, should be in {0}, but received {1}.".format(limit_info[parameter], value)
1289-
)
1295+
raise ValueError(f"The {parameter} not right, should be in {limit_info[parameter]}, but received {value}.")
12901296
elif parameter == 'angle':
12911297
i = kwargs['joint_id'] - 1
12921298
min_angle = limit_info["angles_min"][i]
12931299
max_angle = limit_info["angles_max"][i]
12941300
if value < min_angle or value > max_angle:
1295-
raise MyArmDataException(
1296-
f"angle value not right, should be {min_angle} ~ {max_angle}, but received {value}"
1297-
)
1301+
raise ValueError(f"angle value not right, should be {min_angle} ~ {max_angle}, but received {value}")
12981302
elif parameter == 'angles':
12991303
for i, v in enumerate(value):
13001304
min_angle = limit_info["angles_min"][i]
13011305
max_angle = limit_info["angles_max"][i]
13021306
if v < min_angle or v > max_angle:
1303-
raise MyArmDataException(
1304-
f"angle value not right, should be {min_angle} ~ {max_angle}, but received {v}"
1305-
)
1307+
raise ValueError(f"angle value not right, should be {min_angle} ~ {max_angle}, but received {v}")
13061308
elif parameter == 'encoder':
13071309
i = kwargs['servo_id'] - 1
13081310
max_encoder = limit_info["encoders_max"][i]
13091311
min_encoder = limit_info["encoders_min"][i]
13101312
if value < min_encoder or value > max_encoder:
1311-
raise MyArmDataException(
1312-
f"angle value not right, should be {min_encoder} ~ {max_encoder}, but received {value}"
1313-
)
1313+
raise ValueError(f"angle value not right, should be {min_encoder} ~ {max_encoder}, but received {value}")
13141314
elif parameter == 'encoders':
13151315
for i, v in enumerate(value):
13161316
max_encoder = limit_info["encoders_max"][i]
13171317
min_encoder = limit_info["encoders_min"][i]
13181318
if v < min_encoder or v > max_encoder:
1319-
raise MyArmDataException(
1320-
f"encoder value not right, should be {min_encoder} ~ {max_encoder}, but received {v}"
1321-
)
1319+
raise ValueError(f"encoder value not right, should be {min_encoder} ~ {max_encoder}, but received {v}")
13221320
elif parameter == "speed":
1323-
check_value_type(parameter, value_type, MyArmDataException, int)
1321+
check_value_type(parameter, value_type, TypeError, int)
13241322
if not 1 <= value <= 100:
1325-
raise MyArmDataException(f"speed value not right, should be 1 ~ 100, the received speed is {value}")
1323+
raise ValueError(f"speed value not right, should be 1 ~ 100, the received speed is {value}")
13261324
elif parameter == "speeds":
13271325
assert len(value) == 8, "The length of `speeds` must be 8."
13281326
for i, s in enumerate(value):
13291327
if not 1 <= s <= 100:
1330-
raise MyArmDataException(
1331-
f"speed value not right, should be 1 ~ 100, the received speed is {value}"
1332-
)
1328+
raise ValueError(f"speed value not right, should be 1 ~ 100, the received speed is {value}")
13331329
elif parameter == "servo_addr":
13341330
if value in (0, 1, 2, 3, 4):
1335-
raise MyArmDataException("addr 0-4 cannot be modified")
1331+
raise ValueError("addr 0-4 cannot be modified")

pymycobot/myarm_api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def _mesg(self, genre, *args, **kwargs):
6767
data = self._read(genre, command=command, timeout=timeout, _class=self.__class__.__name__)
6868
res = self._process_received(data, genre, arm=8)
6969

70-
if len(res) == 0:
70+
if not res:
7171
return None
7272

7373
return_single_genres = [

pymycobot/myarmm.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,15 +108,11 @@ def get_robot_power_status(self):
108108
return self._mesg(ProtocolCode.IS_POWER_ON, has_reply=True)
109109

110110
def set_robot_power_on(self):
111-
"""Set the robot to power on
112-
Returns: (int) 1
113-
"""
111+
"""Set the robot to power on"""
114112
return self._mesg(ProtocolCode.POWER_ON, has_reply=True)
115113

116114
def set_robot_power_off(self):
117-
"""Set the robot to power off
118-
Returns: (int) 1
119-
"""
115+
"""Set the robot to power off"""
120116
return self._mesg(ProtocolCode.POWER_OFF, has_reply=True)
121117

122118
def clear_robot_err(self):

0 commit comments

Comments
 (0)