CreatorCreator
首页
快速上手
  • 中文简体
  • English
首页
快速上手
  • 中文简体
  • English
  • Creator

    • 快速上手
  • Stream Dock

    • 插件SDK
    • 图标包

      • 概述
      • 术语
      • 创建图标包
      • 图标规格
    • 场景配置

      • 什么是场景配置?
      • 导出
      • 使用案例
  • mPanel

    • 插件SDK
  • Linux StreamDock SDK

    • Cpp SDK

      • 概述
      • 依赖安装
      • 设备管理器
      • StreamDock 基类
      • StreamDock293
      • 通信传输
      • 示例
      • 源代码
    • Python SDK

      • 概述
      • 依赖安装
      • 设备管理器
      • StreamDock 基类
      • StreamDock293
      • 示例
      • 源代码
  • Windows StreamDock SDK

    • WebSocket SDK

      • 概述
      • 快速上手
      • 发送的事件
      • 接收的事件
    • Cpp SDK

      • 概述
      • 依赖安装
      • 设备管理器
      • StreamDock 基类
      • StreamDock293
      • 通信传输
      • 示例
      • 源代码
  • 支持

    • 帮助和错误报告

发送的事件

可通过websocket向sdk发送的事件

Event描述
getFirmVersion获取固件版本号
read读取事件(按键事件旋钮事件背景图片设置成功事件都要发了这个事件之后才会开始读取,连接后只需要发送一次)
setBackgroundImg设置背景图(不同的设备背景图可能不同)
setBackgroundImgData设置背景图通过字节数据(不同的设备背景图可能不同)
clearAllIcon清空所有按键图标(建议在设置图标之前先发送该事件清理背景图)
clearIcon清空某个按键图标
setKeyImg设置某个按键图标(不同设备图标尺寸不一样)
setKeyImgData通过字节数据设置某个按键图标(不同设备图标尺寸不一样)
setBrightness设置设备亮度(0-100)
refresh刷新设备(设置图标后刷新才会显示,默认调用)

getFirmVersion

获取固件版本号(base64格式)

{
    "event": "getFirmVersion",
    "path": path
}
成员描述
eventgetFirmVersion
path设备路径(唯一标识,设备的连接事件获取)

read

读取事件(按键事件旋钮事件都要发了这个事件之后才会开始读取),建议websocket连接之后直接发送该事件启动事件监听,当设备断开连接后会自动停止监听

{
    "event":"read",
    "path":path
} 
成员描述
eventread
path设备路径(唯一标识,设备的连接事件获取)

setBackgroundImg

设置背景图(不同的设备背景图可能不同),设置背景图的过程中不可发送其他事件,否则可能会花屏,需要接受背景图设置成功事件后才能发送其他事件(背景图片设置成功事件需要发送read后才有,所以read事件需要在setBackgroundImg之前发送)

{
    "event":"setBackgroundImg",
    "path":path,
    "payload":{
        "url":"E:\\img\\bg.jpg"
    }
} 
成员描述
eventsetBackgroundImg
path设备路径(唯一标识,设备的连接事件获取)
payloadjson对象

payload 对象包含以下成员:

payload描述
url要设置的背景图的地址(293V2\293V3\N4背景图尺寸:800×480,N3背景图尺寸:320×240)

setBackgroundImgData

设置背景图通过字节数据(不同的设备背景图可能不同),设置背景图的过程中不可发送其他事件,否则可能会花屏,需要接受背景图设置成功事件后才能发送其他事件(背景图片设置成功事件需要发送read后才有,所以read事件需要在setBackgroundImgData之前发送)

{
    "event":"setBackgroundImgData",
    "path":path,
    "payload":{
        "imgData":base64String
    }
} 
成员描述
eventsetBackgroundImgData
path设备路径(唯一标识,设备的连接事件获取)
payloadjson对象

payload 对象包含以下成员:

payload描述
imgData要设置的bsae64格式的RGB字节数组(293V2\293V3\N4背景图尺寸:800×480,N3背景图尺寸:320×240)

示例:

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":path
} 
成员描述
eventclearAllIcon
path设备路径(唯一标识,设备的连接事件获取)

clearIcon

清空某个按键图标

{
    "event":"clearIcon",
    "path":path,
    "payload":{
        "key":1
    }
} 
成员描述
eventclearIcon
path设备路径(唯一标识,设备的连接事件获取)
payloadjson对象

payload 对象包含以下成员:

payload描述
key按键序号从1开始

setKeyImg

设置某个按键图标(不同设备图标尺寸不一样)

{
    "event":"setKeyImg",
    "path":path,
    "payload":{
        "url":"E:\\img\\icon.jpg",
        "key":1,
        "refresh":false
    }
} 
成员描述
eventsetKeyImg
path设备路径(唯一标识,设备的连接事件获取)
payloadjson对象

payload 对象包含以下成员:

payload描述
url要设置的按键图标的地址
key要设置的按键序号从1开始
refresh是否刷新显示,选填参数,默认刷新显示,如果设置为false则需要调用refresh事件来刷新显示(主要用于批量设置图片一次刷新全部展示)

TIP

293V2图片尺寸为:100×100

293V3图片尺寸为:112×112

N3图片尺寸为:64×64

N4图片尺寸为:112×112(按键),176×112(副屏)

setKeyImgData

通过字节数据设置某个按键图标(不同设备图标尺寸不一样)

{
    "event":"setKeyImgData",
    "path":path,
    "payload":{
        "imgData":base64String,
        "key":1,
        "refresh":false
    }
} 
成员描述
eventsetKeyImgData
path设备路径(唯一标识,设备的连接事件获取)
payloadjson对象

payload 对象包含以下成员:

payload描述
imgData要设置的按键图标bsae64格式的RGB字节数组
key要设置的按键序号从1开始
refresh是否刷新显示,选填参数,不填则默认刷新显示,如果设置为false则需要调用refresh事件来刷新显示(主要用于批量设置图片一次刷新全部展示)

TIP

293V2图片尺寸为:100×100

293V3图片尺寸为:112×112

N3图片尺寸为:64×64

N4图片尺寸为:112×112(按键),176×112(副屏)

示例:

const canvas = document.createElement("canvas");
const ctx = canvas.getContext("2d");
canvas.width = canvas.height = 100;

ctx.fillStyle = "black";
ctx.fillRect(0, 0, 100, 100);

ctx.font = `${35}px'YaHei'`;
ctx.fillStyle = "white";
ctx.fillText("tExt", 0, 50);

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": "setKeyImgData",
    "path": path,
    "payload": {
        "imgData": base64String,
        "key": 15
    }
};
ws.send(JSON.stringify(data))

setBrightness

设置设备亮度(0-100)

{
    "event":"setBrightness",
    "path":path,
    "payload":{
        "brightness":100
    }
} 
成员描述
eventsetBrightness
path设备路径(唯一标识,设备的连接事件获取)
payloadjson对象

payload 对象包含以下成员:

payload描述
brightness亮度(0-100)

refresh

刷新设备(设置图标后刷新才会显示)

{
    "event":"refresh",
    "path":path
} 
成员描述
eventrefresh
path设备路径(唯一标识,设备的连接事件获取)
Last Updated:
Contributors: Heart
Prev
快速上手
Next
接收的事件