跳到內容

什麼是元件?

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 格式,請參閱元件結構


使用者通過 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 的燈條,這個抽象層都能正常工作。


如果您正在為燈光控制器(具有一個或多個驅動通用 LED 鏈的輸出通道的裝置)編寫外掛程式,您不需要在外掛程式中內建特定產品的 LED 映射。您定義通道,元件系統處理其餘部分。

這意味著:

  • 您的外掛程式自動與元件函式庫中的任何產品相容
  • 使用者可以在同一控制器上混用不同產品
  • 新產品只需添加元件 JSON 檔案即可獲得支援——無需修改外掛程式

有關外掛程式端 API,請參閱使用元件;有關如何創建元件檔案,請參閱元件結構