Eksporty wtyczki
Używamy różnych funkcji do komunikacji z API backendu. Raportują one informacje takie jak dane urządzenia, punkty wejścia środowiska uruchomieniowego, wyświetlaną nazwę, wymiary canvas, ID produktu i dostawcy do wyszukiwania, pętlę renderowania i inne.
”Name” i “Publisher”
Dział zatytułowany „”Name” i “Publisher””Te funkcje eksportują nazwę urządzenia i wydawcę wyświetlane w SignalRGB.
export function Name() { return "Device Product name as a String"; };export function Publisher() { return "This is You! as a String"; };”VendorId” i “ProductId”
Dział zatytułowany „”VendorId” i “ProductId””Te funkcje są używane do wyszukiwania urządzenia w systemie. Obie są kodowane jako wartości szesnastkowe w formacie “0x ”. Muszą dokładnie pasować do ID twojego urządzenia. Jeśli twoja wtyczka nie pojawia się w SignalRGB, najprawdopodobniej przyczyną jest niezgodny ID dostawcy i produktu. Absolutnym minimum do wykrycia urządzenia w SignalRGB jest pasujący ID dostawcy i produktu.
export function VendorId() { return 0xABCD;}; //Device's USB Vendor Id in Hexexport function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex”Size” i pozycjonowanie
Dział zatytułowany „”Size” i pozycjonowanie”Ustawia podstawowy rozmiar pola urządzenia na canvas — przed jakimkolwiek skalowaniem — jako dwuwymiarową tablicę zawierającą tylko liczby całkowite. Nie możesz pobierać kolorów poza tymi granicami w swojej wtyczce, więc rozmiar musi być ustawiony tak, aby pomieścić szerokość i wysokość LED urządzenia przy tłumaczeniu ich na siatkę.
export function Size() { return [X,Y]; };Te funkcje ustawiają domyślną pozycję urządzenia przed dostosowaniami użytkownika. DefaultPosition zwraca współrzędne 2D lewego górnego rogu. DefaultScale zwraca mnożnik skalowania w zakresie 1,0–30,0.
export function DefaultPosition(){return [X,Y]};export function DefaultScale(){return 8.0};”Led Names”
Dział zatytułowany „”Led Names””Ta funkcja zwraca dwuwymiarową tablicę wszystkich nazw LED na urządzeniu. Powinny one być zgodne z obsługiwanymi nazwami klawiszy (patrz dokumentacja nazw klawiszy), aby obsługiwać efekty naciśnięcia klawiszy i funkcje malowania LED.
var vLedNames = [ "Scroll Wheel", "Side Led 1","Side Led 2","Side Led 3","Side Led 4", "Side Led 5","logo", "Right Side Led", "Dpi 1","dpi 2","Dpi 3", "Battery indicator"];export function LedNames(){return vLedNames;};”Led Positions”
Dział zatytułowany „”Led Positions””Ta funkcja zwraca macierz indywidualnych pozycji LED w buforze pikseli urządzenia. Wszystkie pozycje muszą mieścić się w granicach ustawionych przez eksport Size() urządzenia.
var vLedPositions = [ [3,0], [0,1],[0,2],[0,3],[0,4],[0,5],[3,5],[5,5], [0,2],[0,1],[0,0], [3,1]];export function LedPositions(){return vLedPositions;};”ControllableParameters”
Dział zatytułowany „”ControllableParameters””Ta funkcja zawiera wszystkie ustawienia wtyczki urządzenia. Te ustawienia są przechowywane jako obiekty JS/JSON zwracane w tablicy przez funkcję. Zobacz Kontrolki użytkownika dla więcej informacji.
export function ControllableParameters(){ return [ {SETTING}, {SETTING} ];}”Validate”
Dział zatytułowany „”Validate””Ta funkcja jest odpowiedzialna za określenie, które punkty końcowe USB SignalRGB chce otworzyć i używać dla urządzenia. Każdy punkt końcowy ma cztery parametry jako filtry pasujące do wartości każdego punktu końcowego USB na urządzeniu. Można “otworzyć” wiele punktów końcowych dla każdego urządzenia, ale tylko jeden jest używany w danym momencie. Aby zmienić aktywny punkt końcowy, patrz device.set_endpoint().
Uwaga: Polecenia zazwyczaj muszą być wysyłane do określonego punktu końcowego. Polecenia wysyłane do punktu końcowego skonfigurowanego do odbierania określonego ID raportu lub długości generują błędy, jeśli te wartości nie pasują.
Uwaga: Nie wszystkie urządzenia używają spójnych punktów końcowych w zależności od miejsca i czasu produkcji urządzenia. Walidacja wielu punktów końcowych pozwala automatycznie powrócić do poprzedniego, jeśli to konieczne.
| Dostępne parametry |
|---|
| interface |
| usage |
| usage_page |
| collection |
export function Validate(endpoint){ return (endpoint.interface === 2 && endpoint.collection === 0x0003) || endpoint.interface === 1;
}Ta funkcja ustawia typ protokołu USB do użycia. Większość urządzeń używa protokołów HID, ale niektóre urządzenia, takie jak AIO, używają zamiast tego surowych funkcji sterowania USB.
Uwaga: Wartość domyślna, gdy ta funkcja nie jest dostępna dla SignalRGB, to protokół HID.
| Protokół | Wartość ciągu znaków |
|---|---|
| HID | ”HID” |
| Lib/raw USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
Dział zatytułowany „"ConflictingProcesses””Ta funkcja eksportuje listę konfliktujących nazw exe. SignalRGB nie inicjuje wtyczki, dopóki którykolwiek z nich jest aktywny. Wtyczka zostanie zainicjowana po zamknięciu konfliktującego procesu lub gdy użytkownik pominie komunikat o błędzie.
Uwaga: Te nazwy muszą dokładnie pasować do nazwy aktywnego pliku exe.
export function ConflictingProcesses() { return ["NGenuity2.exe"];}”ImageUrl”
Dział zatytułowany „”ImageUrl””Ta funkcja zwraca ciąg URL obrazu urządzenia. Domyślny rozmiar obrazu wtyczki to 1024×1024 pikseli z obszarem aktywnym 920×920.
export function ImageUrl(){ return "URL image string";}