Skip to content

Fungsi Utiliti

Fungsi ini digunakan untuk mendapatkan data warna dari kanvas. Ia mengambil kedudukan X,Y relatif kepada dan dalam penimbal piksel peranti pada kanvas, dan mengembalikan array [R,G,B] warna pada piksel tersebut.

ParameterJenisKeteranganContoh
XIntNilai Int yang mewakili koordinat X dalam penimbal piksel peranti5
YIntNilai Int yang mewakili koordinat Y dalam penimbal piksel peranti3
  • Nota: Koordinat X,Y yang dihantar mesti berada dalam penimbal piksel yang ditetapkan oleh eksport Size().
PulanganJenisKeteranganContoh
ColorArray1D ArrayArray panjang 3 yang mengandungi nilai [R, G, B] berkoordinat dalam julat 0-255 (HEX 00-FF)[128,158,255]

Berikut ialah contoh ringkas fungsi dalam penggunaan biasa.

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;
}

Mengembalikan tahap kecerahan peranti semasa dalam SignalRGB. Nilai ini sudah diaplikasikan ke semua warna yang dikembalikan oleh device.color() atau fungsi serupa.

PulanganJenisKeteranganContoh
BrightnessintKecerahan semasa dalam julat 0-10042

Mengembalikan nama WMI papan induk sistem semasa.

PulanganJenisKeteranganContoh
MotherboardNamestringNama papan induk sistemB550 Aorus Elite

Fungsi ini cuba menghentikan thread peranti untuk tempoh yang dinyatakan. Jeda ini tidak dijamin tepat kerana cara sistem operasi mengendalikan tidur thread.

ParameterJenisKeteranganContoh
DurationIntTempoh jeda yang diminta dalam milisaat1
  • Nota: Windows mempunyai masa tidur minimum 1-2 ms dan mula menjadi tidak tepat untuk nilai tidur yang lebih lama. Oleh itu, jangan gunakan fungsi ini untuk pemasaan yang tepat.
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.

Fungsi ini menukar endpoint aktif untuk semua arahan baca dan tulis. Ini berguna untuk peranti yang mempunyai berbilang endpoint terbuka untuk arahan yang berbeza. Contoh biasa ialah peranti Logitech yang mempunyai endpoint data RGB dan endpoint arahan sistem untuk perkara seperti tetapan DPI.

ParameterJenisKeteranganContoh
interfaceHEXNilai Hex 0x yang mewakili interface endpoint yang hendak dibuka0x0002
usageHEXNilai Hex 0x yang mewakili usage endpoint yang hendak dibuka0x0006
usage_pageHEXNilai Hex 0x yang mewakili usage_page endpoint yang hendak dibuka0x0080
collectionHEXNilai Hex 0x yang mewakili collection endpoint yang hendak dibuka0x0001
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);
}

Fungsi ini ialah versi plugin bagi console.log. Ia mengambil string, nombor, objek, atau array dan merekodkannya dalam konsol peranti untuk tujuan debug dan maklumat pengguna. Ini boleh berguna terutamanya untuk memaparkan perkara seperti perubahan DPI, ralat, atau semasa pembangunan, struktur paket atau input dari arahan baca.

  • Nota: Fungsi ini cuba menukar pemboleh ubah JavaScript kepada strings di mana mungkin. Merekodkan Template Literals JavaScript dengan parseInt(), toString(), atau JSON.stringify memberi Anda lebih kawalan ke atas penukaran dan pemformatan.
ParameterJenisKeteranganContohLalai
ItemJavascript ValueString, nombor, array, atau nilai JavaScript lain yang hendak direkodkan
OptionsJavaScript ObjectObjek JavaScript dengan parameter tetapan{hex: True}{}
PilihanKeteranganJenisLalai
HexMenentukan sama ada integer dikeluarkan dalam format perpuluhan atau hexBooleanFalse
toFileMenentukan sama ada item yang dikeluarkan muncul dalam log debug atau hanya dalam konsol perantiBooleanFalse
let ImportantData = "i have really important info here";
device.log(ImportantData, {toFile: true})

Pemberitahuan boleh digunakan untuk memaklumkan pengguna secara visual tentang masalah dengan peranti mereka. Ia harus digunakan dengan berhemah dan disimpan untuk masalah serius, seperti peranti yang tidak dikonfigurasi dengan betul.

Mencipta pemberitahuan baharu untuk pengguna. Nilai pulangan boleh digunakan untuk membuang pemberitahuan secara selektif, yang harus dilakukan apabila pengguna membetulkan masalah yang dilaporkan.

Keutamaan PemberitahuanKeteranganNilai
InfoPemberitahuan biasa0
ImportantPemberitahuan kritikal (ditonjolkan)1
ParameterJenisKeteranganContoh
TitleStringTajuk pemberitahuanFirmware Incompatible
DescriptionStringKeterangan pemberitahuanFirmware Version must be >= 2.0.0
PriorityIntKeutamaan pemberitahuan0 | 1
PulanganJenisKeterangan
AlertIdStringString Id pemberitahuan yang dicipta
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);

Membuang pemberitahuan yang dinyatakan, jika ada.

ParameterKeteranganJenis
AlertIdAlertId yang dikembalikan oleh device.notifyString
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);
// Do stuff and recheck if the alerted issue is fixed
device.denotify(AlertId);

Mesej peranti menyediakan cara untuk menyampaikan maklumat penting tetapi tidak kritikal kepada pengguna. Mesej ini hanya muncul pada halaman peranti.

Menambah mesej peranti baharu dengan MessageId yang diberikan.

ParameterJenisKeteranganContoh
messageIdstringMessageId yang dikaitkan dengan mesej peranti”mymessage”
messagestringTeks mesej yang hendak dipaparkan”The message”
tooltipstringTeks tambahan yang dipaparkan semasa hover”Some more info”
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");

Membuang mesej yang dicipta dengan MessageId yang diberikan, jika ada.

ParameterKeteranganJenis
messageIdMessageId yang hendak dibuangString
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");