Hjälpfunktioner
Enhetshjälpfunktioner
Section titled “Enhetshjälpfunktioner”device.color()
Section titled “device.color()”Den här funktionen är sättet att hämta färgdata från canvasen. Den tar en X,Y-position relativt enhetens pixelbuffert på canvasen och inom den bufferten, och returnerar en [R,G,B]-array med färgen på den pixeln.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| X | Int | Int-värde som representerar X-koordinaten i enhetens pixelbuffert | 5 |
| Y | Int | Int-värde som representerar Y-koordinaten i enhetens pixelbuffert | 3 |
- Obs: De X,Y-koordinater som skickas in måste ligga inom pixelbufferten som definieras av Size()-exporten.
| Returnerar | Typ | Beskrivning | Exempel |
|---|---|---|---|
| ColorArray | 1D Array | Array med längd 3 som innehåller [R, G, B]-värden koordinerade i intervallet 0–255 (HEX 00–FF) | [128,158,255] |
Nedan visas ett förkortat exempel på hur funktionen används i ett typiskt scenario.
for(var iIdx = 0; iIdx < vLedPositions.length; iIdx++) // För varje LED på enheten { var iPxX = vLedPositions[iIdx][0]; // Hämta X- och Y-värden från [X,Y]-arrayen var iPxY = vLedPositions[iIdx][1]; var col; // Skapa variabel för att hålla [R,G,B]-arraydata if(shutdown){ // Kontrollera några inställningar som kan åsidosätta device.color()-anropet col = hexToRgb(shutdownColor) }else if (LightingMode == "Forced") { col = hexToRgb(forcedColor) }else{ col = device.color(iPxX, iPxY); // Anropa Device.color med X- och Y-värden } // Spara färgdata i ordning i den stora arrayen med alla LED-data RGBdata[iIdx*3] = col[0]; // Röd kanal RGBdata[iIdx*3+1] = col[1]; // Grön kanal RGBdata[iIdx*3+2] = col[2]; // Blå kanal TotalLedCount += 1; }device.getBrightness()
Section titled “device.getBrightness()”Returnerar aktuell ljusstyrkenivå för enheten i SignalRGB. Det här värdet är redan applicerat på färgerna som returneras av device.color() och liknande funktioner.
| Returnerar | Typ | Beskrivning | Exempel |
|---|---|---|---|
| Brightness | int | Aktuell ljusstyrka i intervallet 0–100 | 42 |
device.getMotherboardName()
Section titled “device.getMotherboardName()”Returnerar WMI-namnet på det aktuella systemets moderkort.
| Returnerar | Typ | Beskrivning | Exempel |
|---|---|---|---|
| MotherboardName | string | Systemets moderkortnamn | B550 Aorus Elite |
device.pause()
Section titled “device.pause()”Den här funktionen försöker pausa enhetens tråd under den angivna tiden. På grund av hur operativsystemet hanterar trådvilolägen är dessa pauser inte exakt garanterade.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| Duration | Int | Önskad pauslängd i millisekunder | 1 |
- Obs: Windows minimala vilotid är 1–2 ms och problem kan uppstå vid längre vilolägen — använd inte dessa för exakt timing.
packet[89] = CalculateCrc(packet); device.send_report(packet, 91); device.pause(1); // En paus behövs här (mellan paket), annars hinner inte firmware med.device.set_endpoint()
Section titled “device.set_endpoint()”Den här funktionen ändrar den aktiva slutpunkten för alla läs- och skrivkommandon. Användbart för enheter med flera öppna slutpunkter för olika kommandon. Ett vanligt exempel är Logitech-enheter som har en RGB-datasluttpunkt och en systemkommandasluttpunkt för saker som DPI-inställningar.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| interface | HEX | 0x Hex-värde som representerar interface-värdet för slutpunkten som ska öppnas | 0x0002 |
| usage | HEX | 0x Hex-värde som representerar usage-värdet för slutpunkten som ska öppnas | 0x0006 |
| usage_page | HEX | 0x Hex-värde som representerar usage_page-värdet för slutpunkten som ska öppnas | 0x0080 |
| collection | HEX | 0x Hex-värde som representerar collection-värdet för slutpunkten som ska öppnas | 0x0001 |
function Apply(){ var packet = [];
packet[0] = 0x11; packet[1] = 0xFF; packet[2] = 0x0C; packet[3] = 0x5E;
device.set_endpoint(1, 0x0602, 0xff43); // Systemgränssnitt device.write(packet, 20);}device.log()
Section titled “device.log()”Den här funktionen är plugin-filens version av console.log. Den tar en sträng, ett nummer, ett objekt eller en array och loggar det i enhetens konsol för felsökning och användarinformation. Detta är särskilt användbart för att visa DPI-ändringar, fel eller paketlayouten och indata från läskommandon under utveckling.
- Obs: Den här funktionen försöker konvertera JavaScript-variabler till strängar där det är möjligt. Att logga malliteraler med parseInt(), toString() eller JSON.stringify() ger mer kontroll över konvertering och formatering.
| Parameter | Typ | Beskrivning | Exempel | Standard |
|---|---|---|---|---|
| Item | Javascript-värde | En sträng, ett nummer, en array eller annat JavaScript-värde att logga | ||
| Options | JavaScript-objekt | JavaScript-objekt med inställningsparametrar | {hex: True} | {} |
| Alternativ | Beskrivning | Typ | Standard |
|---|---|---|---|
| Hex | Ställer in om heltal skrivs ut i decimalt eller hex-format | Boolean | False |
| toFile | Ställer in om utskrivna objekt visas i felsökningsloggar eller bara i enhetens konsol | Boolean | False |
let ImportantData = "verkligen viktig information här"; device.log(ImportantData, {toFile: true})Varningar
Section titled “Varningar”Varningar kan användas för att visuellt varna användaren om det finns ett problem med deras enhet. De bör användas sparsamt och reserveras för showstoppande problem som att enheter inte är korrekt konfigurerade.
device.notify()
Section titled “device.notify()”Skapar en ny varning för användaren. Returvärdet kan användas för att selektivt ta bort varningen och bör göras om användaren åtgärdar det varnade problemet.
| Varningsprioritet | Beskrivning | Värde |
|---|---|---|
| Info | Normal varning | 0 |
| Important | Kritisk (markerad) varning | 1 |
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| Title | String | Varningsrubrik | Firmware Incompatible |
| Description | String | Varningsbeskrivning | Firmware Version must be >= 2.0.0 |
| Priority | Int | Varningsprioritet | 0 | 1 |
| Returnerar | Typ | Beskrivning |
|---|---|---|
| AlertId | String | Id-strängen för den skapade varningen |
let Alertid = device.notify("Verkligt viktigt problem", "Vänligen åtgärda", 1);device.denotify()
Section titled “device.denotify()”Tar bort den angivna varningen om den finns.
| Parameter | Typ | Beskrivning |
|---|---|---|
| AlertId | String | AlertId som returnerades av device.notify |
let Alertid = device.notify("Verkligt viktigt problem", "Vänligen åtgärda", 1); // Utför åtgärder och kontrollera om det varnade problemet är löst device.denotify(AlertId);Meddelanden
Section titled “Meddelanden”Enhetsmeddelanden ger ett sätt att kommunicera viktig men icke-showstoppande information till användaren. Dessa meddelanden visas enbart på enhetens sida.

device.addMessage()
Section titled “device.addMessage()”Lägger till ett nytt enhetsmeddelande med det angivna messageId.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| messageId | string | MessageId kopplat till enhetsmeddelandet | ”mymessage” |
| message | string | Meddelandetexten som visas | ”Meddelande” |
| tooltip | string | Ytterligare text som visas vid hovring | ”Lite mer information” |
device.addMessage("message1", "Hej, det här bör du känna till", "Det finns även lite extra information om detta");device.removeMessage()
Section titled “device.removeMessage()”Tar bort meddelandet skapat med det angivna messageId om det finns.
| Parameter | Typ | Beskrivning |
|---|---|---|
| messageId | string | MessageId att ta bort |
device.addMessage("message1", "Hej, det här bör du känna till", "Det finns även lite extra information om detta");
// meddelandet är inte längre relevant device.removeMessage("message1");