Утилиты
Утилиты устройства
Заголовок раздела «Утилиты устройства»device.color()
Заголовок раздела «device.color()»Эта функция позволяет получать цветовые данные с canvas. Принимает координаты X, Y относительно пиксельного буфера устройства на canvas и возвращает массив [R, G, B] цвета в данном пикселе.
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
| X | Int | Целочисленное значение, представляющее координату X в пиксельном буфере устройства | 5 |
| Y | Int | Целочисленное значение, представляющее координату 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; }device.getBrightness()
Заголовок раздела «device.getBrightness()»Возвращает текущий уровень яркости устройства в SignalRGB. Это значение уже применено к любым цветам, возвращаемым функциями device.color() или аналогичными.
| Возврат | Тип | Описание | Пример |
|---|---|---|---|
| Brightness | int | Текущая яркость в диапазоне 0–100 | 42 |
device.getMotherboardName()
Заголовок раздела «device.getMotherboardName()»Возвращает WMI-имя материнской платы текущей системы.
| Возврат | Тип | Описание | Пример |
|---|---|---|---|
| MotherboardName | string | Имя материнской платы системы | B550 Aorus Elite |
device.pause()
Заголовок раздела «device.pause()»Эта функция пытается приостановить поток устройства на заданное время. Эти паузы не гарантируют точности из-за того, как операционная система управляет ожиданием потоков.
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
| Duration | Int | Запрашиваемая длительность паузы в миллисекундах | 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.device.set_endpoint()
Заголовок раздела «device.set_endpoint()»Эта функция изменяет активную конечную точку для всех команд чтения и записи. Полезна для устройств с несколькими открытыми конечными точками для разных команд. Распространённый пример — устройства Logitech, у которых есть конечная точка для данных RGB и конечная точка системных команд для настроек, например DPI.
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
| interface | HEX | Шестнадцатеричное значение 0x, представляющее интерфейс конечной точки | 0x0002 |
| usage | HEX | Шестнадцатеричное значение 0x, представляющее usage конечной точки | 0x0006 |
| usage_page | HEX | Шестнадцатеричное значение 0x, представляющее usage_page конечной точки | 0x0080 |
| collection | HEX | Шестнадцатеричное значение 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);}device.log()
Заголовок раздела «device.log()»Эта функция является версией console.log для плагина. Принимает строку, число, объект или массив и записывает их в консоль устройства для отладки и информирования пользователя. Особенно полезна для отображения изменений DPI, ошибок или, в процессе разработки, для показа структуры пакетов или входных данных от команд чтения.
- Примечание: Эта функция попытается преобразовать переменные JavaScript в строки там, где это возможно. Логирование шаблонных литералов JavaScript с использованием
parseInt(),toString()илиJSON.stringifyдаст больше контроля над преобразованием и форматированием.
| Параметр | Тип | Описание | Пример | По умолчанию |
|---|---|---|---|---|
| Item | Javascript Value | Строка, число, массив или другое значение JavaScript для записи | ||
| Options | JavaScript Object | Объект JavaScript с параметрами настроек | {hex: True} | {} |
| Опции | Описание | Тип | По умолчанию |
|---|---|---|---|
| Hex | Задаёт, следует ли выводить целые числа в десятичном или шестнадцатеричном формате | Boolean | False |
| toFile | Задаёт, должны ли выводимые элементы появляться в журналах отладки или только в консоли устройства | Boolean | False |
let ImportantData = "i have really important info here"; device.log(ImportantData, {toFile: true})Оповещения
Заголовок раздела «Оповещения»Оповещения можно использовать для видимого информирования пользователя при наличии проблем с устройством. Используйте их умеренно — только для критических ситуаций, например когда устройство настроено неправильно.
device.notify()
Заголовок раздела «device.notify()»Создаёт новое оповещение для пользователя. Возвращаемое значение можно использовать для удаления конкретного оповещения; это следует делать, если пользователь устранил проблему.
| Приоритет оповещения | Описание | Значение |
|---|---|---|
| Info | Обычное оповещение | 0 |
| Important | Критическое (выделенное) оповещение | 1 |
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
| Title | String | Заголовок оповещения | Firmware Incompatible |
| Description | String | Описание оповещения | Firmware Version must be >= 2.0.0 |
| Priority | Int | Приоритет оповещения | 0 | 1 |
| Возврат | Тип | Описание |
|---|---|---|
| AlertId | String | Строка Id созданного оповещения |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
Заголовок раздела «device.denotify()»Удаляет указанное оповещение, если оно существует.
| Параметр | Тип | Описание |
|---|---|---|
| AlertId | String | AlertId, возвращённый функцией 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);Сообщения
Заголовок раздела «Сообщения»Сообщения устройства предоставляют способ передачи пользователю важной, но не критической информации. Эти сообщения отображаются только на странице устройства.

device.addMessage()
Заголовок раздела «device.addMessage()»Добавляет новое сообщение устройства с указанным MessageId.
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
| messageId | string | MessageId, привязанный к сообщению устройства | ”mymessage” |
| message | string | Текст сообщения для отображения | ”The message” |
| tooltip | string | Дополнительный текст, отображаемый при наведении | ”Some more info” |
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");device.removeMessage()
Заголовок раздела «device.removeMessage()»Удаляет сообщение, созданное с указанным MessageId, если оно существует.
| Параметр | Тип | Описание |
|---|---|---|
| messageId | string | 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");