콘텐츠로 이동

장치 유형 결정

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²CRAM, GPU, SMBus를 통해 접근하는 마더보드 헤더
"network"네트워크 소켓 (TCP 또는 UDP)Wi-Fi 또는 이더넷 연결 컨트롤러

유형 문자열은 대소문자를 구분하지 않습니다 — "HID", "Hid", "hid" 모두 작동하지만 소문자가 관례입니다.


HID는 가장 일반적인 유형입니다. 운영 체제는 커스텀 드라이버 없이도 SignalRGB가 장치에 직접 접근할 수 있게 합니다. 키보드, 마우스, 헤드셋, 대부분의 소비자 주변기기에 사용하십시오.

export function Type() { return "hid"; }

HID의 경우 쓰기에는 device.write() / device.send_report()를, 읽기에는 device.read() / device.get_report()를 사용합니다. 자세한 내용은 쓰기 및 읽기를 참조하십시오.


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()도 사용할 수 있습니다. 고급 통신을 참조하십시오.


장치가 일부 명령(예: 인증 또는 설정)에는 HID를 사용하고 다른 명령(예: LCD로 이미지 데이터 스트리밍)에는 raw USB 벌크 전송을 사용할 때 "hybrid"를 사용하십시오. HID 엔드포인트와 raw USB 엔드포인트가 동시에 열립니다.

export function Type() { return "hybrid"; }

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"로 전환하십시오.