Modules en functies
Plugins kunnen hun mogelijkheden uitbreiden voorbij basale USB-lees- en schrijfbewerkingen met twee systemen: Modules en Functies. Het begrijpen van het verschil helpt u te ontdekken wat beschikbaar is en het juiste mechanisme te gebruiken.
Modules vs. Functies
Section titled “Modules vs. Functies”| Modules | Functies | |
|---|---|---|
| Hoe te gebruiken | import { x } from "@SignalRGB/naam" | device.addFeature("naam") in Initialize() |
| Doel | Hulpprogrammaservices (netwerk, codering, systeeminfo) | Apparaatmogelijkheden (batterij, invoerinjectie) |
| Naamruimte | Eigen geëxporteerde namen van de module | device.functienaam.* |
| Instanties | Één per plugin | Kunnen er meerdere zijn |
Beschikbare modules
Section titled “Beschikbare modules”Importeer deze bovenaan uw plugin-bestand.
| Importpad | Doel |
|---|---|
@SignalRGB/serial | Seriële/COM-poortcommunicatie |
@SignalRGB/tcp | TCP-socketcommunicatie |
@SignalRGB/udp | UDP-socketcommunicatie |
@SignalRGB/base64 | Base64-codering en -decodering |
@SignalRGB/performance | Prestatieprofilering en frame-timers |
@SignalRGB/appInfo | Versie-informatie van de SignalRGB-applicatie |
@SignalRGB/systeminfo | Systeemhardware-informatie |
@SignalRGB/permissions | Gebruikersmachtigingsstatus controleren |
Zie Geavanceerde communicatie voor gebruiksvoorbeelden van serial, tcp en udp.
Beschikbare functies
Section titled “Beschikbare functies”Roep device.addFeature("naam") aan in uw Initialize()-export. De functie maakt een globaal object aan met dezelfde naam als de functie.
| Functienaam | Naamruimte | Doel |
|---|---|---|
"keyboard" | keyboard | Toetsaanslagen injecteren of toetsenbordgebeurtenissen routeren naar SignalRGB-macro’s |
"mouse" | mouse | Muisinvoer injecteren of muisgebeurtenissen routeren naar SignalRGB-macro’s |
"battery" | battery | Batterijniveau en laadstatus rapporteren voor draadloze apparaten |
"dtls" | dtls | DTLS-versleutelde UDP met PSK-authenticatie |
Toetsenbord-functie
Section titled “Toetsenbord-functie”Voor plugins die toetsenbordapparaten vertegenwoordigen. Hiermee kunt u echte toetsaanslagen in het besturingssysteem injecteren of gebeurtenissen activeren die SignalRGB-macro’s kunnen activeren.
export function Initialize() { device.addFeature("keyboard");}keyboard.sendHid(vkCode, options)
Section titled “keyboard.sendHid(vkCode, options)”Verzendt een ruwe toetsaanslag rechtstreeks naar het besturingssysteem via keybd_event. De toets verschijnt als echte invoer voor alle applicaties — het omzeilt het macrosysteem volledig.
| Parameter | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| vkCode | Getal | Windows Virtuele Toetscode | 0x41 (toets A) |
| options.released | Boolean (vereist) | true voor toets omhoog, false voor toets omlaag | false |
keyboard.sendHid(0x41, { released: false }); // Druk op Akeyboard.sendHid(0x41, { released: true }); // Laat A loskeyboard.sendEvent(eventData, eventType)
Section titled “keyboard.sendEvent(eventData, eventType)”Routeert een toetsenbordgebeurtenis door het SignalRGB-macrosysteem. Macro’s met een onKey-trigger kunnen deze gebeurtenissen matchen. Injecteert geen echte toetsaanslag — alleen SignalRGB-macro’s zien deze gebeurtenis.
Het macrosysteem verrijkt de gebeurtenis automatisch met live modificatiestatus (Ctrl, Shift, Alt, Win) van het fysieke toetsenbord voordat het wordt verzonden.
| Parameter | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| eventData | Object of String | Gebeurtenisgegevens. Voeg key (tekenreeksnaam) en optioneel keyCode (getal) toe voor toetsmatching. | { key: "A", keyCode: 0x41 } |
| eventType | String | Gebeurtenistypelabel | "KeyPress" |
keyboard.sendEvent({ key: "A", keyCode: 0x41, released: false }, "KeyPress");Macroscripts ontvangen event.Sender (de UID van de plugin) en event.SenderType ("Device"), zodat ze plugin-afkomstige gebeurtenissen kunnen onderscheiden van echte hardware-toetsaanslagen.
Muis-functie
Section titled “Muis-functie”Voor plugins die muis- of aanwijsapparaten vertegenwoordigen.
export function Initialize() { device.addFeature("mouse");}mouse.sendHid(buttonCode, options)
Section titled “mouse.sendHid(buttonCode, options)”Verzendt een ruwe muisgebeurtenis naar het besturingssysteem via SendInput. Muisbeweging (MOUSEEVENTF_MOVE, MOUSEEVENTF_ABSOLUTE) is geblokkeerd voor de veiligheid.
| Parameter | Type | Beschrijving |
|---|---|---|
| buttonCode | Getal | Windows MOUSEEVENTF_*-vlag |
| options.XButton | Getal | Vereist voor X-knopgebeurtenissen — 1 (X1) of 2 (X2) |
| options.WheelDelta | Getal | Vereist voor scrollwielgebeurtenissen — positief scrolt omhoog, negatief omlaag |
Veelgebruikte knoppcodes:
| Code | Constante | Beschrijving |
|---|---|---|
0x0002 | MOUSEEVENTF_LEFTDOWN | Linkerknop indrukken |
0x0004 | MOUSEEVENTF_LEFTUP | Linkerknop loslaten |
0x0008 | MOUSEEVENTF_RIGHTDOWN | Rechterknop indrukken |
0x0010 | MOUSEEVENTF_RIGHTUP | Rechterknop loslaten |
0x0020 | MOUSEEVENTF_MIDDLEDOWN | Middelste knop indrukken |
0x0040 | MOUSEEVENTF_MIDDLEUP | Middelste knop loslaten |
0x0800 | MOUSEEVENTF_WHEEL | Verticaal scrollen |
0x01000 | MOUSEEVENTF_HWHEEL | Horizontaal scrollen |
0x0080 | MOUSEEVENTF_XDOWN | X-knop indrukken (vereist XButton-optie) |
0x0100 | MOUSEEVENTF_XUP | X-knop loslaten (vereist XButton-optie) |
// Left clickmouse.sendHid(0x0002, {}); // downmouse.sendHid(0x0004, {}); // up
// Scroll up one notchmouse.sendHid(0x0800, { WheelDelta: 120 });
// X1 button pressmouse.sendHid(0x0080, { XButton: 1 });mouse.sendHid(0x0100, { XButton: 1 });mouse.sendEvent(eventData, eventType)
Section titled “mouse.sendEvent(eventData, eventType)”Routeert een aangepaste muisgebeurtenis door het SignalRGB-macrosysteem. Macroscripts met een onMouse-trigger kunnen deze gebeurtenissen matchen. Injecteert geen muisinvoer op OS-niveau.
mouse.sendEvent({ button: "LeftClick" }, "ButtonPress");Batterij-functie
Section titled “Batterij-functie”Voor draadloze apparaten die batterijstatus rapporteren. Nadat u de functie heeft toegevoegd, werkt u het batterijniveau en de status bij telkens wanneer uw apparaat deze rapporteert.
export function Initialize() { device.addFeature("battery");}Batterijstatus instellen
Section titled “Batterijstatus instellen”| Methode | Beschrijving |
|---|---|
battery.setBatteryLevel(level) | Batterijpercentage instellen (0–100) |
battery.setBatteryState(state) | Laadstatus instellen met een toestandsconstante |
Toestandsconstanten (toegankelijk via battery.<naam>):
| Constante | Beschrijving |
|---|---|
battery.disabled | Batterijrapportage uitgeschakeld |
battery.unknown | Toestand nog niet bekend |
battery.draining | Draait op batterij |
battery.charging | Opladen via kabel |
battery.fullCharging | Opladen en al vol |
battery.full | Volledig opgeladen, niet aan het opladen |
battery.wirelessCharging | Draadloos opladen |
Batterijstatus lezen
Section titled “Batterijstatus lezen”Deze eigenschappen weerspiegelen de laatste ingestelde waarden:
| Eigenschap | Type | Beschrijving |
|---|---|---|
battery.batteryLevel | Getal | Huidig niveau (0–100) |
battery.batteryState | Getal | Huidige toestandswaarde |
battery.stateString | String | Leesbaar toestandslabel |
Batterijvoorbeeld
Section titled “Batterijvoorbeeld”export function Initialize() { device.addFeature("battery");}
export function Render() { // Non-blocking read — check if the device sent a battery report this frame var data = device.read([], 64, 0);
if(device.getLastReadSize() > 0 && data[0] === 0x02) { var level = data[1]; // 0–100 var charging = data[2] === 0x01;
battery.setBatteryLevel(level); battery.setBatteryState( charging ? battery.charging : battery.draining ); }}