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.
Biblioteka komponentów
Dział zatytułowany „Biblioteka komponentów”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.
Jak używane są komponenty
Dział zatytułowany „Jak używane są komponenty”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.
Dlaczego to ważne dla autorów wtyczek
Dział zatytułowany „Dlaczego to ważne dla autorów wtyczek”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.