xgolib 1.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- xgolib-1.0.2/PKG-INFO +24 -0
- xgolib-1.0.2/README.md +16 -0
- xgolib-1.0.2/pyproject.toml +17 -0
- xgolib-1.0.2/setup.cfg +4 -0
- xgolib-1.0.2/xgolib/__init__.py +64 -0
- xgolib-1.0.2/xgolib/xgolib_dog.py +1027 -0
- xgolib-1.0.2/xgolib/xgolib_rider.py +979 -0
- xgolib-1.0.2/xgolib.egg-info/PKG-INFO +24 -0
- xgolib-1.0.2/xgolib.egg-info/SOURCES.txt +10 -0
- xgolib-1.0.2/xgolib.egg-info/dependency_links.txt +1 -0
- xgolib-1.0.2/xgolib.egg-info/requires.txt +1 -0
- xgolib-1.0.2/xgolib.egg-info/top_level.txt +1 -0
xgolib-1.0.2/PKG-INFO
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: xgolib
|
|
3
|
+
Version: 1.0.2
|
|
4
|
+
Summary: XGO 机器人控制库
|
|
5
|
+
Requires-Python: >=3.8
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: pyserial
|
|
8
|
+
|
|
9
|
+
# xgolib — XGO 机器人控制库
|
|
10
|
+
|
|
11
|
+
xgolib 提供了针对 XGO 系列设备的 Python 控制接口。通过统一入口 `XGO(...)` 可自动识别设备类型并返回对应的控制对象,亦可手动指定型号。
|
|
12
|
+
|
|
13
|
+
- 已支持设备:`XGO-MINI`、`XGO-LITE`、`XGO-MINI3W`、`XGO-RIDER`
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
- Python 版本:建议 `3.8+`
|
|
18
|
+
- 依赖:`pyserial`
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pip install pyserial
|
|
22
|
+
pip install xgolib
|
|
23
|
+
```
|
|
24
|
+
|
xgolib-1.0.2/README.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# xgolib — XGO 机器人控制库
|
|
2
|
+
|
|
3
|
+
xgolib 提供了针对 XGO 系列设备的 Python 控制接口。通过统一入口 `XGO(...)` 可自动识别设备类型并返回对应的控制对象,亦可手动指定型号。
|
|
4
|
+
|
|
5
|
+
- 已支持设备:`XGO-MINI`、`XGO-LITE`、`XGO-MINI3W`、`XGO-RIDER`
|
|
6
|
+
|
|
7
|
+
## 安装
|
|
8
|
+
|
|
9
|
+
- Python 版本:建议 `3.8+`
|
|
10
|
+
- 依赖:`pyserial`
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pip install pyserial
|
|
14
|
+
pip install xgolib
|
|
15
|
+
```
|
|
16
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "xgolib"
|
|
7
|
+
version = "1.0.2"
|
|
8
|
+
description = "XGO 机器人控制库"
|
|
9
|
+
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
dependencies = [
|
|
12
|
+
"pyserial",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[tool.setuptools.packages.find]
|
|
16
|
+
where = ["."]
|
|
17
|
+
include = ["xgolib*"]
|
xgolib-1.0.2/setup.cfg
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""
|
|
2
|
+
XGO 机器人控制库
|
|
3
|
+
统一入口,自动选择设备类型
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
# 直接导入所有类
|
|
7
|
+
from .xgolib_dog import XGO_DOG
|
|
8
|
+
from .xgolib_rider import XGO_RIDER
|
|
9
|
+
|
|
10
|
+
__version__ = '1.4.2'
|
|
11
|
+
__all__ = ['XGO', 'XGO_DOG', 'XGO_RIDER']
|
|
12
|
+
|
|
13
|
+
def XGO(port="/dev/ttyAMA0", baud=115200, version="auto", verbose=False):
|
|
14
|
+
"""
|
|
15
|
+
XGO类自动选择对应库的函数
|
|
16
|
+
|
|
17
|
+
Args:
|
|
18
|
+
port: 串口设备路径
|
|
19
|
+
baud: 波特率
|
|
20
|
+
version: 设备版本
|
|
21
|
+
"auto" - 自动检测
|
|
22
|
+
"xgomini" - XGO-MINI
|
|
23
|
+
"xgolite" - XGO-LITE
|
|
24
|
+
"xgomini3w" - XGO-MINI3W
|
|
25
|
+
"xgorider" - XGO-RIDER
|
|
26
|
+
verbose: 是否显示调试信息
|
|
27
|
+
"""
|
|
28
|
+
if version == "auto":
|
|
29
|
+
try:
|
|
30
|
+
temp_dog = XGO_DOG(port, baud, version="xgomini", verbose=verbose)
|
|
31
|
+
firmware = temp_dog.read_firmware()
|
|
32
|
+
temp_dog.reset()
|
|
33
|
+
|
|
34
|
+
print(f"Detected firmware: {firmware}")
|
|
35
|
+
|
|
36
|
+
if firmware and firmware[0] == 'R':
|
|
37
|
+
print("Auto-detected: XGO-RIDER")
|
|
38
|
+
return XGO_RIDER(port, baud, version="xgorider", verbose=verbose)
|
|
39
|
+
elif firmware and firmware[0] in ['M', 'L', 'W']:
|
|
40
|
+
version_map = {
|
|
41
|
+
'M': 'xgomini',
|
|
42
|
+
'L': 'xgolite',
|
|
43
|
+
'W': 'xgomini3W'
|
|
44
|
+
}
|
|
45
|
+
detected_version = version_map.get(firmware[0], 'xgomini')
|
|
46
|
+
print(f"Auto-detected: {detected_version.upper()}")
|
|
47
|
+
return XGO_DOG(port, baud, version=detected_version, verbose=verbose)
|
|
48
|
+
else:
|
|
49
|
+
print("Auto-detection failed, using default: XGO-MINI")
|
|
50
|
+
return XGO_DOG(port, baud, version="xgomini", verbose=verbose)
|
|
51
|
+
|
|
52
|
+
except Exception as e:
|
|
53
|
+
print(f"Auto detection failed: {e}, using default: XGO-MINI")
|
|
54
|
+
return XGO_DOG(port, baud, version="xgomini", verbose=verbose)
|
|
55
|
+
|
|
56
|
+
elif version in ["xgomini", "xgolite", "xgomini3W"]:
|
|
57
|
+
return XGO_DOG(port, baud, version=version, verbose=verbose)
|
|
58
|
+
|
|
59
|
+
elif version == "xgorider":
|
|
60
|
+
return XGO_RIDER(port, baud, version=version, verbose=verbose)
|
|
61
|
+
|
|
62
|
+
else:
|
|
63
|
+
print(f"Warning: Unknown version '{version}', using 'xgomini' instead")
|
|
64
|
+
return XGO_DOG(port, baud, version="xgomini", verbose=verbose)
|