Перейти к содержимому

Утилиты

Эта функция позволяет получать цветовые данные с canvas. Принимает координаты X, Y относительно пиксельного буфера устройства на canvas и возвращает массив [R, G, B] цвета в данном пикселе.

ПараметрТипОписаниеПример
XIntЦелочисленное значение, представляющее координату X в пиксельном буфере устройства5
YIntЦелочисленное значение, представляющее координату Y в пиксельном буфере устройства3
  • Примечание: передаваемые координаты X, Y должны быть в пределах пиксельного буфера, заданного экспортом Size().
ВозвратТипОписаниеПример
ColorArrayОдномерный массивМассив длиной 3, содержащий значения [R, G, B] в диапазоне 0–255 (HEX 00–FF)[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–10042

Возвращает WMI-имя материнской платы текущей системы.

ВозвратТипОписаниеПример
MotherboardNamestringИмя материнской платы системыB550 Aorus Elite

Эта функция пытается приостановить поток устройства на заданное время. Эти паузы не гарантируют точности из-за того, как операционная система управляет ожиданием потоков.

ПараметрТипОписаниеПример
DurationIntЗапрашиваемая длительность паузы в миллисекундах1
  • Примечание: Минимальное время ожидания в Windows составляет 1–2 мс, и точность снижается при увеличении длительности — не используйте это для точных временных интервалов.
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Шестнадцатеричное значение 0x, представляющее интерфейс конечной точки0x0002
usageHEXШестнадцатеричное значение 0x, представляющее usage конечной точки0x0006
usage_pageHEXШестнадцатеричное значение 0x, представляющее usage_page конечной точки0x0080
collectionHEXШестнадцатеричное значение 0x, представляющее collection конечной точки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 в строки там, где это возможно. Логирование шаблонных литералов JavaScript с использованием parseInt(), toString() или JSON.stringify даст больше контроля над преобразованием и форматированием.
ПараметрТипОписаниеПримерПо умолчанию
ItemJavascript ValueСтрока, число, массив или другое значение JavaScript для записи
OptionsJavaScript ObjectОбъект 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);

Удаляет указанное оповещение, если оно существует.

ПараметрТипОписание
AlertIdStringAlertId, возвращённый функцией device.notify
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);
// Do stuff and recheck if the alerted issue is fixed
device.denotify(AlertId);

Сообщения устройства предоставляют способ передачи пользователю важной, но не критической информации. Эти сообщения отображаются только на странице устройства.

Добавляет новое сообщение устройства с указанным MessageId.

ПараметрТипОписаниеПример
messageIdstringMessageId, привязанный к сообщению устройства”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, если оно существует.

ПараметрТипОписание
messageIdstringMessageId для удаления
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");