Hoppa till innehåll

Komponentfunktioner

Dessa funktioner används för att göra enheten kompatibel med komponentssystemet.

Den här funktionen tar ett int-värde och ställer in den övre lysdiodsgränsen för alla komponentkanaler på enheten. Den används för säkerhetskontroller i bakänden och förhindrar att enheter överbelastas med mer effekt än de tål. Bör ställas in på det maximivärde som tillverkaren anger för enheten.

ParameterBeskrivningTypExempel
LedLimitÖnskad lysdiodsgräns för alla kanaler på enhetenInt80
const DeviceMaxLedLimit = 233;
device.SetLedLimit(DeviceMaxLedLimit);

Den här funktionen returnerar det nuvarande totala lysdiodantalet för alla komponenter på alla kanaler på enheten. Det primära användningsfallet är att kontrollera om några komponenter har valts, eftersom 0 lysdioder innebär 0 komponenter.

ReturnerarBeskrivningTypExempel
LedCountNuvarande lysdiodantal för alla kanalerInt64
let ColorData = []
if(LightingMode == "Forced"){
// bearbeta
}else if(device.getLedCount() == 0){
// bearbeta
}else{
// bearbeta
}

Den här funktionen lägger till en ny komponentkanal på enheten. Komponentkonfigurerings-UI:t visas på enhetssidan när den första kanalen läggs till. Den här funktionen tar en valfri men rekommenderad LedLimit för att varna användaren om att de överskrider den säkra lysdiodsgränsen för enheten. Det rekommenderas starkt att ställa in den här gränsen eftersom den används på flera ställen.

ParameterBeskrivningTypExempel
ChannelNameDet ChannelName som används för att referera till den här kanalenString”Channel 1”
LedLimitSäker drifts-lysdiodsgräns för kanalen.Int204
// Kanalnamn, lysdiodsgräns
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]);
}
}

Den här funktionen tar bort en kanal från enheten. Under normala förhållanden bör den här funktionen inte behövas eftersom kanaler rensas när SignalRGB stängs ned. Eftersom kanaler är beständiga mellan heta omladdningar av plugin-filen kanske du vill rensa dem i initieringsfunktionen om du stöter på problem under pluginutveckling.

ParameterBeskrivningTypExempel
ChannelNameDet ChannelName som ska tas bortString”Channel 1”
device.createChannel("Channel1")
// Bearbeta
device.removeChannel("Channel1")

Den här funktionen returnerar namnen på alla kanaler som finns på enheten. Det primära användningsfallet här är för felsökning, eftersom kanalnamn bör lagras i pluginets logik tillsammans med kanalindexet för enhetens paket. Det kan dock också användas för att iterera över alla kanaler på en enhet med en liten prestandaförlust om så önskas.

ReturnerarBeskrivningTypExempel
Channel NamesLista med alla kanalnamn på enheten1D Array[“Channel 1”,“Channel 2”]
let channels = device.getChannelNames();

Det här är ingången till att interagera med ComponentChannels. Returnerar en referens till ComponentChannel som matchar det givna ChannelName om en sådan finns; returnerar annars null.

ParameterBeskrivningTypExempel
ChannelNameDet ChannelName som referensen ska hämtas förString”Channel 1”
ReturnerarBeskrivningTyp
ComponentChannelComponentChannel-objektComponentChannel | Null
let components = device.channel("Channel 1").getComponentNames();

Dessa funktioner används för att inspektera och interagera med en specifik ComponentChannel-referens.

Liksom den liknande device.ledLimit()-funktionen ställer den här funktionen in den maximala säkra lysdiodsgränsen för den här ComponentChanneln.

ParameterBeskrivningTypExempel
LedLimitÖnskad lysdiodsgräns för kanalenInt16
device.channel("Channel 1").SetLedLimit(204);

Det här returnerar det användarkonfigurerade lysdiodantalet i ComponentChanneln.

ReturnerarBeskrivningTypExempel
LedCountNuvarande lysdiodantal för kanalenInt16
let ChannelLedCount = device.channel("Channel 1").LedCount();

Den här funktionen returnerar en array med RGB-färgdata baserat på enhetens lysdiodkarta och koordinater. Returvärdet från den här funktionen beror i hög grad på att rätt argument ställs in.

ParametrarBeskrivningTypExempelStandard
ArrayOrderDet önskade arrayformatetString”Inline""Seperate”
ColorOrderÖnskad färgordningString”RGB""RGB”
ArrayOrderBeskrivningTypExempel
InlineFormaterar färgdata i en platt array i ordning1D Array[R,G,B,R,G,B]
SeperateFormaterar färgdata i 3 separata kanaler2D Array[[R,R], [G,G], [B,B]]

ColorOrder är en 3-bokstavskombination av “RGB”, t.ex. “BGR”, “GBR”, “RBG”. Det bestämmer ordningen på färgerna när Inline ArrayOrder används. Ogiltiga värden återgår till “RGB”.

ReturnerarBeskrivningTypExempel
RGB DataRGB-färgdata returnerad i önskat formatArraySe ArrayOrder-tabellen
RGBData = device.channel("Channel 1").getColors("Inline", "GRB");

Den här funktionen returnerar ett boolean-värde om den här enhetskanalen ‘bör pulsa’. Det kan önskas på grund av att inga komponenter är valda eller för att visa komponentinställnings-UI:t.

device.getChannelPulseColor() kan användas för att hämta den förväntade pulsfärgen.

ReturnerarTypBeskrivning
ShouldPulsebooleanSka den här kanalen pulsa