Określanie typu urządzenia
Eksport Type() mówi SignalRGB, którego protokołu komunikacji USB należy użyć dla twojej wtyczki. Wybranie złego typu jest jednym z najczęstszych powodów niepowodzenia komunikacji wtyczki z urządzeniem.
export function Type() { return "hid"; }Dostępne typy
Dział zatytułowany „Dostępne typy”| Ciąg typu | Protokół | Typowe urządzenia |
|---|---|---|
"hid" | HID (Human Interface Device) | Klawiatury, myszy, zestawy słuchawkowe, większość urządzeń peryferyjnych dla konsumentów |
"rawusb" | Surowe przesyły bulk/interrupt USB przez libusb | Chłodzenia AIO, wyświetlacze LCD, niestandardowy sprzęt, kontrolery oświetlenia |
"hybrid" | Zarówno HID, jak i surowy USB jednocześnie | Urządzenia używające HID do poleceń sterujących, ale bulk USB do dużych danych (np. monitory Alienware, AIO Asus Ryuo) |
"serial" | Szeregowy/port COM | Kontrolery oparte na Arduino, Hyte CNVS |
"smbus" | SMBus / I²C | Pamięci RAM, GPU, nagłówki płyty głównej dostępne przez SMBus |
"network" | Gniazdo sieciowe (TCP lub UDP) | Kontrolery połączone przez Wi-Fi lub Ethernet |
Ciągi typów nie rozróżniają wielkości liter — "HID", "Hid" i "hid" wszystkie działają, ale małe litery są konwencją.
HID jest najczęstszym typem. System operacyjny daje SignalRGB bezpośredni dostęp do urządzenia bez potrzeby niestandardowego sterownika. Używaj tego dla klawiatur, myszy, zestawów słuchawkowych i większości urządzeń peryferyjnych dla konsumentów.
export function Type() { return "hid"; }W przypadku HID używasz device.write() / device.send_report() do operacji zapisu i device.read() / device.get_report() do operacji odczytu. Zobacz Zapisy i odczyty, aby uzyskać szczegóły.
Raw USB
Dział zatytułowany „Raw USB”Raw USB omija warstwę HID i komunikuje się bezpośrednio z urządzeniem przez libusb. Potrzebujesz tego, gdy:
- Urządzenie nie jest urządzeniem klasy HID
- Potrzebujesz przesyłów bulk większych niż limit rozmiaru pakietu HID
- Urządzenie wymaga dostępu na poziomie libusb (np. do strumieniowania obrazów LCD)
export function Type() { return "rawusb"; }W przypadku raw USB używasz tych samych funkcji device.write() i device.read(), ale są one teraz mapowane na przesyły bulk/interrupt libusb zamiast HID. Możesz również używać device.bulk_transfer() i device.control_transfer() dla większej kontroli. Zobacz Zaawansowana komunikacja.
Użyj "hybrid", gdy urządzenie używa HID do niektórych poleceń (np. uwierzytelnianie lub konfiguracja) i surowych przesyłów bulk USB do innych (np. strumieniowanie danych obrazu do LCD). Zarówno punkty końcowe HID, jak i surowy USB są otwierane jednocześnie.
export function Type() { return "hybrid"; }Dla urządzeń połączonych przez port COM. Importuj @SignalRGB/serial i używaj metod odczytu/zapisu. Zobacz Zaawansowana komunikacja dla pełnego API szeregowego.
import { serial } from "@SignalRGB/serial";export function Type() { return "serial"; }Jak określić właściwy typ
Dział zatytułowany „Jak określić właściwy typ”Jeśli nie jesteś pewien, jakiego typu potrzebuje twoje urządzenie, zacznij tutaj:
Czy Windows rozpoznaje je jako urządzenie HID?├─ Tak → zacznij od "hid"│ Jeśli polecenia zapisu zawodzą → spróbuj "rawusb"│ Jeśli urządzenie również potrzebuje dużych przesyłów bulk → użyj "hybrid"│├─ Nie, to jest port COM/szeregowy → "serial"│├─ Nie, jest w sieci → "network"│└─ Nie, jest to urządzenie SMBus (RAM, GPU) → "smbus"Najbardziej niezawodnym sposobem sprawdzenia tego jest otwarcie USBDeview lub Menedżera urządzeń i sprawdzenie klasy urządzenia. Klasa HID oznacza "hid". Klasa USB lub libusb oznacza "rawusb". Jeśli widzisz obie, może być potrzebny "hybrid".
W razie wątpliwości najpierw spróbuj "hid". Jeśli device.write() zwraca błąd lub urządzenie nie odpowiada, przełącz się na "rawusb".