Yardımcı Fonksiyonlar
Cihaz Yardımcı Fonksiyonları
Section titled “Cihaz Yardımcı Fonksiyonları”device.color()
Section titled “device.color()”Bu fonksiyon, canvas’tan renk verisi almak için kullanılan yoldur. Canvas üzerindeki cihazın piksel arabelleğine göreli ve bu arabellek içinde bir X,Y konumu alır ve o pikseldeki rengin [R,G,B] dizisini döndürür.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| X | Int | Cihaz Piksel Arabelleği içindeki X koordinatını temsil eden Int değeri | 5 |
| Y | Int | Cihaz Piksel Arabelleği içindeki Y koordinatını temsil eden Int değeri | 3 |
- Not: Gönderilen X,Y koordinatları Size() Dışa Aktarımı tarafından belirlenen Piksel Arabelleği içinde olmalıdır.
| Döndürülen | Tür | Açıklama | Örnek |
|---|---|---|---|
| ColorArray | 1D Dizi | 0-255 (HEX 00-FF) aralığında koordinatlı [R, G, B] değerlerini içeren uzunluk 3 dizi | [128,158,255] |
Aşağıda fonksiyonun tipik bir durumda kullanıldığı kısaltılmış bir örnek yer almaktadır.
for(var iIdx = 0; iIdx < vLedPositions.length; iIdx++) // Cihazdaki her LED için { var iPxX = vLedPositions[iIdx][0]; // [X,Y] dizisinden X ve Y değerlerini al var iPxY = vLedPositions[iIdx][1]; var col; // [R.G.B] dizi verisini tutacak değişken oluştur if(shutdown){ // Device.color() çağrısını geçersiz kılabilecek bazı ayarları kontrol et col = hexToRgb(shutdownColor) }else if (LightingMode == "Forced") { col = hexToRgb(forcedColor) }else{ col = device.color(iPxX, iPxY); // X ve Y değerleriyle Device.color çağrısı } // Renk verilerini sırayla tüm LED verilerinin büyük dizisine kaydet RGBdata[iIdx*3] = col[0]; // Kırmızı Kanal RGBdata[iIdx*3+1] = col[1]; // Yeşil Kanal RGBdata[iIdx*3+2] = col[2]; // Mavi Kanal TotalLedCount += 1; }device.getBrightness()
Section titled “device.getBrightness()”SignalRGB içindeki cihazın mevcut parlaklık seviyesini döndürür. Bu değer, device.color() veya benzeri fonksiyonlar tarafından döndürülen renklere zaten uygulanmıştır.
| Döndürülen | Tür | Açıklama | Örnek |
|---|---|---|---|
| Brightness | int | 0-100 aralığında mevcut parlaklık | 42 |
device.getMotherboardName()
Section titled “device.getMotherboardName()”Mevcut sistemin anakartının WMI adını döndürür.
| Döndürülen | Tür | Açıklama | Örnek |
|---|---|---|---|
| MotherboardName | string | Sistemin anakart adı | B550 Aorus Elite |
device.pause()
Section titled “device.pause()”Bu fonksiyon cihaz iş parçacığını verilen süre kadar duraklatmaya çalışır. İşletim sisteminin iş parçacığı uykularını işleme biçimi nedeniyle bu duraklamalar kesin olarak garanti edilmez.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| Duration | Int | Milisaniye cinsinden istenen duraklatma süresi | 1 |
- Not: Windows’un minimum uyku süresi 1-2ms’dir ve uyku uzadıkça sorunlar başlayabilir; bu nedenle bunları kesin zamanlama için kullanmayın.
packet[89] = CalculateCrc(packet); device.send_report(packet, 91); device.pause(1); // Burada bir duraklatmaya ihtiyaç var (paketler arasında), aksi hâlde ornata yetişemez.device.set_endpoint()
Section titled “device.set_endpoint()”Bu fonksiyon tüm okuma ve yazma komutları için aktif uç noktayı değiştirir. Farklı komutlar için birden fazla açık uç noktası olan cihazlar için kullanışlıdır. Bunun yaygın bir örneği, RGB veri uç noktası ve DPI ayarları gibi şeyler için sistem komut uç noktasına sahip Logitech cihazlarıdır.
| Parametre | Tür | Açıklama | Örnek |
|---|---|---|---|
| interface | HEX | Açılacak uç noktanın interface değerini temsil eden 0x Hex değeri | 0x0002 |
| usage | HEX | Açılacak uç noktanın usage değerini temsil eden 0x Hex değeri | 0x0006 |
| usage_page | HEX | Açılacak uç noktanın usage_page değerini temsil eden 0x Hex değeri | 0x0080 |
| collection | HEX | Açılacak uç noktanın collection değerini temsil eden 0x Hex değeri | 0x0001 |
function Apply(){ var packet = [];
packet[0] = 0x11; packet[1] = 0xFF; packet[2] = 0x0C; packet[3] = 0x5E;
device.set_endpoint(1, 0x0602, 0xff43); // Sistem Arayüzü device.write(packet, 20);}device.log()
Section titled “device.log()”Bu fonksiyon, eklentinin console.log sürümüdür. Bir String, Number, Object veya Array alır ve hata ayıklama ve kullanıcı bilgisi için cihazın konsoluna kaydeder. Bu özellikle DPI değişiklikleri, hatalar veya geliştirme sırasında paket düzeninizi veya okuma komutlarından gelen girdiyi göstermek için son derece kullanışlıdır.
- Not: Bu fonksiyon, JavaScript değişkenlerini mümkün olan yerlerde string’e dönüştürmeye çalışacaktır. parseInt(), toString() veya JSON.stringify() kullanarak JavaScript Şablon Değişmezlerini kaydetmek, dönüştürme ve biçimlendirme üzerinde daha fazla kontrol sağlar.
| Parametre | Tür | Açıklama | Örnek | Varsayılan |
|---|---|---|---|---|
| Item | Javascript Değeri | Kaydedilecek bir string, number, array veya diğer JavaScript değeri | ||
| Options | JavaScript Nesnesi | Ayar parametrelerini içeren Javascript nesnesi | {hex: True} | {} |
| Seçenekler | Açıklama | Tür | Varsayılan |
|---|---|---|---|
| Hex | Tam sayıların ondalık mı yoksa hex formatında mı yazdırılacağını ayarlar | Boolean | False |
| toFile | Yazdırılan öğelerin hata ayıklama günlüklerinde mi yoksa yalnızca cihazın konsolunda mı görüneceğini ayarlar | Boolean | False |
let ImportantData = "burada gerçekten önemli bilgiler var"; device.log(ImportantData, {toFile: true})Uyarılar
Section titled “Uyarılar”Uyarılar, cihazlarında bir sorun varsa kullanıcıyı görsel olarak uyarmak için kullanılabilir. Bunlar idareli kullanılmalı ve cihazların düzgün yapılandırılmaması gibi gösteriyi durduran sorunlar için ayrılmalıdır.
device.notify()
Section titled “device.notify()”Kullanıcı için yeni bir uyarı oluşturur. Dönüş değeri, uyarıyı seçici olarak kaldırmak için kullanılabilir ve kullanıcı uyarılan sorunu düzeltirse yapılmalıdır.
| Uyarı Önceliği | Açıklama | Değer |
|---|---|---|
| Info | Normal Uyarı | 0 |
| Important | Kritik (Vurgulanan) Uyarı | 1 |
| parametre | tür | açıklama | Örnek |
|---|---|---|---|
| Title | String | Uyarı Başlığı | Firmware Incompatible |
| Description | String | Uyarı Açıklaması | Firmware Version must be >= 2.0.0 |
| Priority | Int | Uyarı Önceliği | 0 | 1 |
| döndürülen | tür | açıklama |
|---|---|---|
| AlertId | String | Oluşturulan uyarının Id string’i |
let Alertid = device.notify("Gerçekten Önemli Sorun", "Lütfen Düzeltin", 1);device.denotify()
Section titled “device.denotify()”Varsa verilen uyarıyı kaldırır.
| parametre | tür | açıklama |
|---|---|---|
| AlertId | String | device.notify tarafından döndürülen AlertId |
let Alertid = device.notify("Gerçekten Önemli Sorun", "Lütfen Düzeltin", 1); // İşlemler yap ve uyarılan sorunun düzelenip düzelmediğini yeniden kontrol et device.denotify(AlertId);Mesajlar
Section titled “Mesajlar”Cihaz mesajları, önemli ancak gösteriyi durdurmayan bilgileri kullanıcıya iletmek için bir yol sağlar. Bu mesajlar yalnızca cihazın sayfasında görünür.

device.addMessage()
Section titled “device.addMessage()”Verilen MessageId ile yeni bir cihaz mesajı ekler.
| parametre | tür | açıklama | örnek |
|---|---|---|---|
| messageId | string | Cihaz mesajına bağlı MessageId | ”mymessage” |
| message | string | Görüntülenecek mesaj metni | ”Mesaj” |
| tooltip | string | Üzerine gelindiğinde görüntülenen ek metin | ”Biraz daha bilgi” |
device.addMessage("message1", "Hey, bunu bilmelisin", "Bu konuda biraz ek bilgi de var");device.removeMessage()
Section titled “device.removeMessage()”Varsa verilen MessageId ile oluşturulan mesajı kaldırır.
| parametre | tür | açıklama |
|---|---|---|
| messageId | string | Kaldırılacak MessageId |
device.addMessage("message1", "Hey, bunu bilmelisin", "Bu konuda biraz ek bilgi de var");
// mesaj artık geçerli değil device.removeMessage("message1");