İçeriğe geç

Cihaz Türünü Belirleme

Type() dışa aktarımı, SignalRGB’ye eklentiniz için hangi USB iletişim protokolünü kullanacağını söyler. Yanlış türü seçmek, bir eklentinin cihazla iletişim kuramamasının en yaygın nedenlerinden biridir.

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

Tür string’iProtokolTipik cihazlar
"hid"HID (İnsan Arayüzü Cihazı)Klavyeler, fareler, kulaklıklar, çoğu tüketici çevre birimi
"rawusb"libusb aracılığıyla ham USB bulk/interrupt aktarımlarıAIO soğutucular, LCD ekranlar, özel donanım, aydınlatma kontrolörleri
"hybrid"Hem HID hem de ham USB eş zamanlıKontrol komutları için HID, büyük veri için bulk USB kullanan cihazlar (örn. Alienware monitörler, ASUS Ryuo AIO’lar)
"serial"Seri/COM portArduino tabanlı kontrolörler, Hyte CNVS
"smbus"SMBus / I²CRAM çubukları, GPU’lar, SMBus üzerinden erişilen anakart başlıkları
"network"Ağ soketi (TCP veya UDP)Wi-Fi veya Ethernet bağlantılı kontrolörler

Tür string’leri büyük/küçük harfe duyarsızdır — "HID", "Hid" ve "hid" hepsi çalışır, ancak küçük harf kullanımı standarttır.


HID en yaygın türdür. İşletim sistemi, özel bir sürücü gerektirmeden SignalRGB’ye cihaza doğrudan erişim sağlar. Klavyeler, fareler, kulaklıklar ve çoğu tüketici çevre birimi için bunu kullanın.

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

HID ile yazmalar için device.write() / device.send_report(), okumalar için device.read() / device.get_report() kullanırsınız. Ayrıntılar için Yazma ve Okuma sayfasına bakın.


Ham USB, HID katmanını atlayarak libusb kullanarak cihazla doğrudan iletişim kurar. Buna şu durumlarda ihtiyaç duyarsınız:

  • Cihaz bir HID sınıfı cihaz değilse
  • HID paket boyutu sınırından daha büyük bulk aktarımlarına ihtiyaç duyuyorsanız
  • Cihaz libusb düzeyinde erişim gerektiriyorsa (örn. LCD görüntü akışı için)
export function Type() { return "rawusb"; }

Ham USB ile aynı device.write() ve device.read() fonksiyonlarını kullanırsınız, ancak bunlar artık HID yerine libusb bulk/interrupt aktarımlarıyla eşleşir. Daha fazla kontrol için device.bulk_transfer() ve device.control_transfer() da kullanabilirsiniz. Bkz. Gelişmiş İletişim.


Bir cihaz bazı komutlar için HID (örn. kimlik doğrulama veya yapılandırma) ve diğerleri için ham USB bulk aktarımları (örn. LCD’ye görüntü verisi akışı) kullandığında "hybrid" kullanın. Hem HID uç noktaları hem de ham USB uç noktaları eş zamanlı olarak açılır.

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

COM portu üzerinden bağlı cihazlar için. @SignalRGB/serial’ı içe aktarın ve okuma/yazma yöntemlerini kullanın. Tam seri API için Gelişmiş İletişim sayfasına bakın.

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

Cihazınızın hangi türe ihtiyaç duyduğundan emin değilseniz buradan başlayın:

Windows bunu bir HID cihazı olarak numaralandırıyor mu?
├─ Evet → "hid" ile başlayın
│ Yazma komutları başarısız olursa → "rawusb" deneyin
│ Cihaz aynı zamanda büyük bulk aktarımlarına ihtiyaç duyuyorsa → "hybrid" kullanın
├─ Hayır, COM/seri port → "serial"
├─ Hayır, ağda → "network"
└─ Hayır, SMBus cihazı (RAM, GPU) → "smbus"

Kontrol etmenin en güvenilir yolu USBDeview veya Aygıt Yöneticisi’ni açıp cihaz sınıfına bakmaktır. HID sınıfı "hid" anlamına gelir. USB veya libusb sınıfı "rawusb" anlamına gelir. Her ikisini de görürseniz "hybrid" gerekebilir.

Şüphe duyduğunuzda önce "hid" deneyin. device.write() hata döndürüyor veya cihaz yanıt vermiyorsa "rawusb"’a geçin.