تخطَّ إلى المحتوى

الأدوات المساعدة

هذه الدالة هي وسيلتك لجلب بيانات الألوان من اللوحة. تأخذ موضع X,Y نسبيًا إلى مخزن البكسلات المؤقت للجهاز على اللوحة وضمنه، وتُرجع مصفوفة [R,G,B] بلون ذلك البكسل.

المعاملالنوعالوصفمثال
XIntقيمة عددية صحيحة تمثل الإحداثي X داخل مخزن البكسلات المؤقت للجهاز5
YIntقيمة عددية صحيحة تمثل الإحداثي Y داخل مخزن البكسلات المؤقت للجهاز3
  • ملاحظة: يجب أن تقع إحداثيات X,Y المرسلة ضمن مخزن البكسلات المؤقت الذي يحدده التصدير Size()
القيمة المُرجعةالنوعالوصفمثال
ColorArrayمصفوفة أحادية البعدمصفوفة بطول 3 تحتوي على قيم [R, G, B] المقابلة، وتتراوح من 0 إلى 255 (HEX 00-FF)[128,158,255]

فيما يلي مثال مختصر على استخدام الدالة في موقف نموذجي.

for(var iIdx = 0; iIdx < vLedPositions.length; iIdx++) //For each Led on the device
{
var iPxX = vLedPositions[iIdx][0]; //Get the X and Y values from the [X,Y] array
var iPxY = vLedPositions[iIdx][1];
var col; // create a variable to contain the [R.G.B] array data
if(shutdown){ // Check for some settings that can override the Device.color() call
col = hexToRgb(shutdownColor)
}else if (LightingMode == "Forced") {
col = hexToRgb(forcedColor)
}else{
col = device.color(iPxX, iPxY); //Calling Device.color with the X and Y values
}
//Saving the Color data in order into a larger Array of all the LED's data
RGBdata[iIdx*3] = col[0]; // Red Channel
RGBdata[iIdx*3+1] = col[1]; //Green Channel
RGBdata[iIdx*3+2] = col[2]; //Blue Channel
TotalLedCount += 1;
}

تُرجع مستوى السطوع الحالي للجهاز داخل SignalRGB. هذه القيمة مطبّقة بالفعل على أي ألوان تُرجعها device.color() أو ما يشابهها.

القيمة المُرجعةالنوعالوصفمثال
Brightnessintالسطوع الحالي في النطاق 0-10042

تُرجع اسم WMI للوحة الأم في النظام الحالي.

القيمة المُرجعةالنوعالوصفمثال
MotherboardNamestringاسم اللوحة الأم للنظامB550 Aorus Elite

تحاول هذه الدالة إيقاف خيط الجهاز مؤقتًا للمدة المحددة. ليس مضمونًا أن تكون فترات الإيقاف هذه دقيقة تمامًا بسبب طريقة تعامل نظام التشغيل مع سكون الخيوط.

المعاملالنوعالوصفمثال
DurationIntمدة الإيقاف المطلوبة بالمللي ثانية1
  • ملاحظة: يفرض Windows حدًا أدنى لوقت السكون يتراوح بين 1 و2ms، وتبدأ الدقة في التراجع كلما طال وقت السكون، لذا لا تستخدمها للتوقيتات الدقيقة.
packet[89] = CalculateCrc(packet);
device.send_report(packet, 91);
device.pause(1); // We need a pause here (between packets), otherwise the ornata can't keep up.

تغيّر هذه الدالة نقطة النهاية النشطة لجميع أوامر القراءة والكتابة. وهي مفيدة للأجهزة التي تحتوي على عدة نقاط نهاية مفتوحة لأوامر مختلفة. من الأمثلة الشائعة على ذلك أجهزة Logitech التي تحتوي على نقطة نهاية لبيانات RGB ونقطة نهاية لأوامر النظام لأشياء مثل إعدادات DPI.

المعاملالنوعالوصفمثال
interfaceHEXقيمة سداسية عشرية بصيغة 0x تمثل واجهة (interface) نقطة النهاية المراد فتحها0x0002
usageHEXقيمة سداسية عشرية بصيغة 0x تمثل قيمة usage لنقطة النهاية المراد فتحها0x0006
usage_pageHEXقيمة سداسية عشرية بصيغة 0x تمثل قيمة usage_page لنقطة النهاية المراد فتحها0x0080
collectionHEXقيمة سداسية عشرية بصيغة 0x تمثل قيمة collection لنقطة النهاية المراد فتحها0x0001
function Apply()
{
var packet = [];
packet[0] = 0x11;
packet[1] = 0xFF;
packet[2] = 0x0C;
packet[3] = 0x5E;
device.set_endpoint(1, 0x0602, 0xff43); // System Interface
device.write(packet, 20);
}

هذه الدالة هي نسخة الإضافة من console.log. تأخذ قيمة من نوع String أو Number أو Object أو Array وتسجّلها في وحدة تحكم الجهاز لأغراض التصحيح وإعلام المستخدم. يمكن أن تكون مفيدة بشكل خاص لعرض أشياء مثل تغييرات DPI أو الأخطاء، أو أثناء التطوير لعرض تخطيط الحزم أو المدخلات من أوامر القراءة.

  • ملاحظة: ستحاول هذه الدالة تحويل متغيرات JavaScript إلى سلاسل نصية حيثما أمكن. يمكن أن يمنحك تسجيل القوالب الحرفية (Template Literals) في JavaScript باستخدام parseInt() أو toString() أو JSON.stringify مزيدًا من التحكم في التحويل والتنسيق.
المعاملالنوعالوصفمثالالافتراضي
ItemJavascript Valueسلسلة نصية أو رقم أو مصفوفة أو قيمة JavaScript أخرى ليتم تسجيلها
OptionsJavaScript Objectكائن JavaScript يحتوي على معاملات الإعدادات{hex: True}{}
الخياراتالوصفالنوعالافتراضي
Hexيحدد ما إذا كان يجب طباعة الأعداد الصحيحة بالتنسيق العشري أو السداسي عشريBooleanFalse
toFileيحدد ما إذا كان يجب أن تظهر العناصر المطبوعة في سجلات التصحيح، أو في وحدة تحكم الجهاز فقطBooleanFalse
let ImportantData = "i have really important info here";
device.log(ImportantData, {toFile: true})

يمكن استخدام التنبيهات لتنبيه المستخدم بشكل مرئي إذا كانت هناك مشكلة في جهازه. يجب استخدامها باعتدال وتخصيصها للمشكلات الجوهرية التي تمنع العمل، مثل الأجهزة التي لم تُهيّأ بشكل صحيح.

تُنشئ تنبيهًا جديدًا للمستخدم. يمكن استخدام القيمة المُرجعة لإزالة التنبيه بشكل انتقائي، ويجب فعل ذلك إذا أصلح المستخدم المشكلة التي نُبِّه إليها.

أولوية التنبيهالوصفالقيمة
Infoتنبيه عادي0
Importantتنبيه حرج (مميّز)1
المعاملالنوعالوصفمثال
TitleStringعنوان التنبيهFirmware Incompatible
DescriptionStringوصف التنبيهFirmware Version must be >= 2.0.0
PriorityIntأولوية التنبيه0 | 1
القيمة المُرجعةالنوعالوصف
AlertIdStringسلسلة معرّف التنبيه الذي تم إنشاؤه
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);

تزيل التنبيه المُعطى إذا كان موجودًا.

المعاملالنوعالوصف
AlertIdStringمعرّف التنبيه AlertId الذي أرجعته device.notify
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);
// Do stuff and recheck if the alerted issue is fixed
device.denotify(AlertId);

توفر رسائل الجهاز طريقة لإيصال معلومات مهمة، لكنها لا تمنع العمل، إلى المستخدم. ستظهر هذه الرسائل في صفحة الجهاز فقط

تضيف رسالة جهاز جديدة بمعرّف MessageId المُعطى.

المعاملالنوعالوصفمثال
messageIdstringمعرّف MessageId المرتبط برسالة الجهاز”mymessage”
messagestringنص الرسالة المراد عرضه”The message”
tooltipstringنص إضافي يُعرض عند التمرير”Some more info”
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");

تزيل الرسالة التي أُنشئت بمعرّف MessageId المُعطى إذا كانت موجودة.

المعاملالنوعالوصف
messageIdstringمعرّف MessageId المراد إزالته
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");
// message is no longer relevant
device.removeMessage("message1");