장치 유형 결정
Type() 내보내기는 SignalRGB에 플러그인에 사용할 USB 통신 프로토콜을 알려줍니다. 잘못된 유형을 선택하는 것은 플러그인이 장치와 통신하지 못하는 가장 일반적인 이유 중 하나입니다.
export function Type() { return "hid"; }사용 가능한 유형
섹션 제목: “사용 가능한 유형”| 유형 문자열 | 프로토콜 | 일반적인 장치 |
|---|---|---|
"hid" | HID (Human Interface Device) | 키보드, 마우스, 헤드셋, 대부분의 소비자 주변기기 |
"rawusb" | libusb를 통한 Raw USB 벌크/인터럽트 전송 | AIO 쿨러, LCD 화면, 커스텀 하드웨어, 조명 컨트롤러 |
"hybrid" | HID와 raw USB 동시 사용 | 제어 명령에 HID를 사용하고 대용량 데이터에 벌크 USB를 사용하는 장치 (예: Alienware 모니터, ASUS Ryuo AIO) |
"serial" | 시리얼/COM 포트 | Arduino 기반 컨트롤러, Hyte CNVS |
"smbus" | SMBus / I²C | RAM, GPU, SMBus를 통해 접근하는 마더보드 헤더 |
"network" | 네트워크 소켓 (TCP 또는 UDP) | Wi-Fi 또는 이더넷 연결 컨트롤러 |
유형 문자열은 대소문자를 구분하지 않습니다 — "HID", "Hid", "hid" 모두 작동하지만 소문자가 관례입니다.
HID
섹션 제목: “HID”HID는 가장 일반적인 유형입니다. 운영 체제는 커스텀 드라이버 없이도 SignalRGB가 장치에 직접 접근할 수 있게 합니다. 키보드, 마우스, 헤드셋, 대부분의 소비자 주변기기에 사용하십시오.
export function Type() { return "hid"; }HID의 경우 쓰기에는 device.write() / device.send_report()를, 읽기에는 device.read() / device.get_report()를 사용합니다. 자세한 내용은 쓰기 및 읽기를 참조하십시오.
Raw USB
섹션 제목: “Raw USB”Raw USB는 HID 레이어를 우회하고 libusb를 사용하여 장치와 직접 통신합니다. 다음과 같은 경우에 필요합니다:
- 장치가 HID 클래스 장치가 아닌 경우
- HID 패킷 크기 제한보다 큰 벌크 전송이 필요한 경우
- libusb 수준의 접근이 필요한 경우 (예: LCD 이미지 스트리밍)
export function Type() { return "rawusb"; }Raw USB에서도 동일한 device.write() 및 device.read() 함수를 사용하지만, 이제 HID 대신 libusb 벌크/인터럽트 전송으로 매핑됩니다. 더 세밀한 제어를 위해 device.bulk_transfer() 및 device.control_transfer()도 사용할 수 있습니다. 고급 통신을 참조하십시오.
Hybrid
섹션 제목: “Hybrid”장치가 일부 명령(예: 인증 또는 설정)에는 HID를 사용하고 다른 명령(예: LCD로 이미지 데이터 스트리밍)에는 raw USB 벌크 전송을 사용할 때 "hybrid"를 사용하십시오. HID 엔드포인트와 raw USB 엔드포인트가 동시에 열립니다.
export function Type() { return "hybrid"; }Serial
섹션 제목: “Serial”COM 포트로 연결된 장치의 경우. @SignalRGB/serial을 가져오고 플러그인의 Type()을 "serial"로 설정하십시오. 전체 시리얼 API는 고급 통신을 참조하십시오.
import { serial } from "@SignalRGB/serial";export function Type() { return "serial"; }올바른 유형 결정 방법
섹션 제목: “올바른 유형 결정 방법”어느 유형이 장치에 필요한지 확실하지 않다면 여기서 시작하십시오:
Windows가 HID 장치로 열거하나요?├─ 예 → "hid"로 시작│ 쓰기 명령이 실패하면 → "rawusb" 시도│ 장치에 대용량 벌크 전송도 필요하면 → "hybrid" 사용│├─ 아니요, COM/시리얼 포트 → "serial"│├─ 아니요, 네트워크에 있음 → "network"│└─ 아니요, SMBus 장치 (RAM, GPU) → "smbus"확인하는 가장 안정적인 방법은 USBDeview 또는 장치 관리자를 열어 장치 클래스를 확인하는 것입니다. HID 클래스는 "hid"를, USB 또는 libusb 클래스는 "rawusb"를 의미합니다. 둘 다 보이면 "hybrid"가 필요할 수 있습니다.
확실하지 않다면 먼저 "hid"를 시도하십시오. device.write()가 오류를 반환하거나 장치가 응답하지 않으면 "rawusb"로 전환하십시오.