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 ile Özellikler
Section titled “Modüller ile Özellikler”| Modüller | Özellikler | |
|---|---|---|
| Nasıl kullanılır | import { 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.* |
| Örnekler | Eklenti başına bir | Birden fazla olabilir |
Mevcut Modüller
Section titled “Mevcut Modüller”Bunları eklenti dosyanızın başına aktarın.
| İçe aktarma yolu | Amaç |
|---|---|
@SignalRGB/serial | Seri/COM port iletişimi |
@SignalRGB/tcp | TCP soketi iletişimi |
@SignalRGB/udp | UDP soketi iletişimi |
@SignalRGB/base64 | Base64 kodlama ve çözme |
@SignalRGB/performance | Performans profilleme ve kare zamanlayıcıları |
@SignalRGB/appInfo | SignalRGB uygulama sürüm bilgisi |
@SignalRGB/systeminfo | Sistem donanım bilgisi |
@SignalRGB/permissions | Kullanıcı izin durumunu kontrol et |
serial, tcp ve udp kullanım örnekleri için Gelişmiş İletişim sayfasına bakın.
Mevcut Özellikler
Section titled “Mevcut Özellikler”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" | keyboard | SignalRGB makrolarına tuş vuruşu enjekte et veya klavye olaylarını yönlendir |
"mouse" | mouse | SignalRGB makrolarına fare girişi enjekte et veya fare olaylarını yönlendir |
"battery" | battery | Kablosuz cihazlar için pil seviyesi ve şarj durumunu raporla |
"dtls" | dtls | PSK kimlik doğrulamalı DTLS şifreli UDP |
Klavye Özelliği
Section titled “Klavye Özelliği”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");}keyboard.sendHid(vkCode, options)
Section titled “keyboard.sendHid(vkCode, options)”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.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| vkCode | Number | Windows Sanal Tuş kodu | 0x41 (A tuşu) |
| options.released | Boolean (zorunlu) | Tuş bırakma için true, tuş basma için false | false |
keyboard.sendHid(0x41, { released: false }); // A'ya baskeyboard.sendHid(0x41, { released: true }); // A'yı bırakkeyboard.sendEvent(eventData, eventType)
Section titled “keyboard.sendEvent(eventData, eventType)”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.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| eventData | Object veya String | Olay verisi. Tuş eşleştirme için key (string adı) ve isteğe bağlı keyCode (number) ekleyin. | { key: "A", keyCode: 0x41 } |
| eventType | String | Olay 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 Özelliği
Section titled “Fare Özelliği”Fare veya işaretçi cihazlarını temsil eden eklentiler için.
export function Initialize() { device.addFeature("mouse");}mouse.sendHid(buttonCode, options)
Section titled “mouse.sendHid(buttonCode, options)”SendInput aracılığıyla işletim sistemine ham fare olayı gönderir. Fare hareketi (MOUSEEVENTF_MOVE, MOUSEEVENTF_ABSOLUTE) güvenlik amacıyla engellenir.
| Parametre | Tür | Açıklama |
|---|---|---|
| buttonCode | Number | Windows MOUSEEVENTF_* bayrağı |
| options.XButton | Number | X-düğmesi olayları için zorunlu — 1 (X1) veya 2 (X2) |
| options.WheelDelta | Number | Kaydırma tekerleği olayları için zorunlu — pozitif yukarı, negatif aşağı kaydırır |
Yaygın düğme kodları:
| Kod | Sabit | Açıklama |
|---|---|---|
0x0002 | MOUSEEVENTF_LEFTDOWN | Sol düğme basma |
0x0004 | MOUSEEVENTF_LEFTUP | Sol düğme bırakma |
0x0008 | MOUSEEVENTF_RIGHTDOWN | Sağ düğme basma |
0x0010 | MOUSEEVENTF_RIGHTUP | Sağ düğme bırakma |
0x0020 | MOUSEEVENTF_MIDDLEDOWN | Orta düğme basma |
0x0040 | MOUSEEVENTF_MIDDLEUP | Orta düğme bırakma |
0x0800 | MOUSEEVENTF_WHEEL | Dikey kaydırma |
0x01000 | MOUSEEVENTF_HWHEEL | Yatay kaydırma |
0x0080 | MOUSEEVENTF_XDOWN | X-düğmesi basma (XButton seçeneği gerektirir) |
0x0100 | MOUSEEVENTF_XUP | X-düğmesi bırakma (XButton seçeneği gerektirir) |
// Sol tıklamamouse.sendHid(0x0002, {}); // basmouse.sendHid(0x0004, {}); // bırak
// Bir çentik yukarı kaydırmouse.sendHid(0x0800, { WheelDelta: 120 });
// X1 düğme basmamouse.sendHid(0x0080, { XButton: 1 });mouse.sendHid(0x0100, { XButton: 1 });mouse.sendEvent(eventData, eventType)
Section titled “mouse.sendEvent(eventData, eventType)”Ö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 Özelliği
Section titled “Pil Özelliği”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");}Pil Durumunu Ayarlama
Section titled “Pil Durumunu Ayarlama”| Yöntem | Açı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):
| Sabit | Açıklama |
|---|---|
battery.disabled | Pil raporlaması devre dışı |
battery.unknown | Durum henüz bilinmiyor |
battery.draining | Pil ile çalışıyor |
battery.charging | Kablo ile şarj oluyor |
battery.fullCharging | Şarj oluyor ve zaten dolu |
battery.full | Tam şarj, şarj olmuyor |
battery.wirelessCharging | Kablosuz şarj oluyor |
Pil Durumunu Okuma
Section titled “Pil Durumunu Okuma”Bu özellikler ayarlanan son değerleri yansıtır:
| Özellik | Tür | Açıklama |
|---|---|---|
battery.batteryLevel | Number | Mevcut seviye (0–100) |
battery.batteryState | Number | Mevcut durum değeri |
battery.stateString | String | İnsan tarafından okunabilir durum etiketi |
Pil Örneği
Section titled “Pil Örneği”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 ); }}