Przejdź do głównej zawartości

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.

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"; };

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 Hex
export function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex

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};

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;};

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;};

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}
];
}

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"; }

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"];
}

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";}