Przejdź do głównej zawartości

Narzędzia

Ta funkcja służy do pobierania danych kolorów z canvas. Przyjmuje pozycję X,Y względem i wewnątrz bufora pikseli urządzenia na canvas i zwraca tablicę [R,G,B] koloru na tym pikselu.

ParametrTypOpisPrzykład
XIntWartość Int reprezentująca współrzędną X w buforze pikseli urządzenia5
YIntWartość Int reprezentująca współrzędną Y w buforze pikseli urządzenia3
  • Uwaga: podane współrzędne X,Y muszą mieścić się w buforze pikseli ustawionym przez eksport Size().
ZwrotTypOpisPrzykład
ColorArrayTablica 1DTablica o długości 3 zawierająca współrzędne wartości [R, G, B] w zakresie 0–255 (HEX 00–FF)[128,158,255]

Poniżej skrócony przykład funkcji w typowej sytuacji.

for(var iIdx = 0; iIdx < vLedPositions.length; iIdx++) //For each Led on the device
{
var iPxX = vLedPositions[iIdx][0]; //Get the X and Y values from the [X,Y] array
var iPxY = vLedPositions[iIdx][1];
var col; // create a variable to contain the [R.G.B] array data
if(shutdown){ // Check for some settings that can override the Device.color() call
col = hexToRgb(shutdownColor)
}else if (LightingMode == "Forced") {
col = hexToRgb(forcedColor)
}else{
col = device.color(iPxX, iPxY); //Calling Device.color with the X and Y values
}
//Saving the Color data in order into a larger Array of all the LED's data
RGBdata[iIdx*3] = col[0]; // Red Channel
RGBdata[iIdx*3+1] = col[1]; //Green Channel
RGBdata[iIdx*3+2] = col[2]; //Blue Channel
TotalLedCount += 1;
}

Zwraca aktualny poziom jasności urządzenia w SignalRGB. Ta wartość jest już zastosowana do wszystkich kolorów zwracanych przez device.color() lub podobne funkcje.

ZwrotTypOpisPrzykład
BrightnessintAktualna jasność w zakresie 0–10042

Zwraca nazwę WMI płyty głównej bieżącego systemu.

ZwrotTypOpisPrzykład
MotherboardNamestringNazwa płyty głównej systemuB550 Aorus Elite

Ta funkcja próbuje wstrzymać wątek urządzenia na określony czas. Te pauzy nie są gwarantowane jako dokładne ze względu na sposób, w jaki system operacyjny obsługuje uśpienie wątków.

ParametrTypOpisPrzykład
DurationIntŻądana długość pauzy w milisekundach1
  • Uwaga: Windows ma minimalny czas uśpienia wynoszący 1–2 ms i zaczyna się zacinać, gdy uśpienie jest dłuższe, więc nie używaj go do dokładnych pomiarów czasu.
packet[89] = CalculateCrc(packet);
device.send_report(packet, 91);
device.pause(1); // We need a pause here (between packets), otherwise the ornata can't keep up.

Ta funkcja zmienia aktywny punkt końcowy dla wszystkich operacji odczytu i zapisu. Jest to przydatne dla urządzeń z wieloma otwartymi punktami końcowymi dla różnych poleceń. Typowym przykładem są urządzenia Logitech z punktem końcowym danych RGB i punktem końcowym poleceń systemowych do takich rzeczy jak ustawienia DPI.

ParametrTypOpisPrzykład
interfaceHEXWartość hex 0x reprezentująca interfejs punktu końcowego do otwarcia0x0002
usageHEXWartość hex 0x reprezentująca użycie punktu końcowego do otwarcia0x0006
usage_pageHEXWartość hex 0x reprezentująca usage_page punktu końcowego do otwarcia0x0080
collectionHEXWartość hex 0x reprezentująca kolekcję punktu końcowego do otwarcia0x0001
function Apply()
{
var packet = [];
packet[0] = 0x11;
packet[1] = 0xFF;
packet[2] = 0x0C;
packet[3] = 0x5E;
device.set_endpoint(1, 0x0602, 0xff43); // System Interface
device.write(packet, 20);
}

Ta funkcja jest odpowiednikiem console.log dla wtyczki. Przyjmuje String, Liczbę, Obiekt lub Tablicę i loguje je do konsoli urządzenia do debugowania i informacji użytkownika. Może być szczególnie przydatna do pokazywania takich rzeczy jak zmiany DPI, błędy lub podczas tworzenia — struktury pakietów lub wejścia z operacji odczytu.

  • Uwaga: Ta funkcja próbuje konwertować zmienne JavaScript na stringi tam, gdzie to możliwe. Logowanie JavaScript Template Literals z parseInt(), toString() lub JSON.stringify daje większą kontrolę nad konwersją i formatowaniem.
ParametrTypOpisPrzykładDomyślnie
ItemWartość JavascriptString, liczba, tablica lub inna wartość JavaScript do zalogowania
OptionsObiekt JavaScriptObiekt JavaScript z parametrami ustawień{hex: True}{}
OpcjeOpisTypDomyślnie
HexOkreśla, czy liczby całkowite są drukowane w formacie dziesiętnym czy szesnastkowymBooleanFalse
toFileOkreśla, czy drukowane elementy pojawiają się w logach debugowania czy tylko w konsoli urządzeniaBooleanFalse
let ImportantData = "i have really important info here";
device.log(ImportantData, {toFile: true})

Powiadomienia mogą być używane do widocznego ostrzegania użytkownika, gdy wystąpił problem z jego urządzeniem. Używaj ich oszczędnie i rezerwuj dla krytycznych problemów, takich jak nieprawidłowo skonfigurowane urządzenia.

Tworzy nowe powiadomienie dla użytkownika. Wartość zwracana może być użyta do selektywnego usunięcia powiadomienia i należy to zrobić, gdy użytkownik rozwiąże zgłoszony problem.

Priorytet powiadomieniaOpisWartość
InfoNormalne powiadomienie0
ImportantKrytyczne (wyróżnione) powiadomienie1
ParametrTypOpisPrzykład
TitleStringTytuł powiadomieniaFirmware Incompatible
DescriptionStringOpis powiadomieniaFirmware Version must be >= 2.0.0
PriorityIntPriorytet powiadomienia0 | 1
ZwrotTypOpis
AlertIdStringCiąg ID utworzonego powiadomienia
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);

Usuwa podane powiadomienie, jeśli istnieje.

ParametrTypOpis
AlertIdStringAlertId zwrócone przez device.notify
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);
// Do stuff and recheck if the alerted issue is fixed
device.denotify(AlertId);

Komunikaty urządzenia zapewniają sposób przekazywania użytkownikowi ważnych, ale niekrytycznych informacji. Te komunikaty pojawiają się tylko na stronie urządzenia.

Dodaje nowy komunikat urządzenia o podanym ID komunikatu.

ParametrTypOpisPrzykład
messageIdstringID komunikatu powiązane z komunikatem urządzenia”mymessage”
messagestringTekst komunikatu do wyświetlenia”The message”
tooltipstringDodatkowy tekst wyświetlany po najechaniu myszą”Some more info”
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");

Usuwa komunikat utworzony z podanym ID komunikatu, jeśli istnieje.

ParametrTypOpis
messageIdstringID komunikatu do usunięcia
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");
// message is no longer relevant
device.removeMessage("message1");