Fungsi Utiliti
Fungsi Utiliti Peranti
Section titled “Fungsi Utiliti Peranti”device.color()
Section titled “device.color()”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.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| X | Int | Nilai Int yang mewakili koordinat X dalam penimbal piksel peranti | 5 |
| Y | Int | Nilai Int yang mewakili koordinat Y dalam penimbal piksel peranti | 3 |
- Nota: Koordinat X,Y yang dihantar mesti berada dalam penimbal piksel yang ditetapkan oleh eksport Size().
| Pulangan | Jenis | Keterangan | Contoh |
|---|---|---|---|
| ColorArray | 1D Array | Array 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; }device.getBrightness()
Section titled “device.getBrightness()”Mengembalikan tahap kecerahan peranti semasa dalam SignalRGB. Nilai ini sudah diaplikasikan ke semua warna yang dikembalikan oleh device.color() atau fungsi serupa.
| Pulangan | Jenis | Keterangan | Contoh |
|---|---|---|---|
| Brightness | int | Kecerahan semasa dalam julat 0-100 | 42 |
device.getMotherboardName()
Section titled “device.getMotherboardName()”Mengembalikan nama WMI papan induk sistem semasa.
| Pulangan | Jenis | Keterangan | Contoh |
|---|---|---|---|
| MotherboardName | string | Nama papan induk sistem | B550 Aorus Elite |
device.pause()
Section titled “device.pause()”Fungsi ini cuba menghentikan thread peranti untuk tempoh yang dinyatakan. Jeda ini tidak dijamin tepat kerana cara sistem operasi mengendalikan tidur thread.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| Duration | Int | Tempoh jeda yang diminta dalam milisaat | 1 |
- 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.device.set_endpoint()
Section titled “device.set_endpoint()”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.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| interface | HEX | Nilai Hex 0x yang mewakili interface endpoint yang hendak dibuka | 0x0002 |
| usage | HEX | Nilai Hex 0x yang mewakili usage endpoint yang hendak dibuka | 0x0006 |
| usage_page | HEX | Nilai Hex 0x yang mewakili usage_page endpoint yang hendak dibuka | 0x0080 |
| collection | HEX | Nilai Hex 0x yang mewakili collection endpoint yang hendak dibuka | 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);}device.log()
Section titled “device.log()”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.
| Parameter | Jenis | Keterangan | Contoh | Lalai |
|---|---|---|---|---|
| Item | Javascript Value | String, nombor, array, atau nilai JavaScript lain yang hendak direkodkan | ||
| Options | JavaScript Object | Objek JavaScript dengan parameter tetapan | {hex: True} | {} |
| Pilihan | Keterangan | Jenis | Lalai |
|---|---|---|---|
| Hex | Menentukan sama ada integer dikeluarkan dalam format perpuluhan atau hex | Boolean | False |
| toFile | Menentukan sama ada item yang dikeluarkan muncul dalam log debug atau hanya dalam konsol peranti | Boolean | False |
let ImportantData = "i have really important info here"; device.log(ImportantData, {toFile: true})Pemberitahuan
Section titled “Pemberitahuan”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.
device.notify()
Section titled “device.notify()”Mencipta pemberitahuan baharu untuk pengguna. Nilai pulangan boleh digunakan untuk membuang pemberitahuan secara selektif, yang harus dilakukan apabila pengguna membetulkan masalah yang dilaporkan.
| Keutamaan Pemberitahuan | Keterangan | Nilai |
|---|---|---|
| Info | Pemberitahuan biasa | 0 |
| Important | Pemberitahuan kritikal (ditonjolkan) | 1 |
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| Title | String | Tajuk pemberitahuan | Firmware Incompatible |
| Description | String | Keterangan pemberitahuan | Firmware Version must be >= 2.0.0 |
| Priority | Int | Keutamaan pemberitahuan | 0 | 1 |
| Pulangan | Jenis | Keterangan |
|---|---|---|
| AlertId | String | String Id pemberitahuan yang dicipta |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
Section titled “device.denotify()”Membuang pemberitahuan yang dinyatakan, jika ada.
| Parameter | Keterangan | Jenis |
|---|---|---|
| AlertId | AlertId yang dikembalikan oleh device.notify | String |
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.

device.addMessage()
Section titled “device.addMessage()”Menambah mesej peranti baharu dengan MessageId yang diberikan.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| messageId | string | MessageId yang dikaitkan dengan mesej peranti | ”mymessage” |
| message | string | Teks mesej yang hendak dipaparkan | ”The message” |
| tooltip | string | Teks 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");device.removeMessage()
Section titled “device.removeMessage()”Membuang mesej yang dicipta dengan MessageId yang diberikan, jika ada.
| Parameter | Keterangan | Jenis |
|---|---|---|
| messageId | MessageId yang hendak dibuang | String |
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");