Przejdź do głównej zawartości

Czym są komponenty?

Kontrolery RGB — huby wentylatorów, nagłówki ARGB, kontrolery taśm LED — sterują swoimi wyjściami jako prostym łańcuchem LED w kolejności. Kontroler nie wie i nie dba o to, co jest fizycznie podłączone; po prostu wysyła kolory kolejno do każdego LED przez przewód.

Problem polega na tym, że różne produkty rozmieszczają te LED bardzo różnie. Wentylator z 16 LED rozmieszcza je w okrąg. Taśma z 30 LED rozmieszcza je w linię. Wentylator z podwójnym pierścieniem może mieć wewnętrzny pierścień 8 i zewnętrzny pierścień 16. Jeśli chcesz, aby te LED znajdowały się we właściwym miejscu na canvas SignalRGB — tak aby efekty oświetlenia prawidłowo wyrównywały się w całym systemie — musisz znać kształt, a nie tylko liczbę.

Komponenty rozwiązują ten problem. Komponent to opis JSON konkretnego produktu RGB: ile ma LED, gdzie każdy LED znajduje się w przestrzeni 2D i jak nazywa się każdy LED. SignalRGB używa tego opisu do prawidłowego mapowania kolorów canvas na właściwą pozycję w łańcuchu LED, niezależnie od tego, który kontroler nim steruje.


SignalRGB jest dostarczany z dużą wbudowaną biblioteką komponentów dla wentylatorów, taśm, głowic pomp i innych akcesoriów RGB od szerokiej gamy dostawców. Biblioteka jest również otwarta na wkłady społeczności — jeśli produkt nie jest jeszcze uwzględniony, możesz utworzyć i przesłać plik JSON komponentu.

Zobacz Struktura komponentu dla formatu JSON.


Użytkownik przypisuje komponenty do kanałów na swoim urządzeniu kontrolera za pomocą interfejsu wyboru w SignalRGB. Na przykład użytkownik z trzema wentylatorami Corsair LL120 podłączonymi do Corsair Lighting Node Pro może ustawić:

  • Kanał 1 → Corsair LL120 · Corsair LL120 · Corsair LL120

SignalRGB układa komponenty kolejno wzdłuż łańcucha LED kanału i pozycjonuje każdy komponent na canvas na podstawie współrzędnych LED. Użytkownik może rozmieszczać je według własnych preferencji — trzy wentylatory w rzędzie, w kształcie L, gdziekolwiek fizycznie znajdują się w obudowie.

Wtyczka nie musi wiedzieć, jakie produkty są podłączone. Po prostu wywołuje device.channel("Kanał 1").getColors() i otrzymuje z powrotem prawidłowo zmapowane dane kolorów dla tego, co użytkownik skonfigurował. Abstrakcja działa niezależnie od tego, czy na tym kanale znajduje się wentylator z 16 LED, czy taśma z 30 LED.


Jeśli piszesz wtyczkę dla kontrolera oświetlenia (urządzenie z jednym lub więcej kanałami wyjściowymi sterującymi generycznymi łańcuchami LED), nie musisz budować mapowań LED specyficznych dla produktu w swojej wtyczce. Definiujesz kanały, a system komponentów zajmuje się resztą.

Oznacza to:

  • Twoja wtyczka automatycznie działa z dowolnym produktem w bibliotece komponentów
  • Użytkownicy mogą łączyć różne produkty na tym samym kontrolerze
  • Nowe produkty mogą być obsługiwane po prostu przez dodanie pliku JSON komponentu — bez zmian w wtyczce

Zobacz Używanie komponentów dla API wtyczki i Struktura komponentu do tworzenia pliku komponentu.