发送的事件
您可以通过 WebSocket 向 SDK 发送以下命令来控制您的 StreamDock 设备。
设备规格参考
在设置图片时,请注意不同设备的规格差异:
| 设备型号 | 屏幕尺寸 | 按键尺寸 | 特殊说明 |
|---|---|---|---|
| StreamDock 293 | 800×480 | 100×100 | 15个按键 |
| StreamDock 293V3 | 800×480 | 112×112 | 15个按键 |
| StreamDock 293s | 800×480 | 100×100 | 15个按键 |
| StreamDock N3 | 320×240 | 64×64 | 6个按键 |
| StreamDock N4 | 800×480 | 112×112 (按键) / 176×112 (副屏) | 15个按键 + 4个旋钮 |
| StreamDock N1 | 480×854 | 96×96 | 17个按键+1个旋钮 |
| StreamDock M3 | 854×480 | 96×96 (按键) / 176×96 (副屏) | 15个按键 + 4个旋钮 |
| StreamDock M18 | 480×272 | 64×64 | 18个按键 |
| StreamDock XL | 1024×600 | 80×80 | 32个按键 + 2个侧边拨片开关 |
| K1Pro | - | 112×112 | 6个按键 + 3个旋钮 |
可用命令
| 命令 | 功能描述 |
|---|---|
| getFirmVersion | 获取设备固件版本 |
| read | 开始监听设备事件(按键、旋钮等) |
| setBackgroundImg | 设置设备背景图片 |
| setBackgroundImgData | 通过数据设置背景图片 |
| clearAllIcon | 清空所有按键图标 |
| clearIcon | 清空指定按键图标 |
| setKeyImg | 设置按键图标 |
| setKeyImgData | 通过数据设置按键图标 |
| setBrightness | 调整设备亮度 |
| refresh | 刷新设备显示 |
| setLEDBrightness | 设置 LED 亮度 |
| setLEDColor | 设置 LED 颜色 |
| resetLEDColor | 重置 LED 颜色 |
| setKeyboardLightingEffects | 设置键盘灯效 |
| setKeyboardLightingSpeed | 设置键盘灯效速度 |
| setKeyboardRGBBacklight | 设置键盘 RGB 背光 |
| setKeyboardOSMode | 设置键盘系统模式 (Win/Mac) |
| setKeyboardBacklightBrightness | 设置键盘背光亮度 |
getFirmVersion
获取设备固件版本信息。
{
"event": "getFirmVersion",
"path": "设备路径"
}
参数说明:
event: 固定为 "getFirmVersion"path: 设备的唯一标识符(设备连接时会自动获取)
read
开始监听设备事件,如按键按下、旋钮旋转等操作。连接设备后建议立即发送此命令以启用事件监听。
{
"event": "read",
"path": "设备路径"
}
参数说明:
event: 固定为 "read"path: 设备的唯一标识符(设备连接时会自动获取)
使用提示:
- 设备断开连接后会自动停止监听
- 重新连接设备后需要再次发送此命令
setBackgroundImg
设置设备背景图片。请注意,不同设备支持的背景图片尺寸不同。
{
"event": "setBackgroundImg",
"path": "设备路径",
"payload": {
"imagePath": "图片文件路径"
}
}
参数说明:
event: 固定为 "setBackgroundImg"path: 设备的唯一标识符payload.imagePath: 背景图片的文件路径
重要提示:
- 设置背景图片过程中请勿发送其他命令,否则可能导致显示异常
- 需要先发送
read命令才能接收背景设置成功的通知 - 不同设备支持的背景图片尺寸请参考上方的设备规格表
setBackgroundImgData
通过图片数据设置设备背景图片,适用于动态生成图片的场景。
{
"event": "setBackgroundImgData",
"path": "设备路径",
"payload": {
"imgData": "base64编码的图片数据"
}
}
参数说明:
event: 固定为 "setBackgroundImgData"path: 设备的唯一标识符payload.imgData: Base64编码的RGB格式图片数据
重要提示:
- 设置背景图片过程中请勿发送其他命令
- 需要先发送
read命令才能接收背景设置成功的通知
示例:
const canvas = document.createElement("canvas");
const ctx = canvas.getContext("2d");
canvas.width = 800
canvas.height = 480
ctx.fillStyle = "pink";
ctx.fillRect(0, 0, 800, 480);
ctx.font = `${100}px'YaHei'`;
ctx.fillStyle = "white";
ctx.fillText("TEST", 150, 100);
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
const byteArray = imageData.data; // 获取字节数组
// 将 RGBA 转换为 RGB(SDK里面用的是RGB通道)
const rgbByteArray = [];
for (let i = 0; i < byteArray.length; i += 4) {
rgbByteArray.push(byteArray[i+2], byteArray[i+1], byteArray[i]);
}
// 将 RGB 字节数组转换为 Base64
function byteArrayToBase64(byteArray) {
let binary = '';
for (let i = 0; i < byteArray.length; i++) {
binary += String.fromCharCode(byteArray[i]);
}
return btoa(binary); // 将二进制字符串转换为 Base64
}
const base64String = byteArrayToBase64(rgbByteArray);
const data = {
"event": "setBackgroundImgData",
"path": path,
"payload": {
"imgData": base64String,
}
};
ws.send(JSON.stringify(data));
clearAllIcon
清空设备上所有按键的图标。建议在设置新图标前先执行此操作。
{
"event": "clearAllIcon",
"path": "设备路径"
}
参数说明:
event: 固定为 "clearAllIcon"path: 设备的唯一标识符
clearIcon
清空指定按键的图标。
{
"event": "clearIcon",
"path": "设备路径",
"payload": {
"keyIndex": 1
}
}
参数说明:
event: 固定为 "clearIcon"path: 设备的唯一标识符payload.keyIndex: 要清空的按键编号(从1开始)
setKeyImg
设置指定按键的图标。请注意不同设备支持的图标尺寸不同。
{
"event": "setKeyImg",
"path": "设备路径",
"payload": {
"imagePath": "图标文件路径",
"keyIndex": 1
}
}
参数说明:
event: 固定为 "setKeyImg"path: 设备的唯一标识符payload.imagePath: 图标文件的路径payload.keyIndex: 按键编号(从1开始)
使用技巧:
- 不同设备支持的图标尺寸请参考上方的设备规格表
setKeyImgData
通过图片数据设置指定按键的图标,适用于动态生成图标的场景。
{
"event": "setKeyImgData",
"path": "设备路径",
"payload": {
"imgData": "base64编码的图片数据",
"keyIndex": 1
}
}
参数说明:
event: 固定为 "setKeyImgData"path: 设备的唯一标识符payload.imgData: Base64编码的RGB格式图片数据payload.keyIndex: 按键编号(从1开始)
重要提示:
- 不同设备支持的图标尺寸请参考上方的设备规格表
setBrightness
调整设备屏幕亮度。
{
"event": "setBrightness",
"path": "设备路径",
"payload": {
"brightness": 80
}
}
参数说明:
event: 固定为 "setBrightness"path: 设备的唯一标识符payload.brightness: 亮度值(0-100,0为最暗,100为最亮)
refresh
刷新设备显示,使设置的图标或背景立即生效。
{
"event": "refresh",
"path": "设备路径"
}
参数说明:
event: 固定为 "refresh"path: 设备的唯一标识符
setLEDBrightness
设置 LED 亮度。
{
"event": "setLEDBrightness",
"path": "设备路径",
"payload": {
"brightness": 80
}
}
参数说明:
event: 固定为 "setLEDBrightness"path: 设备的唯一标识符payload.brightness: 亮度值(0-100)
setLEDColor
设置 LED 颜色。
{
"event": "setLEDColor",
"path": "设备路径",
"payload": {
"r": 255,
"g": 0,
"b: 0
}
}
参数说明:
event: 固定为 "setLEDColor"path: 设备的唯一标识符payload.r: 红色分量 (0-255)payload.g: 绿色分量 (0-255)payload.b: 蓝色分量 (0-255)
resetLEDColor
重置 LED 颜色。
{
"event": "resetLEDColor",
"path": "设备路径"
}
参数说明:
event: 固定为 "resetLEDColor"path: 设备的唯一标识符
setKeyboardLightingEffects
设置键盘灯效。
{
"event": "setKeyboardLightingEffects",
"path": "设备路径",
"payload": {
"effect": 1
}
}
参数说明:
event: 固定为 "setKeyboardLightingEffects"path: 设备的唯一标识符payload.effect: 灯效模式 (0-9)
setKeyboardLightingSpeed
设置键盘灯效速度。
{
"event": "setKeyboardLightingSpeed",
"path": "设备路径",
"payload": {
"speed": 5
}
}
参数说明:
event: 固定为 "setKeyboardLightingSpeed"path: 设备的唯一标识符payload.speed: 速度值 (0-7)
setKeyboardRGBBacklight
设置键盘 RGB 背光。
{
"event": "setKeyboardRGBBacklight",
"path": "设备路径",
"payload": {
"r": 255,
"g": 0,
"b": 0
}
}
参数说明:
event: 固定为 "setKeyboardRGBBacklight"path: 设备的唯一标识符payload.r: 红色分量 (0-255)payload.g: 绿色分量 (0-255)payload.b: 蓝色分量 (0-255)
setKeyboardOSMode
设置键盘系统模式。
{
"event": "setKeyboardOSMode",
"path": "设备路径",
"payload": {
"osMode": 0
}
}
参数说明:
event: 固定为 "setKeyboardOSMode"path: 设备的唯一标识符payload.osMode: 0: Windows, 1: macOS
setKeyboardBacklightBrightness
设置键盘背光亮度。
{
"event": "setKeyboardBacklightBrightness",
"path": "设备路径",
"payload": {
"brightness": 6
}
}
参数说明:
event: 固定为 "setKeyboardBacklightBrightness"path: 设备的唯一标识符payload.brightness: 亮度值 (0-6)
使用场景:
- 批量设置图标后统一刷新
- 确保所有更改都已显示
