- dglab_app_simulator.py 模拟 APP 端行为 - 自动连接、自动接受配对 - 实时显示强度/波形指令 - 回传强度状态(与真机一致) - README 添加测试教程
4.8 KiB
4.8 KiB
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
配对流程:
- 本插件连接 WebSocket 服务端,获得
clientId - 生成二维码(含
clientId) - DG-LAB APP 扫码连接服务端,获得
targetId - 服务端自动完成绑定,双方即可通信
💡 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 字节是强度。详见 官方波形说明。
测试(无需真机)
本插件附带一个 APP 模拟器,可以模拟 DG-LAB APP 端行为,无需真实设备即可测试。
测试步骤
终端1: 启动 WebSocket 服务端
cd socket/v2/backend && npm start
终端2: 启动 APP 模拟器
python dglab_app_simulator.py ws://127.0.0.1:9999
终端3: 在 xiaoli-cli 中测试
/dglab connect ws://127.0.0.1:9999
/dglab qr
/dglab strength a + 10
/dglab pulse a 30 50 5
/dglab status
模拟器会:
- 模拟 APP 连接 WebSocket 服务端
- 自动接受配对请求
- 实时显示收到的强度/波形指令
- 回传强度状态(和真机行为一致)