Przejdź do głównej zawartości

Funkcje komponentu

Te funkcje służą do zapewnienia kompatybilności urządzenia z systemem komponentów.

Ta funkcja przyjmuje wartość int i ustawia górny limit LED dla wszystkich kanałów komponentów na urządzeniu. Służy do kontroli bezpieczeństwa w backendzie i zapobiega przeciążeniu urządzeń przez użytkowników poborem prądu przekraczającym ich możliwości. Powinna być ustawiona na tę samą maksymalną wartość, do której producent ogranicza urządzenie.

ParametrOpisTypPrzykład
LedLimitŻądany limit LED dla wszystkich kanałów na urządzeniuInt80
const DeviceMaxLedLimit = 233;
device.SetLedLimit(DeviceMaxLedLimit);

Ta funkcja zwraca aktualną łączną liczbę LED wszystkich komponentów na wszystkich kanałach urządzenia. Głównym zastosowaniem jest sprawdzenie, czy wybrane są jakiekolwiek komponenty, ponieważ 0 LED oznacza 0 komponentów.

ZwrotOpisTypPrzykład
LedCountAktualna liczba LED wszystkich kanałówInt64
let ColorData = []
if(LightingMode == "Forced"){
// do stuff
}else if(device.getLedCount() == 0){
// do stuff
}else{
// do stuff
}

Ta funkcja dodaje nowy kanał komponentu do urządzenia. Gdy dodawany jest pierwszy kanał, na stronie urządzenia pojawia się interfejs konfiguracji komponentów. Funkcja przyjmuje opcjonalny, ale zalecany parametr LedLimit, który ostrzega użytkownika o przekroczeniu bezpiecznych limitów LED urządzenia. Limit ten jest używany w wielu miejscach, dlatego zdecydowanie zaleca się jego ustawienie.

ParametrOpisTypPrzykład
ChannelNameNazwa kanału używana do odwoływania się do tego kanałuString”Channel 1”
LedLimitBezpieczny operacyjny limit LED kanałuInt204
//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]);
}
}

Ta funkcja usuwa kanał z urządzenia. W normalnych warunkach funkcja ta nie jest potrzebna, ponieważ kanały są czyszczone przy zamknięciu SignalRGB. Jednak ponieważ kanały utrzymują się między hot reloadami pliku wtyczki, możesz chcieć je wyczyścić w funkcji inicjalizacyjnej, jeśli napotkasz problemy podczas tworzenia wtyczki.

ParametrOpisTypPrzykład
ChannelNameNazwa kanału do usunięciaString”Channel 1”
device.createChannel("Channel1")
// Do stuff
device.removeChannel("Channel1")

Ta funkcja zwraca nazwy wszystkich kanałów aktualnie obecnych na urządzeniu. Głównym zastosowaniem jest debugowanie, ponieważ nazwy kanałów powinny być przechowywane w logice wtyczki wraz z indeksem kanału dla pakietów urządzenia. Może jednak być również używana do iterowania po wszystkich kanałach urządzenia według uznania, z niewielkim kosztem wydajności.

ZwrotOpisTypPrzykład
Channel NamesLista wszystkich nazw kanałów na urządzeniuTablica 1D[“Channel 1”,“Channel 2”]
let channels = device.getChannelNames();

To jest punkt dostępu do interakcji z kanałami komponentów. Zwraca referencję do samego kanału komponentu, jeśli istnieje dopasowanie do podanej nazwy kanału; jeśli nie istnieje, zwraca null.

ParametrOpisTypPrzykład
ChannelNameNazwa kanału, do której należy pobrać referencjęString”Channel 1”
ZwrotOpisTyp
ComponentChannelObiekt ComponentChannelComponentChannel | Null
let components = device.channel("Channel 1").getComponentNames();

Te funkcje służą do sterowania konkretną referencją kanału komponentu i komunikacji z nią.

Podobnie jak analogiczna funkcja device.ledLimit(), ustawia maksymalny bezpieczny limit LED dla tego kanału komponentu.

ParametrOpisTypPrzykład
LedLimitŻądany limit LED dla kanałuInt16
device.channel("Channel 1").SetLedLimit(204);

Zwraca liczbę LED skonfigurowanych przez użytkownika na tym kanale komponentu.

ZwrotOpisTypPrzykład
LedCountAktualna liczba LED kanałuInt16
let ChannelLedCount = device.channel("Channel 1").LedCount();

Ta funkcja zwraca tablicę danych kolorów RGB na podstawie mapy LED i współrzędnych urządzenia. Wartość zwracana przez tę funkcję w dużej mierze zależy od ustawienia właściwych argumentów.

ParametryOpisTypPrzykładDomyślnie
ArrayOrderŻądany format tablicyString”Inline""Seperate”
ColorOrderŻądana kolejność kolorówString”RGB""RGB”
Kolejność tablicyOpisTypPrzykład
InlineFormatuje dane kolorów w płaską tablicę w kolejnościTablica 1D[R,G,B,R,G,B]
SeperateFormatuje dane kolorów w 3 oddzielne kanałyTablica 2D[[R,R], [G,G], [B,B]]

ColorOrder to kombinacja 3 liter z “RGB”, np. “BGR”, “GBR”, “RBG”. Określa kolejność kolorów przy użyciu Inline ArrayOrder. Nieprawidłowe wartości domyślnie przyjmują “RGB”.

ZwrotOpisTypPrzykład
RGB DataZwrócone dane kolorów RGB w żądanym formacieTablicaPatrz tabela kolejności tablicy
RGBData = device.channel("Channel 1").getColors("Inline", "GRB");

Ta funkcja zwraca wartość logiczną wskazującą, czy ten kanał urządzenia powinien “pulsować”. Może być to wymagane, gdy nie wybrano żadnych komponentów lub gdy wyświetlany jest interfejs konfiguracji komponentów przy wdrożeniu.

device.getChannelPulseColor() może być używana do pobrania oczekiwanego koloru pulsu.

ZwrotTypOpis
ShouldPulsebooleanCzy ten kanał powinien pulsować