Lewati ke konten

Menentukan Tipe Perangkat

Ekspor Type() memberi tahu SignalRGB protokol komunikasi USB mana yang digunakan untuk plugin Anda. Memilih tipe yang salah adalah salah satu alasan paling umum mengapa plugin gagal berkomunikasi dengan perangkat.

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

String tipeProtokolPerangkat tipikal
"hid"HID (Human Interface Device)Keyboard, mouse, headset, sebagian besar periferal konsumen
"rawusb"Transfer bulk/interrupt USB mentah melalui libusbAIO cooler, layar LCD, hardware kustom, pengontrol pencahayaan
"hybrid"Baik HID maupun raw USB secara bersamaanPerangkat yang menggunakan HID untuk perintah kontrol tetapi bulk USB untuk data besar (misalnya monitor Alienware, AIO ASUS Ryuo)
"serial"Serial/COM portPengontrol berbasis Arduino, Hyte CNVS
"smbus"SMBus / I²CStik RAM, GPU, header motherboard yang diakses melalui SMBus
"network"Socket jaringan (TCP atau UDP)Pengontrol yang terhubung Wi-Fi atau Ethernet

String tipe tidak case-sensitive — "HID", "Hid", dan "hid" semuanya berfungsi, tetapi huruf kecil adalah konvensinya.


HID adalah tipe yang paling umum. Sistem operasi memberi SignalRGB akses langsung ke perangkat tanpa memerlukan driver kustom. Gunakan ini untuk keyboard, mouse, headset, dan sebagian besar periferal konsumen.

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

Dengan HID Anda menggunakan device.write() / device.send_report() untuk penulisan, dan device.read() / device.get_report() untuk pembacaan. Lihat Writes and Reads untuk detailnya.


Raw USB melewati lapisan HID dan berkomunikasi langsung dengan perangkat menggunakan libusb. Anda memerlukan ini ketika:

  • Perangkat bukan perangkat kelas HID
  • Anda memerlukan transfer bulk yang lebih besar dari batas ukuran paket HID
  • Perangkat memerlukan akses tingkat libusb (misalnya untuk streaming gambar LCD)
export function Type() { return "rawusb"; }

Dengan raw USB Anda menggunakan fungsi device.write() dan device.read() yang sama, tetapi sekarang dipetakan ke transfer bulk/interrupt libusb daripada HID. Anda juga dapat menggunakan device.bulk_transfer() dan device.control_transfer() untuk kontrol lebih. Lihat Advanced Communication.


Gunakan "hybrid" ketika suatu perangkat menggunakan HID untuk beberapa perintah (misalnya autentikasi atau konfigurasi) dan transfer bulk USB mentah untuk yang lain (misalnya streaming data gambar ke LCD). Endpoint HID maupun endpoint raw USB dibuka secara bersamaan.

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

Untuk perangkat yang terhubung melalui COM port. Impor @SignalRGB/serial dan gunakan metode read/write-nya. Lihat Advanced Communication untuk API serial lengkap.

import { serial } from "@SignalRGB/serial";
export function Type() { return "serial"; }

Jika Anda tidak yakin tipe mana yang dibutuhkan perangkat Anda, mulailah di sini:

Apakah Windows mengenumerasinya sebagai perangkat HID?
├─ Ya → mulai dengan "hid"
│ Jika perintah tulis gagal → coba "rawusb"
│ Jika perangkat juga memerlukan transfer bulk besar → gunakan "hybrid"
├─ Tidak, ini adalah COM/serial port → "serial"
├─ Tidak, ini ada di jaringan → "network"
└─ Tidak, ini adalah perangkat SMBus (RAM, GPU) → "smbus"

Cara paling andal untuk memeriksa adalah membuka USBDeview atau Device Manager dan melihat kelas perangkat. Kelas HID berarti "hid". Kelas USB atau libusb berarti "rawusb". Jika Anda melihat keduanya, "hybrid" mungkin diperlukan.

Jika ragu, coba "hid" terlebih dahulu. Jika device.write() mengembalikan error atau perangkat tidak merespons, beralih ke "rawusb".