Eklenti Dışa Aktarımları
Cihaz bilgisi ve çalışma zamanı giriş noktaları, görünen ad, canvas boyutları, aranacak ürün ve satıcı kimlikleri, render döngüsünün ne olduğu gibi bilgileri raporlayan arka uç API’si ile iletişim kurmak için çeşitli fonksiyonlar kullanıyoruz.
”Name” ve “Publisher”
Section titled “”Name” ve “Publisher””Bu fonksiyonlar SignalRGB’de görüntülenecek cihaz adını ve yayıncıyı dışa aktarır.
export function Name() { return "String olarak Cihaz Ürün Adı"; };export function Publisher() { return "String olarak Siz!"; };”VendorId” ve “ProductId”
Section titled “”VendorId” ve “ProductId””Bu fonksiyonlar sistemde cihazı aramak için kullanılır. Her ikisi de “0x ” biçiminde hex değerleri olarak kodlanmıştır. Bunların cihaz kimliklerinizle tam olarak eşleşmesi gerekir. Eklentiniz SignalRGB’de görünmüyorsa büyük ihtimalle satıcı ve ürün kimliği uyuşmazlığından kaynaklanıyordur. SignalRGB’de bir cihazı tespit etmek için gereken minimum şart eşleşen bir satıcı ve ürün kimliğidir.
export function VendorId() { return 0xABCD;}; // Cihazın USB Satıcı Kimliği (Hex olarak)export function ProductId() { return 0xABCD;}; // Cihazın USB Ürün Kimliği (Hex olarak)”Size” ve Konumlandırma
Section titled “”Size” ve Konumlandırma”Bu, canvas üzerindeki cihaz kutusunun temel boyutunu — herhangi bir ölçeklendirmeden önce — yalnızca tam sayılardan oluşan 2D dizi olarak ayarlar. Eklentinizde bu sınırların dışındaki renkleri alamazsınız; bu nedenle boyutun, LED’leri bir ızgaraya çevirdiğinizde cihazın LED’lerinin genişliğini ve yüksekliğini karşılayacak şekilde ayarlanması gerekir.
export function Size() { return [X,Y]; };Bu fonksiyonlar, herhangi bir kullanıcı özelleştirmesinden önce cihazın varsayılan konumunu ayarlar. DefaultPosition, sol üst köşenin 2D koordinatlarını döndürür. DefaultScale, 1.0-30.0 ölçeğinde ölçeklendirme çarpanını döndürür.
export function DefaultPosition(){return [X,Y]};export function DefaultScale(){return 8.0};”Led Names”
Section titled “”Led Names””Bu fonksiyon, cihazdaki tüm LED adlarının 2D dizisini döndürür. Bunlar, tuş basma efektlerini ve LED boyama özelliklerini desteklemek için Desteklenen Tuş Adlarını izlemelidir.
var vLedNames = [ "Scroll Wheel", "Side Led 1","Side Led 2","Side Led 3","Side Led 4", "Side Led 5","logo", "Right Side Led", "Dpi 1","dpi 2","Dpi 3", "Battery indicator"];export function LedNames(){return vLedNames;};”Led Positions”
Section titled “”Led Positions””Bu fonksiyon, cihazın piksel arabelleği içindeki bireysel LED konumlarının matrisini döndürür. Tüm konumlar cihazın Size() dışa aktarımıyla belirlenen sınırlar içinde olmalıdır.
var vLedPositions = [ [3,0], [0,1],[0,2],[0,3],[0,4],[0,5],[3,5],[5,5], [0,2],[0,1],[0,0], [3,1]];export function LedPositions(){return vLedPositions;};”ControllableParameters”
Section titled “”ControllableParameters””Bu fonksiyon, cihaz eklentisinin tüm ayarlarını içerir. Bu ayarlar, fonksiyon tarafından bir dizi içinde döndürülen JS/JSON nesneleri olarak saklanır. Daha fazla bilgi için Kullanıcı Kontrolleri sayfasına bakın.
export function ControllableParameters(){ return [ {AYAR}, {AYAR} ];}”Validate”
Section titled “”Validate””Bu fonksiyon, SignalRGB’nin cihaz için hangi USB uç noktalarını açmak ve kullanmak istediğini belirlemekten sorumludur. Her uç noktanın, cihazdaki her USB uç noktasının değerlerine karşılık gelen dört filtre parametresi bulunur. Her cihaz için birden fazla uç nokta ‘açılabilir’ ancak aynı anda yalnızca biri kullanılır. Aktif uç noktayı değiştirmek için device.set_endpoint() sayfasına bakın.
Not: Komutların genellikle belirli bir uç noktaya gönderilmesi gerekir. Belirli bir rapor kimliği veya uzunluk almak üzere yapılandırılmış bir uç noktaya gönderilen komutlar, bu değerler eşleşmezse hata verecektir.
Not: Tüm cihazlar yapıldıkları yere ve zamana bağlı olarak tutarlı uç noktalar kullanmayabilir. Birden fazla uç noktayı doğrulamak, gerektiğinde otomatik olarak yedek kullanmanıza olanak tanır.
| Mevcut Parametreler |
|---|
| interface |
| usage |
| usage_page |
| collection |
export function Validate(endpoint){ return (endpoint.interface === 2 && endpoint.collection === 0x0003) || endpoint.interface === 1;
}”Type”
Section titled “”Type””Bu fonksiyon kullanılacak USB protokol türünü ayarlar. Çoğu cihaz HID protokollerini kullanır, ancak AIO’lar gibi bazı cihazlar bunun yerine Ham USB kontrol fonksiyonlarını kullanır.
Not: Bu fonksiyon SignalRGB tarafından kullanılamadığında varsayılan değer HID protokolüdür.
| Protokol | String Değeri |
|---|---|
| HID | ”HID” |
| Lib/ham USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
Section titled “"ConflictingProcesses””Bu fonksiyon çakışan exe adlarının bir listesini dışa aktarır. SignalRGB, bunlardan biri çalışırken eklentiyi başlatmayacaktır. Çakışan süreç kapatıldığında veya hata mesajı kullanıcı tarafından atlatıldığında eklenti başlatılacaktır.
Not: Bu adlar çalışan exe adıyla tam olarak eşleşmelidir.
export function ConflictingProcesses() { return ["NGenuity2.exe"];}”ImageUrl”
Section titled “”ImageUrl””Bu fonksiyon cihazın görsel URL string’ini döndürür. Standart eklenti görsel boyutu, 920x920 canlı alanlı 1024x1024 piksel büyüklüğündedir.
export function ImageUrl(){ return "URL görsel string'i";}