İçeriğe geç

Yardımcı Fonksiyonlar

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.

ParametreTürAçıklamaÖrnek
XIntCihaz Piksel Arabelleği içindeki X koordinatını temsil eden Int değeri5
YIntCihaz Piksel Arabelleği içindeki Y koordinatını temsil eden Int değeri3
  • 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ülenTürAçıklamaÖrnek
ColorArray1D Dizi0-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;
}

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ülenTürAçıklamaÖrnek
Brightnessint0-100 aralığında mevcut parlaklık42

Mevcut sistemin anakartının WMI adını döndürür.

DöndürülenTürAçıklamaÖrnek
MotherboardNamestringSistemin anakart adıB550 Aorus Elite

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.

ParametreTürAçıklamaÖrnek
DurationIntMilisaniye cinsinden istenen duraklatma süresi1
  • 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.

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.

ParametreTürAçıklamaÖrnek
interfaceHEXAçılacak uç noktanın interface değerini temsil eden 0x Hex değeri0x0002
usageHEXAçılacak uç noktanın usage değerini temsil eden 0x Hex değeri0x0006
usage_pageHEXAçılacak uç noktanın usage_page değerini temsil eden 0x Hex değeri0x0080
collectionHEXAçılacak uç noktanın collection değerini temsil eden 0x Hex değeri0x0001
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);
}

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.
ParametreTürAçıklamaÖrnekVarsayılan
ItemJavascript DeğeriKaydedilecek bir string, number, array veya diğer JavaScript değeri
OptionsJavaScript NesnesiAyar parametrelerini içeren Javascript nesnesi{hex: True}{}
SeçeneklerAçıklamaTürVarsayılan
HexTam sayıların ondalık mı yoksa hex formatında mı yazdırılacağını ayarlarBooleanFalse
toFileYazdırılan öğelerin hata ayıklama günlüklerinde mi yoksa yalnızca cihazın konsolunda mı görüneceğini ayarlarBooleanFalse
let ImportantData = "burada gerçekten önemli bilgiler var";
device.log(ImportantData, {toFile: true})

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.

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ğiAçıklamaDeğer
InfoNormal Uyarı0
ImportantKritik (Vurgulanan) Uyarı1
parametretüraçıklamaÖrnek
TitleStringUyarı BaşlığıFirmware Incompatible
DescriptionStringUyarı AçıklamasıFirmware Version must be >= 2.0.0
PriorityIntUyarı Önceliği0 | 1
döndürülentüraçıklama
AlertIdStringOluşturulan uyarının Id string’i
let Alertid = device.notify("Gerçekten Önemli Sorun", "Lütfen Düzeltin", 1);

Varsa verilen uyarıyı kaldırır.

parametretüraçıklama
AlertIdStringdevice.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);

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.

Verilen MessageId ile yeni bir cihaz mesajı ekler.

parametretüraçıklamaörnek
messageIdstringCihaz mesajına bağlı MessageId”mymessage”
messagestringGörüntülenecek mesaj metni”Mesaj”
tooltipstringÜ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");

Varsa verilen MessageId ile oluşturulan mesajı kaldırır.

parametretüraçıklama
messageIdstringKaldı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");