Files
xiaoli-cli-plugins/dglab_ws/README.md
T
xiaoli-cli bot 742b9e4b41 refactor: 每个插件独立文件夹,添加使用教程
- dglab_ws/ 插件代码 + README.md 使用教程
- 根目录 README.md 更新为仓库总览与开发指南
2026-04-30 02:31:06 +08:00

4.1 KiB
Raw Blame History

DG-Lab 郊狼 WebSocket 控制插件

基于 DG-LAB-OPENSOURCE 官方 Socket V2 协议
支持郊狼 3.0 脉冲主机的远程强度控制与波形发送

前置准备

1. 安装依赖

pip install websocket-client   # 必须
pip install qrcode             # 可选,终端显示ASCII二维码

2. 安装插件

将 dglab_ws.py 复制到 xiaoli-cli 项目的 plugins/ 目录下:

cp dglab_ws.py /path/to/xiaoli-cli/plugins/

在 plugins_config.py 中添加:

ENABLE_DGLAB_WS = True

3. 启动 WebSocket 服务端

你需要一个 DG-LAB Socket V2 后端服务。官方参考实现位于 socket/v2/backend:

cd socket/v2/backend
npm install
npm start

默认监听 ws://0.0.0.0:9999。

使用教程

连接与配对

# 第一步:连接到 WebSocket 服务端
/dglab connect ws://192.168.1.100:9999

# 第二步:生成二维码,用 DG-LAB APP 扫码
/dglab qr

# 查看连接状态
/dglab status

配对流程:

  1. 本插件连接 WebSocket 服务端,获得 clientId
  2. 生成二维码(含 clientId)
  3. DG-LAB APP 扫码连接服务端,获得 targetId
  4. 服务端自动完成绑定,双方即可通信

💡 APP 端操作:打开 DG-LAB APP → SOCKET 功能 → 扫描二维码

强度控制

控制 A/B 两个通道的脉冲强度(范围 0-200):

# 通道A 增加 10
/dglab strength a + 10

# 通道B 减少 5
/dglab strength b - 5

# 通道A 设为 50
/dglab strength a = 50
操作符 说明 示例
+ 增加 strength a + 10
- 减少 strength b - 5
= 设为指定值 strength a = 50

波形发送

发送参数化波形脉冲:

# 通道A: 频率30, 强度50, 持续5秒
/dglab pulse a 30 50 5

# 通道B: 频率100, 强度80, 持续10秒
/dglab pulse b 100 80 10

参数说明:

参数 范围 说明
频率 10-1000 脉冲频率,内部自动映射到 10-240
强度 0-100 波形强度
持续时间 1-60 秒数,默认5秒

原始波形数据

如果你有现成的波形 HEX 数据,可以直接发送:

# 每条波形 = 8字节 = 16个HEX字符
# 格式: 频率x4 + 强度x4
/dglab wave a 0A0A0A0A64646464

清空波形队列

/dglab clear a      # 清空通道A
/dglab clear b      # 清空通道B
/dglab clear both   # 清空双通道

断开连接

/dglab disconnect

命令速查

命令 说明
/dglab connect <ws_url> 连接 WebSocket 服务器
/dglab qr 生成配对二维码
/dglab status 查看状态
/dglab strength <a/b> <+/−/=> <值> 控制强度
/dglab pulse <a/b> <频率> <强度> [秒数] 发送波形
/dglab wave <a/b> <HEX数据> 发送原始波形
/dglab clear <a/b/both> 清空波形队列
/dglab disconnect 断开连接
/dglab help 显示帮助

常见问题

Q: 连接超时怎么办?
A: 检查 WebSocket 服务端是否启动,防火墙是否放行端口,地址格式是否为 ws://ip:port。

Q: 配对失败 (400)?
A: 该 clientId 已被其他 APP 绑定。断开重连会生成新的 clientId。

Q: 强度设为软上限以上会怎样?
A: 实际强度不会超过软上限。比如软上限 100,设为 150 实际只会到 100。

Q: 波形数据格式是什么?
A: 每条 8 字节 HEX,前 4 字节是频率,后 4 字节是强度。详见 官方波形说明。

参考资料