Hoppa till innehåll

Bestämma enhetstyp

Type()-exporten berättar för SignalRGB vilket USB-kommunikationsprotokoll som ska användas för ditt plugin. Att välja fel typ är en av de vanligaste anledningarna till att ett plugin inte kan kommunicera med en enhet.

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

TypsträngProtokollTypiska enheter
"hid"HID (Human Interface Device)Tangentbord, möss, headsets, de flesta konsumentenheter
"rawusb"Raw USB bulk/interrupt-transfereringar via libusbAIO-kylare, LCD-skärmar, anpassad hårdvara, belysningsstyrenheter
"hybrid"Både HID och raw USB simultantEnheter som använder HID för kontrollkommandon och bulk USB för stora data (t.ex. Alienware-bildskärmar, ASUS Ryuo AIO:er)
"serial"Seriell/COM-portArduino-baserade styrenheter, Hyte CNVS
"smbus"SMBus / I²CRAM-moduler, GPU:er, moderkortshuvuden som nås via SMBus
"network"Nätverkssocket (TCP eller UDP)Wi-Fi- eller Ethernet-anslutna styrenheter

Typsträngar är skiftlägesokänsliga — "HID", "Hid" och "hid" fungerar alla, men gemener är standard.


HID är den vanligaste typen. Operativsystemet ger SignalRGB direkt åtkomst till enheten utan att kräva en specialdrivrutin. Använd det för tangentbord, möss, headsets och de flesta konsumentenheter.

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

Med HID använder du device.write() / device.send_report() för skrivningar och device.read() / device.get_report() för läsningar. Se sidan Skrivningar och läsningar för detaljer.


Raw USB kommunicerar direkt med enheten via libusb, kringgår HID-lagret. Du behöver det när:

  • Enheten inte är en HID-klassenhet
  • Du behöver bulk-transfereringar som är större än HID-paketstorleknsbegränsningen
  • Enheten kräver åtkomst på libusb-nivå (t.ex. för LCD-bildströmning)
export function Type() { return "rawusb"; }

Med raw USB använder du samma device.write() och device.read()-funktioner, men de mappar nu till libusb bulk/interrupt-transfereringar istället för HID. Du kan också använda device.bulk_transfer() och device.control_transfer() för mer kontroll. Se Avancerad kommunikation.


Använd "hybrid" när en enhet använder HID för vissa kommandon (t.ex. autentisering eller konfiguration) och raw USB bulk-transfereringar för andra (t.ex. strömning av bilddata till en LCD). Både HID-slutpunkter och raw USB-slutpunkter öppnas simultant.

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

För enheter anslutna via COM-port. Importera @SignalRGB/serial och använd läs-/skrivmetoderna. Se sidan Avancerad kommunikation för det fullständiga seriella API:t.

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

Om du är osäker på vilken typ din enhet behöver, börja här:

Räknar Windows upp det som en HID-enhet?
├─ Ja → Börja med "hid"
│ Om skrivkommandon misslyckas → Prova "rawusb"
│ Om enheten också behöver stora bulk-transfereringar → Använd "hybrid"
├─ Nej, COM/seriell port → "serial"
├─ Nej, på nätverket → "network"
└─ Nej, SMBus-enhet (RAM, GPU) → "smbus"

Det mest tillförlitliga sättet att kontrollera är att öppna USBDeview eller Enhetshanteraren och titta på enhetsklassen. Klassen HID innebär "hid". Klassen USB eller libusb innebär "rawusb". Om du ser båda kan "hybrid" behövas.

Om du är osäker, prova "hid" först. Om device.write() returnerar ett fel eller enheten inte svarar, byt till "rawusb".