Gå til indhold

Komponentfunktioner

Disse funktioner bruges til at gøre enheden kompatibel med Component-systemet.

Denne funktion tager en Int-værdi og sætter den øverste LED-grænse for alle komponentkanaler på enheden. Den bruges til sikkerhedskontrol i backend og forhindrer brugere i at belaste deres enheder med mere strøm end de kan klare. Den bør sættes til den samme maksimumværdi som producenten angiver for enheden.

ParameterBeskrivelseTypeEksempel
LedLimitDen ønskede LED-grænse for alle enhedens kanalerInt80
const DeviceMaxLedLimit = 233;
device.SetLedLimit(DeviceMaxLedLimit);

Denne funktion returnerer det aktuelle kombinerede LED-antal for alle komponenter på alle enhedens kanaler. Primær brug er at kontrollere om der er valgt komponenter, da 0 LED’er svarer til 0 komponenter.

ReturneringBeskrivelseTypeEksempel
LedCountDet aktuelle LED-antal for alle kanalerInt64
let ColorData = []
if(LightingMode == "Forced"){
// do stuff
}else if(device.getLedCount() == 0){
// do stuff
}else{
// do stuff
}

Denne funktion tilføjer en ny komponentkanal til enheden. Når den første kanal tilføjes, vises brugergrænsefladen til komponentkonfiguration på enhedssiden. Funktionen tager en valgfri men anbefalet LedLimit for at advare brugeren, hvis han overskrider enhedens sikre LED-grænser. Denne grænse bruges flere steder, så det anbefales kraftigt at sætte den.

ParameterBeskrivelseTypeEksempel
ChannelNameDet ChannelName der bruges til at referere denne kanalString”Channel 1”
LedLimitKanalens sikre drifts-LED-grænseInt204
//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]);
}
}

Denne funktion fjerner en kanal fra enheden. Under normale omstændigheder bør denne funktion ikke være nødvendig, da kanaler ryddes op ved lukning af SignalRGB. Da kanalerne dog bevares mellem hot-reloads af plugin-filen, ønsker du måske at rydde op i dem i initialiseringsfunktionen, hvis du har problemer under udvikling af pluginet.

ParameterBeskrivelseTypeEksempel
ChannelNameDet ChannelName der skal fjernesString”Channel 1”
device.createChannel("Channel1")
// Do stuff
device.removeChannel("Channel1")

Denne funktion returnerer navnene på alle kanaler der aktuelt er til stede på enheden. Primær brug er til debugging, da kanalnavne inden for plugin-logikken bør gemmes med kanalens indeks til enhedens pakker. Den kan dog også bruges til at iterere over alle enhedens kanaler med et lille præstationstab.

ReturneringBeskrivelseTypeEksempel
Channel NamesEn liste over alle kanalnavne på enheden1D Array[“Channel 1”,“Channel 2”]
let channels = device.getChannelNames();

Dette er dit indgangspunkt for interaktion med ComponentChannels. Det returnerer en reference til selve ComponentChannel, hvis en matcher det angivne ChannelName; ellers returneres null.

ParameterBeskrivelseTypeEksempel
ChannelNameDet ChannelName der skal hentes en reference tilString”Channel 1”
ReturneringBeskrivelseType
ComponentChannelComponentChannel-objektComponentChannel | Null
let components = device.channel("Channel 1").getComponentNames();

Disse funktioner bruges til at styre og interagere med en bestemt ComponentChannel-reference.

Ligesom den lignende funktion device.ledLimit() sætter denne funktion den maksimale sikre LED-grænse for denne ComponentChannel.

ParameterBeskrivelseTypeEksempel
LedLimitDen ønskede LED-grænse for kanalenInt16
device.channel("Channel 1").SetLedLimit(204);

Returnerer antallet af LED’er som brugeren har konfigureret på denne ComponentChannel.

ReturneringBeskrivelseTypeEksempel
LedCountDet aktuelle LED-antal for kanalenInt16
let ChannelLedCount = device.channel("Channel 1").LedCount();

Denne funktion returnerer et array med RGB-farvedata baseret på enhedens LED-map og koordinater. Returværdien af denne funktion afhænger stærkt af at de rigtige argumenter angives.

ParameterBeskrivelseTypeEksempelStandard
ArrayOrderDet ønskede array-formatString”Inline""Seperate”
ColorOrderDen ønskede farverækkefølgeString”RGB""RGB”
Array OrderBeskrivelseTypeEksempel
InlineFormaterer farvedataene til et fladt array i den rigtige rækkefølge1D Array[R,G,B,R,G,B]
SeperateFormaterer farvedataene til 3 separate kanaler2D Array[[R,R], [G,G], [B,B]]

ColorOrder er en 3-bogstavs kombination af “RGB”, f.eks. “BGR”, “GBR”, “RBG”. Det bestemmer farverækkefølgen ved brug af Inline ArrayOrder. Ugyldige værdier nulstilles til “RGB”.

ReturneringBeskrivelseTypeEksempel
RGB DataDe returnerede RGB-farvedata i det ønskede formatArraySe Array-Order-tabel
RGBData = device.channel("Channel 1").getColors("Inline", "GRB");

Denne funktion returnerer en boolean der angiver om denne enhedskanal skal “pulsere”. Dette kan anmodes om, når der ikke er valgt nogen komponenter, eller når onboarding-brugergrænsefladen til komponentopsætning vises.

device.getChannelPulseColor() kan bruges til at hente den forventede pulsfarve.

ReturneringTypeBeskrivelse
ShouldPulsebooleanOm denne kanal skal pulsere