Экспорты плагина
Для взаимодействия с серверным API используется ряд функций, передающих такую информацию, как сведения об устройстве и точки входа в процесс выполнения, отображаемое имя, размеры canvas, идентификаторы продукта и производителя для поиска, функция цикла рендеринга и т. д.
«Name» и «Publisher»
Заголовок раздела ««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»
Заголовок раздела ««VendorId» и «ProductId»»Эти функции используются для поиска устройства в системе. Оба значения закодированы в шестнадцатеричном формате «0x». Они должны точно совпадать с идентификаторами вашего устройства. Если плагин не отображается в SignalRGB, скорее всего причина — несовпадение идентификаторов производителя и продукта. Минимум, необходимый для обнаружения устройства в SignalRGB — совпадающие идентификаторы производителя и продукта.
export function VendorId() { return 0xABCD;}; //Device's USB Vendor Id in Hexexport function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex«Size» и позиционирование
Заголовок раздела ««Size» и позиционирование»Устанавливает базовый размер блока устройства на 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};«Led Names»
Заголовок раздела ««Led Names»»Эта функция возвращает двумерный массив всех имён светодиодов на устройстве. Они должны соответствовать поддерживаемым именам клавиш (ссылка выше) для поддержки эффектов нажатия клавиш и функций покраски светодиодов.
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»
Заголовок раздела ««Led Positions»»Эта функция возвращает матрицу позиций отдельных светодиодов в буфере пикселей устройства. Все позиции должны быть в пределах границ, заданных экспортом 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»
Заголовок раздела ««ControllableParameters»»Эта функция содержит все настройки плагина устройства. Они хранятся как JS/JSON-объекты, возвращаемые внутри массива функцией. Подробнее см. в разделе Пользовательские элементы управления.
export function ControllableParameters(){ return [ {SETTING}, {SETTING} ];}«Validate»
Заголовок раздела ««Validate»»Эта функция определяет, какие 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"; }«ConflictingProcesses»
Заголовок раздела ««ConflictingProcesses»»Эта функция экспортирует список имён конфликтующих exe-файлов. SignalRGB не будет инициализировать плагин при запущенном одном из них. Плагин инициализируется после закрытия конфликтующего процесса или обхода сообщения об ошибке пользователем.
Примечание: Эти имена должны точно совпадать с именем запущенного exe-файла.
export function ConflictingProcesses() { return ["NGenuity2.exe"];}«ImageUrl»
Заголовок раздела ««ImageUrl»»Эта функция возвращает строку URL изображения устройства. Стандартный размер изображения плагина — 1024x1024 с рабочей областью 920x920.
export function ImageUrl(){ return "URL image string";}