Ga naar inhoud

Componentfuncties

Deze functies zijn bedoeld om het apparaat compatibel te maken met het componentsysteem.

Deze functie neemt een int-waarde en stelt de bovenste LED-limiet in voor alle componentkanalen op het apparaat. Het wordt gebruikt voor veiligheidscontroles in de backend en om te voorkomen dat gebruikers hun apparaten overbelasten met meer stroomverbruik dan het aankan. Het moet worden ingesteld op dezelfde maximale waarde waartoe het productiebedrijf het apparaat beperkt.

ParameterBeschrijvingTypeVoorbeeld
LedLimitDe gewenste LED-limiet voor alle kanalen op het apparaatInt80
const DeviceMaxLedLimit = 233;
device.SetLedLimit(DeviceMaxLedLimit);

Deze functie retourneert het huidige gecombineerde LED-aantal van alle componenten op alle kanalen van het apparaat. Het primaire gebruik is om te controleren of er componenten zijn geselecteerd, aangezien 0 LED’s hetzelfde is als 0 componenten.

RetourBeschrijvingTypeVoorbeeld
LedCountHet huidige LED-aantal van alle kanalenInt64
let ColorData = []
if(LightingMode == "Forced"){
// do stuff
}else if(device.getLedCount() == 0){
// do stuff
}else{
// do stuff
}

Deze functie voegt een nieuw componentkanaal toe aan het apparaat. Wanneer het eerste kanaal wordt toegevoegd, verschijnt de componentconfiguratie-UI op de apparaatpagina. Deze functie neemt een optionele maar aanbevolen LedLimit om de gebruiker te waarschuwen voor het overschrijden van de veilige LED-limieten van het apparaat. Deze limiet wordt op meerdere plaatsen gebruikt, dus het is sterk aanbevolen deze in te stellen.

ParameterBeschrijvingTypeVoorbeeld
ChannelNameDe kanaalnaam die wordt gebruikt om naar dit kanaal te verwijzenString”Channel 1”
LedLimitDe veilige bedrijfs-LED-limiet van het kanaalInt204
//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]);
}
}

Deze functie verwijdert een kanaal van het apparaat. Onder normale omstandigheden is deze functie niet nodig, aangezien kanalen worden opgeruimd wanneer SignalRGB wordt afgesloten. Maar omdat de kanalen blijven bestaan tussen hot reloads van het plugin-bestand, wilt u ze mogelijk wissen in de initialisatiefunctie als u problemen ondervindt bij het ontwikkelen van de plugin.

ParameterBeschrijvingTypeVoorbeeld
ChannelNameDe te verwijderen kanaalnaamString”Channel 1”
device.createChannel("Channel1")
// Do stuff
device.removeChannel("Channel1")

Deze functie retourneert de namen van alle kanalen die momenteel op het apparaat aanwezig zijn. Het primaire gebruik is voor debugdoeleinden, aangezien kanaalnamen moeten worden opgeslagen in de logica van de plugin met de index van het kanaal voor de pakketten van het apparaat. Het kan echter ook worden gebruikt om over alle kanalen op het apparaat te itereren als gewenst, met een kleine prestatieverlies.

RetourBeschrijvingTypeVoorbeeld
Channel NamesEen lijst van alle kanaalnamen op het apparaat1D-array[“Channel 1”,“Channel 2”]
let channels = device.getChannelNames();

Dit is uw toegangspoort tot de interactie met componentkanalen. Het retourneert een verwijzing naar het componentkanaal zelf als er een overeenkomt met de opgegeven kanaalnaam; als er geen bestaat, wordt null geretourneerd.

ParameterBeschrijvingTypeVoorbeeld
ChannelNameDe kanaalnaam waarnaar een verwijzing moet worden opgehaaldString”Channel 1”
RetourBeschrijvingType
ComponentChannelComponentChannel-objectComponentChannel | Null
let components = device.channel("Channel 1").getComponentNames();

Deze functies worden gebruikt om een specifieke componentkanaalverwijzing te besturen en ermee te communiceren.

Net als de vergelijkbare functie device.ledLimit() stelt deze de maximale veilige LED-limiet in voor dit componentkanaal.

ParameterBeschrijvingTypeVoorbeeld
LedLimitDe gewenste LED-limiet voor het kanaalInt16
device.channel("Channel 1").SetLedLimit(204);

Dit retourneert het aantal LED’s dat door de gebruiker is geconfigureerd op dit componentkanaal.

RetourBeschrijvingTypeVoorbeeld
LedCountHet huidige LED-aantal van het kanaalInt16
let ChannelLedCount = device.channel("Channel 1").LedCount();

Deze functie retourneert een array van RGB-kleurgegevens op basis van de LED-kaart en coördinaten van het apparaat. De retourwaarde van deze functie hangt sterk af van het instellen van de juiste argumenten.

ParametersBeschrijvingTypeVoorbeeldStandaard
ArrayOrderHet gewenste arrayformaatString”Inline""Seperate”
ColorOrderDe gewenste kleurvolgordeString”RGB""RGB”
ArrayvolgordeBeschrijvingTypeVoorbeeld
InlineFormatteert de kleurgegevens in een vlakke array in volgorde1D-array[R,G,B,R,G,B]
SeperateFormatteert de kleurgegevens in 3 afzonderlijke kanalen2D-array[[R,R], [G,G], [B,B]]

ColorOrder is een combinatie van 3 letters van “RGB”, bijv. “BGR”, “GBR”,“RBG”. En bepaalt de volgorde van kleuren bij gebruik van de Inline ArrayOrder. Ongeldige waarden gebruiken standaard “RGB”.

RetourBeschrijvingTypeVoorbeeld
RGB-gegevensDe geretourneerde RGB-kleurgegevens in het gewenste formaatArrayZie arrayvolgorde-tabel
RGBData = device.channel("Channel 1").getColors("Inline", "GRB");

Deze functie retourneert een booleaanse waarde die aangeeft of dit apparaatkanaal moet ‘pulseren’. Dit kan worden aangevraagd als er geen componenten zijn geselecteerd, of als de onboarding-componentinstelling-UI wordt weergegeven.

device.getChannelPulseColor() kan worden gebruikt om de verwachte pulskleur op te halen.

RetourTypeBeschrijving
ShouldPulsebooleanMoet dit kanaal pulseren