插件导出
我们使用几个函数与后端 API 通信,这些函数报告设备信息和运行时入口点、显示名称、canvas 尺寸、要搜索的产品和供应商 ID、渲染循环等信息。
“Name” 和 “Publisher”
Section titled ““Name” 和 “Publisher””这些函数导出要在 SignalRGB 中显示的设备名称和发布者。
export function Name() { return "Device Product name as a String"; };export function Publisher() { return "This is You! as a String"; };“VendorId” 和 “ProductId”
Section titled ““VendorId” 和 “ProductId””这些函数用于在系统上搜索设备。两者都以 “0x ” 格式编码为十六进制值。这些值必须与您的设备 ID 完全匹配。如果您的插件未在 SignalRGB 中显示,最可能的原因是供应商和产品 ID 不匹配。检测 SignalRGB 中设备所需的最低条件是匹配的供应商和产品 ID。
export function VendorId() { return 0xABCD;}; //Device's USB Vendor Id in Hexexport function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex“Size” 和定位
Section titled ““Size” 和定位”这设置了设备在 canvas 上的基本框尺寸(缩放前),作为仅包含整数的 2D 数组。您不能在插件中获取这些边界之外的颜色,因此必须设置尺寸以适应将 LED 转换为网格时设备 LED 的宽度和高度。
export function Size() { return [X,Y]; };这些函数将在任何用户自定义之前设置设备的默认位置。DefaultPosition 返回左上角的 2D 坐标。DefaultScale 返回 1.0-30.0 范围内的缩放倍数。
export function DefaultPosition(){return [X,Y]};export function DefaultScale(){return 8.0};“Led Names”
Section titled ““Led Names””此函数返回设备上所有 LED 名称的 2D 数组。这些应遵循此处的支持按键名称以支持按键效果和 LED 绘制功能。
var vLedNames = [ "Scroll Wheel", "Side Led 1","Side Led 2","Side Led 3","Side Led 4", "Side Led 5","logo", "Right Side Led", "Dpi 1","dpi 2","Dpi 3", "Battery indicator"];export function LedNames(){return vLedNames;};“Led Positions”
Section titled ““Led Positions””此函数返回设备像素缓冲区中各个 LED 位置的矩阵。所有位置必须在设备的 Size() 导出设置的边界内。
var vLedPositions = [ [3,0], [0,1],[0,2],[0,3],[0,4],[0,5],[3,5],[5,5], [0,2],[0,1],[0,0], [3,1]];export function LedPositions(){return vLedPositions;};“ControllableParameters”
Section titled ““ControllableParameters””此函数包含设备插件的所有设置。这些设置作为 JS/JSON 对象存储,由函数在数组内返回。有关更多信息,请参阅用户控件。
export function ControllableParameters(){ return [ {SETTING}, {SETTING} ];}“Validate”
Section titled ““Validate””此函数负责确定 SignalRGB 想要打开和使用哪些 USB 端点。每个端点都有四个参数可用作过滤器,对应设备上每个 USB 端点的值。可以为每个设备”打开”多个端点,但一次只使用一个。要更改活动端点,请参阅 device.set_endpoint()。
注意:命令通常需要发送到特定端点。发送到配置为接受特定报告 ID 或长度的端点的命令,如果这些值不匹配,将抛出错误。
注意:并非所有设备都会使用一致的端点,具体取决于设备的制造地点和时间。验证多个端点可以让您在需要时自动回退。
| 可用参数 |
|---|
| interface |
| usage |
| usage_page |
| collection |
export function Validate(endpoint){ return (endpoint.interface === 2 && endpoint.collection === 0x0003) || endpoint.interface === 1;
}”Type”
Section titled “”Type””此函数设置要使用的 USB 协议类型。大多数设备使用 HID 协议,但某些设备(如 AIO)将使用原始 USB 控制函数。
注意:当 SignalRGB 无法使用此函数时,默认值为 HID 协议。
| 协议 | 字符串值 |
|---|---|
| HID | ”HID” |
| Lib/raw USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
Section titled “"ConflictingProcesses””此函数导出冲突 exe 名称的列表。当其中一个正在运行时,SignalRGB 不会初始化插件。当冲突进程关闭或用户绕过错误消息时,插件将被初始化。
注意:这些名称必须与正在运行的 exe 名称完全匹配。
export function ConflictingProcesses() { return ["NGenuity2.exe"];}“ImageUrl”
Section titled ““ImageUrl””此函数返回设备的图像 URL 字符串。标准插件图像尺寸为 1024x1024,有效区域为 920x920。
export function ImageUrl(){ return "URL image string";}