컴포넌트란 무엇인가요?
팬 허브, ARGB 헤더, LED 스트립 컨트롤러와 같은 RGB 컨트롤러는 출력을 LED 순서대로 단순한 체인으로 구동합니다. 컨트롤러는 물리적으로 무엇이 연결되어 있는지 알거나 신경 쓰지 않습니다; 단순히 색상을 선 아래로 하나씩 전송합니다.
문제는 다른 제품들이 그 LED를 매우 다르게 배열한다는 것입니다. 16개 LED 팬은 원형으로 배치됩니다. 30개 LED 스트립은 직선으로 배치됩니다. 이중 링 팬은 내부 링에 8개, 외부 링에 16개가 있을 수 있습니다. 이러한 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에 대해서는 컴포넌트 사용을, 컴포넌트 파일 생성 방법에 대해서는 컴포넌트 구조를 참조하십시오.