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

Экспорты плагина

Для взаимодействия с серверным API используется ряд функций, передающих такую информацию, как сведения об устройстве и точки входа в процесс выполнения, отображаемое имя, размеры canvas, идентификаторы продукта и производителя для поиска, функция цикла рендеринга и т. д.

Эти функции экспортируют имя устройства и издателя для отображения в SignalRGB.

export function Name() { return "Device Product name as a String"; };
export function Publisher() { return "This is You! as a String"; };

Эти функции используются для поиска устройства в системе. Оба значения закодированы в шестнадцатеричном формате «0x». Они должны точно совпадать с идентификаторами вашего устройства. Если плагин не отображается в SignalRGB, скорее всего причина — несовпадение идентификаторов производителя и продукта. Минимум, необходимый для обнаружения устройства в SignalRGB — совпадающие идентификаторы производителя и продукта.

export function VendorId() { return 0xABCD;}; //Device's USB Vendor Id in Hex
export function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex

Устанавливает базовый размер блока устройства на canvas — до любого масштабирования — как двумерный массив только целых чисел. Цвета нельзя получить за пределами этих границ в плагине, поэтому размер должен учитывать ширину и высоту светодиодов устройства при их переводе в сетку.

export function Size() { return [X,Y]; };

Эти функции задают положение устройства по умолчанию до любой пользовательской настройки. DefaultPosition возвращает двумерные координаты верхнего левого угла. DefaultScale возвращает множитель масштабирования в диапазоне 1.0–30.0.

export function DefaultPosition(){return [X,Y]};
export function DefaultScale(){return 8.0};

Эта функция возвращает двумерный массив всех имён светодиодов на устройстве. Они должны соответствовать поддерживаемым именам клавиш (ссылка выше) для поддержки эффектов нажатия клавиш и функций покраски светодиодов.

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;};

Эта функция возвращает матрицу позиций отдельных светодиодов в буфере пикселей устройства. Все позиции должны быть в пределах границ, заданных экспортом 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;};

Эта функция содержит все настройки плагина устройства. Они хранятся как JS/JSON-объекты, возвращаемые внутри массива функцией. Подробнее см. в разделе Пользовательские элементы управления.

export function ControllableParameters(){
return [
{SETTING},
{SETTING}
];
}

Эта функция определяет, какие USB-конечные точки SignalRGB хочет открыть и использовать для устройства. Каждая конечная точка имеет четыре параметра для фильтрации, соответствующих значениям каждой USB-конечной точки устройства. Для каждого устройства можно «открыть» несколько конечных точек, но одновременно используется только одна. Для смены активной конечной точки см. device.set_endpoint().

Примечание: Команды обычно должны отправляться на определённую конечную точку. Команды, отправленные на конечную точку, настроенную для приёма определённого идентификатора отчёта или длины, вызовут ошибки при несовпадении значений.

Примечание: Не все устройства используют постоянные конечные точки в зависимости от места и времени изготовления. Валидация нескольких конечных точек позволяет автоматически переключаться при необходимости.

Доступные параметры
interface
usage
usage_page
collection
export function Validate(endpoint)
{
return (endpoint.interface === 2 && endpoint.collection === 0x0003) ||
endpoint.interface === 1;
}

Эта функция задаёт используемый тип протокола USB. Большинство устройств используют протоколы HID, но некоторые устройства, например системы жидкостного охлаждения, используют вместо этого функции Raw USB.

Примечание: Значение по умолчанию, если эта функция недоступна SignalRGB — протокол HID.

ПротоколСтроковое значение
HID”HID”
Lib/raw USB”RAWUSB”
export function Type() { return "Hid"; }

Эта функция экспортирует список имён конфликтующих exe-файлов. SignalRGB не будет инициализировать плагин при запущенном одном из них. Плагин инициализируется после закрытия конфликтующего процесса или обхода сообщения об ошибке пользователем.

Примечание: Эти имена должны точно совпадать с именем запущенного exe-файла.

export function ConflictingProcesses() {
return ["NGenuity2.exe"];
}

Эта функция возвращает строку URL изображения устройства. Стандартный размер изображения плагина — 1024x1024 с рабочей областью 920x920.

export function ImageUrl(){ return "URL image string";}