Zum Inhalt springen

Komponentenfunktionen

Diese Funktionen dienen dazu, das Gerät mit dem Komponentensystem kompatibel zu machen.

Diese Funktion nimmt einen Int-Wert entgegen und setzt das obere LED-Limit für alle Komponentenkanäle des Geräts. Sie wird für Sicherheitsprüfungen im Backend verwendet und verhindert, dass Benutzer ihre Geräte mit mehr Stromaufnahme belasten, als diese verkraften können. Sie sollte auf denselben Maximalwert gesetzt werden, den der Hersteller für das Gerät festlegt.

ParameterBeschreibungTypBeispiel
LedLimitDas gewünschte LED-Limit für alle Kanäle des GerätsInt80
const DeviceMaxLedLimit = 233;
device.SetLedLimit(DeviceMaxLedLimit);

Diese Funktion gibt die aktuelle kombinierte LED-Anzahl aller Komponenten auf allen Kanälen des Geräts zurück. Die Hauptverwendung besteht darin zu prüfen, ob Komponenten ausgewählt sind, da 0 LEDs dasselbe ist wie 0 Komponenten.

RückgabeBeschreibungTypBeispiel
LedCountDie aktuelle LED-Anzahl aller KanäleInt64
let ColorData = []
if(LightingMode == "Forced"){
// do stuff
}else if(device.getLedCount() == 0){
// do stuff
}else{
// do stuff
}

Diese Funktion fügt dem Gerät einen neuen Komponentenkanal hinzu. Wenn der erste Kanal hinzugefügt wird, erscheint die Benutzeroberfläche zur Komponentenkonfiguration auf der Geräteseite. Die Funktion nimmt ein optionales, aber empfohlenes LedLimit entgegen, um den Benutzer zu warnen, wenn er die sicheren LED-Limits des Geräts überschreitet. Dieses Limit wird an mehreren Stellen verwendet, daher wird dringend empfohlen, es zu setzen.

ParameterBeschreibungTypBeispiel
ChannelNameDer ChannelName, der zur Referenzierung dieses Kanals verwendet wirdString”Channel 1”
LedLimitDas sichere Betrieb-LED-Limit des KanalsInt204
//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]);
}
}

Diese Funktion entfernt einen Kanal vom Gerät. Unter normalen Umständen sollte diese Funktion nicht benötigt werden, da Kanäle beim Beenden von SignalRGB bereinigt werden. Da die Kanäle jedoch zwischen Hot-Reloads der Plugin-Datei bestehen bleiben, möchten Sie sie möglicherweise in der Initialisierungsfunktion bereinigen, falls Sie beim Entwickeln des Plugins Probleme haben.

ParameterBeschreibungTypBeispiel
ChannelNameDer zu entfernende ChannelNameString”Channel 1”
device.createChannel("Channel1")
// Do stuff
device.removeChannel("Channel1")

Diese Funktion gibt die Namen aller derzeit auf dem Gerät vorhandenen Kanäle zurück. Die Hauptverwendung liegt im Debug-Bereich, da Kanalnamen innerhalb der Plugin-Logik mit dem Index des Kanals für die Pakete des Geräts gespeichert werden sollten. Sie kann jedoch auch verwendet werden, um bei einem geringen Leistungsverlust über alle Kanäle des Geräts zu iterieren.

RückgabeBeschreibungTypBeispiel
Channel NamesEine Liste aller Kanalnamen auf dem Gerät1D Array[“Channel 1”,“Channel 2”]
let channels = device.getChannelNames();

Dies ist Ihr Einstiegspunkt für die Interaktion mit ComponentChannels. Es gibt eine Referenz auf den ComponentChannel selbst zurück, wenn einer mit dem angegebenen ChannelName übereinstimmt; andernfalls wird null zurückgegeben.

ParameterBeschreibungTypBeispiel
ChannelNameDer ChannelName, zu dem eine Referenz abgerufen werden sollString”Channel 1”
RückgabeBeschreibungTyp
ComponentChannelComponentChannel-ObjektComponentChannel | Null
let components = device.channel("Channel 1").getComponentNames();

Diese Funktionen werden verwendet, um eine bestimmte ComponentChannel-Referenz zu steuern und mit ihr zu interagieren.

Wie die ähnliche Funktion device.ledLimit() setzt diese Funktion das maximale sichere LED-Limit für diesen ComponentChannel.

ParameterBeschreibungTypBeispiel
LedLimitDas gewünschte LED-Limit für den KanalInt16
device.channel("Channel 1").SetLedLimit(204);

Gibt die Anzahl der LEDs zurück, die der Benutzer auf diesem ComponentChannel konfiguriert hat.

RückgabeBeschreibungTypBeispiel
LedCountDie aktuelle LED-Anzahl des KanalsInt16
let ChannelLedCount = device.channel("Channel 1").LedCount();

Diese Funktion gibt ein Array von RGB-Farbdaten basierend auf der LED-Map und den Koordinaten des Geräts zurück. Der Rückgabewert dieser Funktion hängt stark von der Einstellung der richtigen Argumente ab.

ParameterBeschreibungTypBeispielStandard
ArrayOrderDas gewünschte Array-FormatString”Inline""Seperate”
ColorOrderDie gewünschte FarbreihenfolgeString”RGB""RGB”
Array OrderBeschreibungTypBeispiel
InlineFormatiert die Farbdaten in ein flaches Array in der richtigen Reihenfolge1D Array[R,G,B,R,G,B]
SeperateFormatiert die Farbdaten in 3 getrennte Kanäle2D Array[[R,R], [G,G], [B,B]]

ColorOrder ist eine 3-Buchstaben-Kombination aus “RGB”, z. B. “BGR”, “GBR”, “RBG”. Es bestimmt die Reihenfolge der Farben bei Verwendung der Inline ArrayOrder. Ungültige Werte werden auf “RGB” zurückgesetzt.

RückgabeBeschreibungTypBeispiel
RGB DataDie zurückgegebenen RGB-Farbdaten im gewünschten FormatArraySiehe Array-Order-Tabelle
RGBData = device.channel("Channel 1").getColors("Inline", "GRB");

Diese Funktion gibt einen booleschen Wert zurück, der angibt, ob dieser Gerätekanal „pulsieren” soll. Dies kann angefordert werden, wenn keine Komponenten ausgewählt sind oder wenn die Onboarding-Benutzeroberfläche zur Komponenteneinrichtung angezeigt wird.

device.getChannelPulseColor() kann verwendet werden, um die erwartete Pulsfarbe abzurufen.

RückgabeTypBeschreibung
ShouldPulsebooleanOb dieser Kanal pulsieren soll