Apa itu Components?
Pengontrol RGB — fan hub, header ARGB, pengontrol strip LED — menggerakkan output mereka sebagai rantai LED sederhana secara berurutan. Pengontrol tidak mengetahui atau peduli apa yang terhubung secara fisik; ia hanya mengirim warna satu LED pada satu waktu.
Masalahnya adalah produk yang berbeda mengatur LED tersebut dengan sangat berbeda. Fan dengan 16 LED menempatkannya dalam lingkaran. Strip dengan 30 LED menempatkannya dalam garis. Fan dual-ring mungkin memiliki ring dalam 8 dan ring luar 16. Jika Anda ingin LED tersebut berada di posisi yang tepat di canvas SignalRGB — agar efek pencahayaan sejajar dengan benar di seluruh sistem Anda — Anda perlu mengetahui bentuknya, bukan hanya jumlahnya.
Components menyelesaikan ini. Sebuah component adalah deskripsi JSON dari produk RGB tertentu: berapa banyak LED yang dimilikinya, di mana masing-masing LED berada dalam ruang 2D, dan apa nama masing-masing. SignalRGB menggunakan deskripsi tersebut untuk memetakan warna canvas secara benar ke posisi yang tepat dalam rantai LED, terlepas dari pengontrol mana yang menggerakkannya.
Perpustakaan Component
Section titled “Perpustakaan Component”SignalRGB dilengkapi dengan perpustakaan component bawaan yang besar mencakup fan, strip, pump head, dan aksesori RGB lainnya dari berbagai vendor. Perpustakaan ini juga terbuka untuk kontribusi komunitas — jika suatu produk belum tercakup, Anda dapat membuat file component JSON untuknya dan mengirimkannya.
Lihat Component Structure untuk format JSON.
Cara Penggunaan Component
Section titled “Cara Penggunaan Component”Pengguna menetapkan component ke saluran pada perangkat pengontrol mereka melalui UI pemilih di SignalRGB. Misalnya, pengguna dengan tiga fan Corsair LL120 yang terhubung ke Corsair Lighting Node Pro mungkin mengonfigurasi:
- Channel 1 → Corsair LL120 · Corsair LL120 · Corsair LL120
SignalRGB menumpuk component secara berurutan di sepanjang rantai LED channel dan memposisikan masing-masing di canvas sesuai koordinat LED-nya. Pengguna dapat mengaturnya sesuka mereka — tiga fan berjajar, berbentuk L, di mana pun mereka berada secara fisik di casing mereka.
Plugin tidak perlu mengetahui produk mana yang terpasang. Plugin hanya memanggil device.channel("Channel 1").getColors() dan mendapatkan kembali data warna yang dipetakan dengan benar untuk apa pun yang dikonfigurasi pengguna. Abstraksi ini berlaku terlepas dari apakah ada fan 16 LED atau strip 30 LED di channel tersebut.
Mengapa Ini Penting bagi Penulis Plugin
Section titled “Mengapa Ini Penting bagi Penulis Plugin”Jika Anda menulis plugin untuk pengontrol pencahayaan (perangkat dengan satu atau lebih channel output yang menggerakkan rantai LED generik), Anda tidak perlu membangun pemetaan LED khusus produk ke dalam plugin Anda. Anda mendefinisikan channel, dan sistem component menangani sisanya.
Ini berarti:
- Plugin Anda bekerja dengan produk mana pun di perpustakaan component secara otomatis
- Pengguna dapat mencampur dan mencocokkan produk berbeda di pengontrol yang sama
- Produk baru dapat didukung hanya dengan menambahkan file component JSON — tidak perlu mengubah plugin
Lihat Using Components untuk API sisi plugin, dan Component Structure untuk cara membuat file component.