Apparaattype bepalen
De export Type() vertelt SignalRGB welk USB-communicatieprotocol voor uw plugin moet worden gebruikt. Het kiezen van het verkeerde type is een van de meest voorkomende redenen waarom een plugin er niet in slaagt met een apparaat te communiceren.
export function Type() { return "hid"; }Beschikbare typen
Section titled “Beschikbare typen”| Type-tekenreeks | Protocol | Typische apparaten |
|---|---|---|
"hid" | HID (Human Interface Device) | Toetsenborden, muizen, headsets, de meeste consumentenrandapparatuur |
"rawusb" | Ruwe USB bulk/interrupt-overdrachten via libusb | AIO-koelers, LCD-schermen, aangepaste hardware, verlichtingscontrollers |
"hybrid" | Zowel HID als ruwe USB tegelijkertijd | Apparaten die HID gebruiken voor bedieningsopdrachten maar bulk-USB voor grote gegevens (bijv. Alienware-monitors, ASUS Ryuo AIO’s) |
"serial" | Serieel/COM-poort | Op Arduino gebaseerde controllers, Hyte CNVS |
"smbus" | SMBus / I²C | RAM-sticks, GPU’s, moederbordheaders toegankelijk via SMBus |
"network" | Netwerksocket (TCP of UDP) | Via wifi of Ethernet verbonden controllers |
Type-tekenreeksen zijn niet hoofdlettergevoelig — "HID", "Hid" en "hid" werken allemaal, maar kleine letters is de conventie.
HID is het meest voorkomende type. Het besturingssysteem geeft SignalRGB directe toegang tot het apparaat zonder dat een aangepast stuurprogramma nodig is. Gebruik dit voor toetsenborden, muizen, headsets en de meeste consumentenrandapparatuur.
export function Type() { return "hid"; }Met HID gebruikt u device.write() / device.send_report() voor schrijfbewerkingen en device.read() / device.get_report() voor leesbewerkingen. Zie Schrijven en lezen voor details.
Ruwe USB
Section titled “Ruwe USB”Ruwe USB omzeilt de HID-laag en communiceert rechtstreeks met het apparaat via libusb. U heeft dit nodig wanneer:
- Het apparaat geen HID-klasse-apparaat is
- U bulk-overdrachten nodig heeft die groter zijn dan de HID-pakketgroottegrens
- Het apparaat libusb-niveau toegang vereist (bijv. voor LCD-afbeeldingsstreaming)
export function Type() { return "rawusb"; }Met ruwe USB gebruikt u dezelfde device.write()- en device.read()-functies, maar deze worden nu gekoppeld aan libusb bulk/interrupt-overdrachten in plaats van HID. U kunt ook device.bulk_transfer() en device.control_transfer() gebruiken voor meer controle. Zie Geavanceerde communicatie.
Hybrid
Section titled “Hybrid”Gebruik "hybrid" wanneer een apparaat HID gebruikt voor sommige opdrachten (bijv. authenticatie of configuratie) en ruwe USB bulk-overdrachten voor andere (bijv. afbeeldingsgegevens streamen naar een LCD). Zowel HID-eindpunten als ruwe USB-eindpunten worden tegelijkertijd geopend.
export function Type() { return "hybrid"; }Serial
Section titled “Serial”Voor apparaten verbonden via een COM-poort. Importeer @SignalRGB/serial en gebruik de lees-/schrijfmethoden. Zie Geavanceerde communicatie voor de volledige seriële API.
import { serial } from "@SignalRGB/serial";export function Type() { return "serial"; }Hoe u het juiste type bepaalt
Section titled “Hoe u het juiste type bepaalt”Als u niet zeker weet welk type uw apparaat nodig heeft, begin hier:
Wordt het door Windows als HID-apparaat herkend?├─ Ja → begin met "hid"│ Als schrijfopdrachten mislukken → probeer "rawusb"│ Als het apparaat ook grote bulk-overdrachten nodig heeft → gebruik "hybrid"│├─ Nee, het is een COM/seriële poort → "serial"│├─ Nee, het zit op het netwerk → "network"│└─ Nee, het is een SMBus-apparaat (RAM, GPU) → "smbus"De meest betrouwbare manier om dit te controleren is USBDeview of Apparaatbeheer te openen en de apparaatklasse te bekijken. Een klasse van HID betekent "hid". Een klasse van USB of libusb betekent "rawusb". Als u beide ziet, is "hybrid" mogelijk nodig.
Probeer bij twijfel eerst "hid". Als device.write() een fout retourneert of het apparaat niet reageert, schakel dan over naar "rawusb".