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

Функции компонентов

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

Эта функция принимает целочисленное значение и устанавливает верхний лимит светодиодов для всех компонентных каналов устройства. Используется для проверки безопасности в бэкенде и для предотвращения перегрузки устройств потреблением мощности сверх допустимого. Должна быть установлена на то же максимальное значение, которое компания-производитель задаёт для устройства.

ПараметрОписаниеТипПример
LedLimitЖелаемый лимит светодиодов для всех каналов устройстваInt80
const DeviceMaxLedLimit = 233;
device.SetLedLimit(DeviceMaxLedLimit);

Эта функция возвращает текущее суммарное количество светодиодов всех компонентов на всех каналах устройства. Основное использование — проверка наличия выбранных компонентов, так как 0 светодиодов соответствует 0 компонентам.

ВозвратОписаниеТипПример
LedCountТекущее количество светодиодов на всех каналахInt64
let ColorData = []
if(LightingMode == "Forced"){
// do stuff
}else if(device.getLedCount() == 0){
// do stuff
}else{
// do stuff
}

Эта функция добавляет новый компонентный канал к устройству. При добавлении первого канала на странице устройства появляется UI конфигурации компонентов. Функция принимает необязательный, но рекомендуемый параметр LedLimit для предупреждения пользователя о превышении безопасных лимитов светодиодов устройства. Этот лимит используется в нескольких местах, поэтому его настройка настоятельно рекомендуется.

ПараметрОписаниеТипПример
ChannelNameИмя канала для ссылки на негоString”Channel 1”
LedLimitБезопасный рабочий лимит светодиодов каналаInt204
//Channel Name, Led Limit
var ChannelArray = [
["Channel 1", 204],
["Channel 2", 204],
]
function SetupChannels(){
device.SetLedLimit(DeviceMaxLedLimit);
for(let i = 0; i < ChannelArray.length; i++){
device.addChannel(ChannelArray[i][0],ChannelArray[i][1]);
}
}

Эта функция удаляет канал с устройства. В нормальных условиях эта функция не нужна, так как каналы очищаются при завершении работы SignalRGB. Однако, поскольку каналы сохраняются между горячими перезагрузками файла плагина, может потребоваться очистить их в функции initialize при возникновении проблем в процессе разработки.

ПараметрОписаниеТипПример
ChannelNameИмя канала для удаленияString”Channel 1”
device.createChannel("Channel1")
// Do stuff
device.removeChannel("Channel1")

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

ВозвратОписаниеТипПример
Channel NamesСписок всех имён каналов устройстваОдномерный массив[“Channel 1”,“Channel 2”]
let channels = device.getChannelNames();

Это точка входа для взаимодействия с ComponentChannel. Возвращает ссылку на сам ComponentChannel, если один соответствует заданному ChannelName; если такого нет — возвращает null.

ПараметрОписаниеТипПример
ChannelNameИмя канала для получения ссылкиString”Channel 1”
ВозвратОписаниеТип
ComponentChannelОбъект ComponentChannelComponentChannel | Null
let components = device.channel("Channel 1").getComponentNames();

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

Аналогично функции device.ledLimit(), устанавливает максимальный безопасный лимит светодиодов для данного ComponentChannel.

ПараметрОписаниеТипПример
LedLimitЖелаемый лимит светодиодов для каналаInt16
device.channel("Channel 1").SetLedLimit(204);

Возвращает количество светодиодов, настроенных пользователем на этом ComponentChannel.

ВозвратОписаниеТипПример
LedCountТекущее количество светодиодов каналаInt16
let ChannelLedCount = device.channel("Channel 1").LedCount();

Эта функция возвращает массив цветовых данных RGB на основе карты и координат светодиодов устройства. Возвращаемое значение во многом зависит от установки правильных аргументов.

ПараметрыОписаниеТипПримерПо умолчанию
ArrayOrderЖелаемый формат массиваString”Inline""Seperate”
ColorOrderЖелаемый порядок цветовString”RGB""RGB”
Порядок массиваОписаниеТипПример
InlineФорматирует цветовые данные в плоский массив по порядкуОдномерный массив[R,G,B,R,G,B]
SeperateФорматирует цветовые данные в 3 отдельных каналаДвумерный массив[[R,R], [G,G], [B,B]]

ColorOrder — это трёхбуквенная комбинация “RGB”: например, “BGR”, “GBR”, “RBG” — определяет порядок цветов при использовании Inline ArrayOrder. Некорректные значения вернутся к “RGB”.

ВозвратОписаниеТипПример
RGB DataВозвращённые данные цветов RGB в желаемом форматеArrayСм. таблицу порядка массива
RGBData = device.channel("Channel 1").getColors("Inline", "GRB");

Эта функция возвращает булево значение — должен ли данный канал устройства «пульсировать». Это может быть запрошено из-за отсутствия выбранных компонентов или если отображается UI настройки компонентов.

device.getChannelPulseColor() можно использовать для получения ожидаемого цвета пульсации.

ВозвратТипОписание
ShouldPulsebooleanДолжен ли этот канал пульсировать