什麼是元件?
RGB 控制器——風扇集線器、ARGB 插針、LED 燈條控制器——將其輸出作為簡單的 LED 鏈依序驅動。控制器不知道也不關心實際連接的是什麼;它只是依次將顏色沿著線路發送,一次一個 LED。
問題在於不同的產品以非常不同的方式排列這些 LED。一個 16 個 LED 的風扇將它們排成圓形。一個 30 個 LED 的燈條將它們排成一條線。一個雙環風扇可能有一個 8 個 LED 的內環和一個 16 個 LED 的外環。如果您希望這些 LED 在 SignalRGB 畫布上位於正確的位置——以便燈光特效在整個系統中正確對齊——您需要知道的是形狀,而不只是數量。
元件解決了這個問題。 元件是對特定 RGB 產品的 JSON 描述:它有多少個 LED、每個 LED 在 2D 空間中的位置,以及每個 LED 的名稱。SignalRGB 使用該描述將畫布顏色正確地映射到 LED 鏈中的正確位置,無論哪個控制器在驅動它。
SignalRGB 附帶一個大型的內建元件函式庫,涵蓋來自各種廠商的風扇、燈條、泵頭和其他 RGB 配件。該函式庫也開放社群貢獻——如果某個產品尚未涵蓋,您可以為其創建元件 JSON 檔案並提交。
有關 JSON 格式,請參閱元件結構。
元件的使用方式
Section titled “元件的使用方式”使用者通過 SignalRGB 中的選擇器 UI 將元件指派給控制器裝置上的通道。例如,一個使用者在 Corsair Lighting Node Pro 上連接了三個 Corsair LL120 風扇,可能會配置:
- 通道 1 → Corsair LL120 · Corsair LL120 · Corsair LL120
SignalRGB 沿著通道的 LED 鏈依序堆疊元件,並根據其 LED 座標將每個元件定位在畫布上。使用者可以按任意方式排列它們——三個風扇排成一排、L 形排列,或者任何它們在機殼中物理位置。
外掛程式不需要知道連接了哪些產品。它只需呼叫 device.channel("Channel 1").getColors() 即可取得使用者配置的任何元件的正確映射顏色資料。無論通道上是 16 個 LED 的風扇還是 30 個 LED 的燈條,這個抽象層都能正常工作。
對外掛程式作者的意義
Section titled “對外掛程式作者的意義”如果您正在為燈光控制器(具有一個或多個驅動通用 LED 鏈的輸出通道的裝置)編寫外掛程式,您不需要在外掛程式中內建特定產品的 LED 映射。您定義通道,元件系統處理其餘部分。
這意味著:
- 您的外掛程式自動與元件函式庫中的任何產品相容
- 使用者可以在同一控制器上混用不同產品
- 新產品只需添加元件 JSON 檔案即可獲得支援——無需修改外掛程式