Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

dglab-sdk

面向 DG-LAB 4 APP 的 Python 异步 SDK,仅支持 WebSocket V4 协议。参考:

核心包是 dglab_kit,提供:

  • DglabSocket:连接官方或自部署 relay。
  • DglabServer:在当前进程运行内置 WebSocket Server,让 APP 直接接入。
  • V4Client:表示一个已连接的 APP。
  • DglabDevice:表示 APP 暴露的设备,并提供强度、波形和任务控制。
  • APP、设备和状态变更事件。
  • 郊狼与负鼠内置波形。

目录结构

.
├── src/dglab_kit/      # 核心 SDK
├── examples/           # 可运行示例
├── tests/              # 协议与集成测试
├── docs/               # 中文 API 文档
├── LICENSE
└── pyproject.toml

安装

安装核心 SDK:

python -m pip install .

开发安装:

python -m pip install -e ".[dev]"

安装 PySide6 Demo 依赖:

python -m pip install -e ".[ui]"

文档

GUI 示例

DG-LAB Control Console

python examples/demo_ui.py

GUI 支持官方 relay、自定义 relay 和内置 Server,并展示 APP、设备状态以及郊狼 A/B 通道控制。

快速开始

连接 relay

import asyncio

from dglab_kit import DglabSocket


async def main() -> None:
    socket = DglabSocket("wss://trex.dungeon-lab.cn/v4")
    result = await socket.connect()
    print("target_id:", result["target_id"])

    socket.on(
        "device_instances",
        lambda devices, client_id: print(client_id, devices),
    )

    await asyncio.Event().wait()


asyncio.run(main())

使用内置 Server

import asyncio

from dglab_kit import DglabServer


async def main() -> None:
    async with DglabServer(
        host="0.0.0.0",
        port=8765,
        public_url="ws://192.168.1.10:8765",
    ) as server:
        print(server.pairing_url)
        await asyncio.Event().wait()


asyncio.run(main())

质量检查

ruff check .
ruff format --check .
mypy
pytest

许可

本项目使用 GPL-3.0 许可。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages