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 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,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -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)