跳转到内容

实用工具

此函数是您从 canvas 获取颜色数据的方式。它接受相对于设备在 canvas 上的像素缓冲区内的 X、Y 位置,并返回该像素颜色的 [R,G,B] 数组。

参数类型描述示例
XInt表示设备像素缓冲区内 X 坐标的整数值5
YInt表示设备像素缓冲区内 Y 坐标的整数值3
  • 注意:发送的 X、Y 坐标必须在 Size() 导出设置的像素缓冲区内
返回值类型描述示例
ColorArray1D 数组包含坐标 [R, G, B] 值(范围 0-255,HEX 00-FF)的长度为 3 的数组[128,158,255]

以下是在典型情况下使用该函数的简化示例。

for(var iIdx = 0; iIdx < vLedPositions.length; iIdx++) //For each Led on the device
{
var iPxX = vLedPositions[iIdx][0]; //Get the X and Y values from the [X,Y] array
var iPxY = vLedPositions[iIdx][1];
var col; // create a variable to contain the [R.G.B] array data
if(shutdown){ // Check for some settings that can override the Device.color() call
col = hexToRgb(shutdownColor)
}else if (LightingMode == "Forced") {
col = hexToRgb(forcedColor)
}else{
col = device.color(iPxX, iPxY); //Calling Device.color with the X and Y values
}
//Saving the Color data in order into a larger Array of all the LED's data
RGBdata[iIdx*3] = col[0]; // Red Channel
RGBdata[iIdx*3+1] = col[1]; //Green Channel
RGBdata[iIdx*3+2] = col[2]; //Blue Channel
TotalLedCount += 1;
}

返回设备在 SignalRGB 中的当前亮度级别。此值已应用于 device.color() 或类似函数返回的任何颜色。

返回值类型描述示例
Brightnessint范围 0-100 内的当前亮度42

返回当前系统主板的 WMI 名称。

返回值类型描述示例
MotherboardNamestring系统的主板名称B550 Aorus Elite

此函数尝试将设备线程暂停给定的时长。由于操作系统处理线程休眠的方式,这些暂停不保证精确。

参数类型描述示例
DurationInt请求的暂停时长(毫秒)1
  • 注意:Windows 的最小休眠时间为 1-2ms,随着休眠时间增长会开始出现偏差,因此不要用于精确计时。
packet[89] = CalculateCrc(packet);
device.send_report(packet, 91);
device.pause(1); // We need a pause here (between packets), otherwise the ornata can't keep up.

此函数更改所有读写命令的活动端点。这对于具有多个打开端点用于不同命令的设备很有用。一个常见的例子是 Logitech 设备,它有一个 RGB 数据端点和一个用于 DPI 设置等系统命令的端点。

参数类型描述示例
interfaceHEX表示要打开的端点接口的十六进制值0x0002
usageHEX表示要打开的端点用法的十六进制值0x0006
usage_pageHEX表示要打开的端点用法页面的十六进制值0x0080
collectionHEX表示要打开的端点集合的十六进制值0x0001
function Apply()
{
var packet = [];
packet[0] = 0x11;
packet[1] = 0xFF;
packet[2] = 0x0C;
packet[3] = 0x5E;
device.set_endpoint(1, 0x0602, 0xff43); // System Interface
device.write(packet, 20);
}

此函数是插件版本的 console.log。它接受字符串、数字、对象或数组,并将其记录在设备控制台中,用于调试和用户信息。这对于列出 DPI 更改、错误,或在开发过程中显示数据包布局或读取命令的输入特别有用。

  • 注意:此函数将尽可能尝试将 JavaScript 变量转换为字符串。使用 parseInt()、toString() 或 JSON.stringify 记录 JavaScript 模板字面量可以让您更好地控制转换和格式化。
参数类型描述示例默认值
ItemJavascript 值要记录的字符串、数字、数组或其他 JavaScript 值
OptionsJavaScript 对象包含设置参数的 JavaScript 对象{hex: True}{}
选项描述类型默认值
Hex设置整数是否应以十进制或十六进制格式打印BooleanFalse
toFile设置打印的项目是否应出现在调试日志中,或仅在设备控制台中BooleanFalse
let ImportantData = "i have really important info here";
device.log(ImportantData, {toFile: true})

警报可用于在设备出现问题时向用户发出可见提示。应谨慎使用这些功能,并将其保留给关键问题,例如设备未正确配置。

为用户创建新警报。返回值可用于选择性地删除警报,如果用户修复了警报中的问题,则应这样做。

警报优先级描述
Info普通警报0
Important关键(高亮)警报1
参数类型描述示例
TitleString警报标题Firmware Incompatible
DescriptionString警报描述Firmware Version must be >= 2.0.0
PriorityInt警报优先级0 | 1
返回值类型描述
AlertIdString创建的警报 ID 字符串
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);

删除给定警报(如果存在)。

参数类型描述
AlertIdStringdevice.notify 返回的 AlertId
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);
// Do stuff and recheck if the alerted issue is fixed
device.denotify(AlertId);

设备消息提供了一种向用户传递重要但非关键信息的方式。这些消息只会出现在设备页面上。

添加具有给定 MessageId 的新设备消息。

参数类型描述示例
messageIdstring与设备消息关联的 MessageId”mymessage”
messagestring要显示的消息文本”The message”
tooltipstring悬停时显示的附加文本”Some more info”
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");

删除使用给定 MessageId 创建的消息(如果存在)。

参数类型描述
messageIdstring要删除的 MessageId
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");
// message is no longer relevant
device.removeMessage("message1");