Skip to content

Commit 125f441

Browse files
authored
Merge pull request #121 from elephantrobotics/mycobot_280_refactor
Mycobot 280 refactor
2 parents 2d04ec6 + 920b1b8 commit 125f441

File tree

4 files changed

+44
-16
lines changed

4 files changed

+44
-16
lines changed

docs/ultraArm_P340_en.md

+9-3
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,27 @@ from pymycobot.ultraArm import ultraArm
3333
- `1`: Movement end
3434
- `0`: Movement not end
3535

36-
**1.5** `set_system_value(id, address, value)`
36+
**1.5** `set_system_value(id, address, value, mode=None)`
3737

3838
- **Function:** Set system parameters
3939
- **Parameter description:**
4040
- `id`: `int`, Motor ID, 4 or 7
41-
- `address`: `int`, Parameter register address, 0 ~ 69
41+
- `address`: `int`, Parameter register address, 7 ~ 69
4242
- `value`: `int`, Corresponding register parameter value
43+
- `mode`: `int`, 1 or 2, can be empty, default mode is 1
44+
- `1`: setting range is 0-255, address 21 (P value) can be used
45+
- `2`: setting value range is 0-65535, address 56 (setting position) can be used
4346
- **Return value:** None
4447

45-
**1.6** `get_system_value(id, address)`
48+
**1.6** `get_system_value(id, address,mode=None)`
4649

4750
- **Function:** Read system parameters
4851
- **Parameter description:**
4952
- `id`: `int`, Motor ID, 4 or 7
5053
- `address`: `int`, Parameter register address, 0 ~ 69
54+
- `mode`: `int`, 1 or 2, can be empty, default mode is 1
55+
- `1`: read range is 0-255, address 21 (P value) can be used
56+
- `2`: read value range is 0-65535, address 56 (read position) can be used
5157
- **Return value:** `int`, Corresponding register parameter value
5258

5359
**1.7** `get_system_version()`

docs/ultraArm_P340_zh.md

+9-3
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,27 @@ from pymycobot.ultraArm import ultraArm
3232
- `1`: 运动结束
3333
- `0`: 运动未结束
3434

35-
**1.5** `set_system_value(id, address, value)`
35+
**1.5** `set_system_value(id, address, value, mode=None)`
3636

3737
- **功能:** 设置系统参数
3838
- **参数说明:**
3939
- `id`: `int`, 电机ID,4 或者 7
40-
- `address`: `int`, 参数寄存器地址,0 ~ 69
40+
- `address`: `int`, 参数寄存器地址,7 ~ 69
4141
- `value`: `int`, 对应寄存器参数取值
42+
- `mode`: `int`, 1 或者 2,可以为空,默认模式为1
43+
- `1`: 设置范围为0-255,可使用地址21(P值)
44+
- `2`: 设置取值范围0-65535,可使用地址56(设置位置)
4245
- **返回值:**
4346

44-
**1.6** `get_system_value(id, address)`
47+
**1.6** `get_system_value(id, address, mode=None)`
4548

4649
- **功能:** 读取系统参数
4750
- **参数说明:**
4851
- `id`: `int`, 电机ID,4 或者 7
4952
- `address`: `int`, 参数寄存器地址,0 ~ 69
53+
- `mode`: `int`, 1 或者 2,可以为空,默认模式为1
54+
- `1`: 读取范围为0-255,可使用地址21(P值)
55+
- `2`: 读取取值范围0-65535,可使用地址56(读取位置)
5056
- **返回值:** `int`, 对应寄存器参数取值
5157

5258
**1.7** `get_system_version()`

pymycobot/common.py

+2
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,8 @@ class ProtocolCode(object):
379379
GET_GRIPPER_ANGLE = "M50"
380380
SET_SYSTEM_VALUE = "M51"
381381
GET_SYSTEM_VALUE = "M52"
382+
GET_SYSTEM_VERSION = "G6"
383+
GET_MODIFY_VERSION = "G7"
382384

383385

384386
class DataProcessor(object):

pymycobot/ultraArm.py

+24-10
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ def _request(self, flag=""):
137137
header = "ReadSYS["
138138
read = data.find(header) + len(header)
139139
end = data[read:].find(']')
140-
return data[read:read + end]
140+
return int(data[read:read + end])
141141
elif flag == 'system_version':
142142
start_idx = data.find("GetSystemVersion[")
143143
if start_idx != -1:
@@ -640,31 +640,45 @@ def get_gripper_angle(self):
640640
self._debug(command)
641641
return self._request("gripper")
642642

643-
def set_system_value(self, id, address, value):
643+
def set_system_value(self, id, address, value, mode=None):
644644
"""_summary_
645645
646646
Args:
647647
id (int): 4 or 7
648-
address (int): 0 ~ 69
649-
value (int):
648+
address (int): 7 ~ 69
649+
value (int):
650+
mode (int): 1 or 2, can be empty, default mode is 1
651+
1 - setting range is 0-255, address 21 (P value) can be used
652+
2 - setting value range is 0-65535, address 56 (setting position) can be used
650653
"""
651-
command = ProtocolCode.SET_SYSTEM_VALUE + " X{} ".format(id) + "Y{} ".format(address) + "Z{} ".format(
652-
value) + ProtocolCode.END
654+
if mode:
655+
command = ProtocolCode.SET_SYSTEM_VALUE + " X{} ".format(id) + "Y{} ".format(address) + "Z{} ".format(
656+
value) + "P{} ".format(mode) + ProtocolCode.END
657+
else:
658+
command = ProtocolCode.SET_SYSTEM_VALUE + " X{} ".format(id) + "Y{} ".format(address) + "Z{} ".format(
659+
value) + ProtocolCode.END
653660
self._serial_port.write(command.encode())
654661
self._serial_port.flush()
655662
self._debug(command)
656663

657-
def get_system_value(self, id, address):
664+
def get_system_value(self, id, address, mode=None):
658665
"""_summary_
659666
660667
Args:
661668
id (int): 4 or 7
662669
address (_type_): 0 ~ 69
670+
mode (int): 1 or 2, can be empty, default mode is 1
671+
1 - read range is 0-255, address 21 (P value) can be used
672+
2 - read value range is 0-65535, address 56 (read position) can be used
663673
664674
Returns:
665675
_type_: _description_
666676
"""
667-
command = ProtocolCode.GET_SYSTEM_VALUE + " J{} ".format(id) + "S{} ".format(address) + ProtocolCode.END
677+
if mode:
678+
command = ProtocolCode.GET_SYSTEM_VALUE + " J{} ".format(id) + "S{} ".format(address) + "P{} ".format(
679+
mode) + ProtocolCode.END
680+
else:
681+
command = ProtocolCode.GET_SYSTEM_VALUE + " J{} ".format(id) + "S{} ".format(address) + ProtocolCode.END
668682
self._serial_port.write(command.encode())
669683
self._serial_port.flush()
670684
self._debug(command)
@@ -677,7 +691,7 @@ def get_system_version(self):
677691
Returns:
678692
(float) Firmware version
679693
"""
680-
command = 'GetSystemVersion[1.50]' + ProtocolCode.END
694+
command = ProtocolCode.GET_SYSTEM_VERSION + ProtocolCode.END
681695
self._serial_port.write(command.encode())
682696
self._serial_port.flush()
683697
self._debug(command)
@@ -690,7 +704,7 @@ def get_modify_version(self):
690704
Returns:
691705
(int) modify version
692706
"""
693-
command = 'GetModifyVersion[0]' + ProtocolCode.END
707+
command = ProtocolCode.GET_MODIFY_VERSION + ProtocolCode.END
694708
self._serial_port.write(command.encode())
695709
self._serial_port.flush()
696710
self._debug(command)

0 commit comments

Comments
 (0)