İçeriğe geç

Modüller ve Özellikler

Eklentiler, temel USB okuma ve yazmalarının ötesinde iki sistem kullanarak yeteneklerini genişletebilir: Modüller ve Özellikler. Aralarındaki farkı anlamak, nelerin mevcut olduğunu keşfetmenize ve iş için doğru mekanizmayı kullanmanıza yardımcı olur.

ModüllerÖzellikler
Nasıl kullanılırimport { x } from "@SignalRGB/name"Initialize() içinde device.addFeature("name")
AmaçYardımcı hizmetler (ağ, kodlama, sistem bilgisi)Cihaz yetenekleri (pil, girdi enjeksiyonu)
Ad alanıModülün kendi dışa aktarılan adlarıdevice.featureName.*
ÖrneklerEklenti başına birBirden fazla olabilir

Bunları eklenti dosyanızın başına aktarın.

İçe aktarma yoluAmaç
@SignalRGB/serialSeri/COM port iletişimi
@SignalRGB/tcpTCP soketi iletişimi
@SignalRGB/udpUDP soketi iletişimi
@SignalRGB/base64Base64 kodlama ve çözme
@SignalRGB/performancePerformans profilleme ve kare zamanlayıcıları
@SignalRGB/appInfoSignalRGB uygulama sürüm bilgisi
@SignalRGB/systeminfoSistem donanım bilgisi
@SignalRGB/permissionsKullanıcı izin durumunu kontrol et

serial, tcp ve udp kullanım örnekleri için Gelişmiş İletişim sayfasına bakın.


Initialize() dışa aktarımınızda device.addFeature("name") çağrısı yapın. Özellik, özellikle aynı ada sahip global bir nesne oluşturur.

Özellik adıAd alanıAmaç
"keyboard"keyboardSignalRGB makrolarına tuş vuruşu enjekte et veya klavye olaylarını yönlendir
"mouse"mouseSignalRGB makrolarına fare girişi enjekte et veya fare olaylarını yönlendir
"battery"batteryKablosuz cihazlar için pil seviyesi ve şarj durumunu raporla
"dtls"dtlsPSK kimlik doğrulamalı DTLS şifreli UDP

Klavye cihazlarını temsil eden eklentiler için. Gerçek tuş vuruşlarını işletim sistemine enjekte etmenizi veya SignalRGB makrolarını tetikleyebilecek olaylar ateşlemenizi sağlar.

export function Initialize() {
device.addFeature("keyboard");
}

keybd_event aracılığıyla işletim sistemine doğrudan ham tuş vuruşu gönderir. Tuş, tüm uygulamalar için gerçek girdi olarak görünür — makro sistemini tamamen atlar.

ParametreTürAçıklamaÖrnek
vkCodeNumberWindows Sanal Tuş kodu0x41 (A tuşu)
options.releasedBoolean (zorunlu)Tuş bırakma için true, tuş basma için falsefalse
keyboard.sendHid(0x41, { released: false }); // A'ya bas
keyboard.sendHid(0x41, { released: true }); // A'yı bırak

Klavye olayını SignalRGB makro sistemi üzerinden yönlendirir. onKey tetikleyicili makrolar bu olaylarla eşleşebilir. Gerçek tuş vuruşu enjekte etmez — yalnızca SignalRGB makroları bu olayı görür.

Makro sistemi, göndermeden önce fiziksel klavyeden canlı değiştirici durumu (Ctrl, Shift, Alt, Win) ile olayı otomatik olarak zenginleştirir.

ParametreTürAçıklamaÖrnek
eventDataObject veya StringOlay verisi. Tuş eşleştirme için key (string adı) ve isteğe bağlı keyCode (number) ekleyin.{ key: "A", keyCode: 0x41 }
eventTypeStringOlay türü etiketi"KeyPress"
keyboard.sendEvent({ key: "A", keyCode: 0x41, released: false }, "KeyPress");

Makro betikleri event.Sender’ı (eklentinin UID’si) ve event.SenderType’ı ("Device") alır; böylece eklenti kaynaklı olayları gerçek donanım tuş vuruşlarından ayırt edebilirler.


Fare veya işaretçi cihazlarını temsil eden eklentiler için.

export function Initialize() {
device.addFeature("mouse");
}

SendInput aracılığıyla işletim sistemine ham fare olayı gönderir. Fare hareketi (MOUSEEVENTF_MOVE, MOUSEEVENTF_ABSOLUTE) güvenlik amacıyla engellenir.

ParametreTürAçıklama
buttonCodeNumberWindows MOUSEEVENTF_* bayrağı
options.XButtonNumberX-düğmesi olayları için zorunlu — 1 (X1) veya 2 (X2)
options.WheelDeltaNumberKaydırma tekerleği olayları için zorunlu — pozitif yukarı, negatif aşağı kaydırır

Yaygın düğme kodları:

KodSabitAçıklama
0x0002MOUSEEVENTF_LEFTDOWNSol düğme basma
0x0004MOUSEEVENTF_LEFTUPSol düğme bırakma
0x0008MOUSEEVENTF_RIGHTDOWNSağ düğme basma
0x0010MOUSEEVENTF_RIGHTUPSağ düğme bırakma
0x0020MOUSEEVENTF_MIDDLEDOWNOrta düğme basma
0x0040MOUSEEVENTF_MIDDLEUPOrta düğme bırakma
0x0800MOUSEEVENTF_WHEELDikey kaydırma
0x01000MOUSEEVENTF_HWHEELYatay kaydırma
0x0080MOUSEEVENTF_XDOWNX-düğmesi basma (XButton seçeneği gerektirir)
0x0100MOUSEEVENTF_XUPX-düğmesi bırakma (XButton seçeneği gerektirir)
// Sol tıklama
mouse.sendHid(0x0002, {}); // bas
mouse.sendHid(0x0004, {}); // bırak
// Bir çentik yukarı kaydır
mouse.sendHid(0x0800, { WheelDelta: 120 });
// X1 düğme basma
mouse.sendHid(0x0080, { XButton: 1 });
mouse.sendHid(0x0100, { XButton: 1 });

Özel fare olayını SignalRGB makro sistemi üzerinden yönlendirir. onMouse tetikleyicili makro betikleri bu olaylarla eşleşebilir. İşletim sistemi düzeyinde fare girişi enjekte etmez.

mouse.sendEvent({ button: "LeftClick" }, "ButtonPress");

Pil durumunu raporlayan kablosuz cihazlar için. Özelliği ekledikten sonra, cihazınız bunları her raporladığında pil seviyesini ve durumunu güncelleyin.

export function Initialize() {
device.addFeature("battery");
}
YöntemAçıklama
battery.setBatteryLevel(level)Pil yüzdesini ayarla (0–100)
battery.setBatteryState(state)Durum sabiti kullanarak şarj durumunu ayarla

Durum sabitleri (battery.<ad> ile erişin):

SabitAçıklama
battery.disabledPil raporlaması devre dışı
battery.unknownDurum henüz bilinmiyor
battery.drainingPil ile çalışıyor
battery.chargingKablo ile şarj oluyor
battery.fullChargingŞarj oluyor ve zaten dolu
battery.fullTam şarj, şarj olmuyor
battery.wirelessChargingKablosuz şarj oluyor

Bu özellikler ayarlanan son değerleri yansıtır:

ÖzellikTürAçıklama
battery.batteryLevelNumberMevcut seviye (0–100)
battery.batteryStateNumberMevcut durum değeri
battery.stateStringStringİnsan tarafından okunabilir durum etiketi
export function Initialize() {
device.addFeature("battery");
}
export function Render() {
// Engellemesiz okuma — cihazın bu karede pil raporu gönderip göndermediğini kontrol et
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
);
}
}