Функции компонентов
Функции устройства
Заголовок раздела «Функции устройства»Эти функции предназначены для настройки устройства с совместимостью с системой компонентов.
device.SetLedLimit()
Заголовок раздела «device.SetLedLimit()»Эта функция принимает целочисленное значение и устанавливает верхний лимит светодиодов для всех компонентных каналов устройства. Используется для проверки безопасности в бэкенде и для предотвращения перегрузки устройств потреблением мощности сверх допустимого. Должна быть установлена на то же максимальное значение, которое компания-производитель задаёт для устройства.
| Параметр | Описание | Тип | Пример |
|---|---|---|---|
| LedLimit | Желаемый лимит светодиодов для всех каналов устройства | Int | 80 |
const DeviceMaxLedLimit = 233; device.SetLedLimit(DeviceMaxLedLimit);device.getLedCount()
Заголовок раздела «device.getLedCount()»Эта функция возвращает текущее суммарное количество светодиодов всех компонентов на всех каналах устройства. Основное использование — проверка наличия выбранных компонентов, так как 0 светодиодов соответствует 0 компонентам.
| Возврат | Описание | Тип | Пример |
|---|---|---|---|
| LedCount | Текущее количество светодиодов на всех каналах | Int | 64 |
let ColorData = [] if(LightingMode == "Forced"){ // do stuff }else if(device.getLedCount() == 0){ // do stuff }else{ // do stuff }device.addChannel()
Заголовок раздела «device.addChannel()»Эта функция добавляет новый компонентный канал к устройству. При добавлении первого канала на странице устройства появляется UI конфигурации компонентов. Функция принимает необязательный, но рекомендуемый параметр LedLimit для предупреждения пользователя о превышении безопасных лимитов светодиодов устройства. Этот лимит используется в нескольких местах, поэтому его настройка настоятельно рекомендуется.
| Параметр | Описание | Тип | Пример |
|---|---|---|---|
| ChannelName | Имя канала для ссылки на него | String | ”Channel 1” |
| LedLimit | Безопасный рабочий лимит светодиодов канала | Int | 204 |
//Channel Name, Led Limitvar 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]); }}device.removeChannel()
Заголовок раздела «device.removeChannel()»Эта функция удаляет канал с устройства. В нормальных условиях эта функция не нужна, так как каналы очищаются при завершении работы SignalRGB. Однако, поскольку каналы сохраняются между горячими перезагрузками файла плагина, может потребоваться очистить их в функции initialize при возникновении проблем в процессе разработки.
| Параметр | Описание | Тип | Пример |
|---|---|---|---|
| ChannelName | Имя канала для удаления | String | ”Channel 1” |
device.createChannel("Channel1") // Do stuff device.removeChannel("Channel1")device.getChannelNames()
Заголовок раздела «device.getChannelNames()»Эта функция возвращает имена всех каналов, существующих на устройстве. Основное применение — отладка, так как имена каналов должны храниться в логике плагина с индексом канала для пакетов устройства. Однако её можно использовать для итерации по всем каналам устройства, если это желательно, с небольшими потерями производительности.
| Возврат | Описание | Тип | Пример |
|---|---|---|---|
| Channel Names | Список всех имён каналов устройства | Одномерный массив | [“Channel 1”,“Channel 2”] |
let channels = device.getChannelNames();device.channel()
Заголовок раздела «device.channel()»Это точка входа для взаимодействия с ComponentChannel. Возвращает ссылку на сам ComponentChannel, если один соответствует заданному ChannelName; если такого нет — возвращает null.
| Параметр | Описание | Тип | Пример |
|---|---|---|---|
| ChannelName | Имя канала для получения ссылки | String | ”Channel 1” |
| Возврат | Описание | Тип |
|---|---|---|
| ComponentChannel | Объект ComponentChannel | ComponentChannel | Null |
let components = device.channel("Channel 1").getComponentNames();ComponentChannel
Заголовок раздела «ComponentChannel»Эти функции используются для управления и взаимодействия с конкретной ссылкой ComponentChannel.
channel.SetLedLimit()
Заголовок раздела «channel.SetLedLimit()»Аналогично функции device.ledLimit(), устанавливает максимальный безопасный лимит светодиодов для данного ComponentChannel.
| Параметр | Описание | Тип | Пример |
|---|---|---|---|
| LedLimit | Желаемый лимит светодиодов для канала | Int | 16 |
device.channel("Channel 1").SetLedLimit(204);channel.LedCount()
Заголовок раздела «channel.LedCount()»Возвращает количество светодиодов, настроенных пользователем на этом ComponentChannel.
| Возврат | Описание | Тип | Пример |
|---|---|---|---|
| LedCount | Текущее количество светодиодов канала | Int | 16 |
let ChannelLedCount = device.channel("Channel 1").LedCount();channel.getColors()
Заголовок раздела «channel.getColors()»Эта функция возвращает массив цветовых данных 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");channel.shouldPulseColors()
Заголовок раздела «channel.shouldPulseColors()»Эта функция возвращает булево значение — должен ли данный канал устройства «пульсировать». Это может быть запрошено из-за отсутствия выбранных компонентов или если отображается UI настройки компонентов.
device.getChannelPulseColor() можно использовать для получения ожидаемого цвета пульсации.
| Возврат | Тип | Описание |
|---|---|---|
| ShouldPulse | boolean | Должен ли этот канал пульсировать |