Utilities
Utilitas Perangkat
Section titled “Utilitas Perangkat”device.color()
Section titled “device.color()”Fungsi ini adalah cara Anda mengambil data warna dari canvas. Fungsi ini menerima posisi X,Y relatif terhadap dan di dalam buffer piksel perangkat di canvas dan mengembalikan array [R,G,B] dari warna di piksel tersebut.
| Parameter | Tipe | Deskripsi | Contoh |
|---|---|---|---|
| X | Int | Nilai Int yang mewakili koordinat X dalam Buffer Piksel Perangkat | 5 |
| Y | Int | Nilai Int yang mewakili koordinat Y dalam Buffer Piksel Perangkat | 3 |
- Catatan: koordinat X,Y yang dikirim harus berada dalam Buffer Piksel yang ditetapkan oleh Ekspor Size()
| Return | Tipe | Deskripsi | Contoh |
|---|---|---|---|
| ColorArray | 1D Array | Array dengan panjang 3 yang berisi nilai [R, G, B] terkoordinasi mulai dari 0-255 (HEX 00-FF) | [128,158,255] |
Di bawah ini adalah contoh yang disederhanakan dari fungsi yang digunakan dalam situasi 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 level kecerahan perangkat saat ini dalam SignalRGB. Nilai ini sudah diterapkan ke warna apa pun yang dikembalikan oleh device.color() atau sejenisnya.
| Return | Tipe | Deskripsi | Contoh |
|---|---|---|---|
| Brightness | int | Kecerahan saat ini dalam rentang 0-100 | 42 |
device.getMotherboardName()
Section titled “device.getMotherboardName()”Mengembalikan nama WMI dari motherboard sistem saat ini.
| Return | Tipe | Deskripsi | Contoh |
|---|---|---|---|
| MotherboardName | string | Nama motherboard sistem | B550 Aorus Elite |
device.pause()
Section titled “device.pause()”Fungsi ini mencoba untuk menjeda thread perangkat selama durasi yang diberikan. Jeda ini tidak dijamin tepat karena cara sistem operasi menangani thread sleep.
| Parameter | Tipe | Deskripsi | Contoh |
|---|---|---|---|
| Duration | Int | Durasi jeda yang diminta dalam milidetik | 1 |
- Catatan: Windows memiliki waktu tidur minimum 1-2ms dan akan mulai tidak stabil ketika tidur semakin lama, jadi jangan gunakan ini untuk pengaturan waktu 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 mengubah endpoint aktif untuk semua perintah baca dan tulis. Ini berguna untuk perangkat yang memiliki beberapa endpoint terbuka untuk perintah yang berbeda. Contoh umum dari ini adalah perangkat Logitech yang memiliki endpoint data RGB dan endpoint perintah sistem untuk hal-hal seperti pengaturan DPI.
| Parameter | Tipe | Deskripsi | Contoh |
|---|---|---|---|
| interface | HEX | Nilai Hex 0x yang mewakili antarmuka endpoint yang akan dibuka | 0x0002 |
| usage | HEX | Nilai Hex 0x yang mewakili usage endpoint yang akan dibuka | 0x0006 |
| usage_page | HEX | Nilai Hex 0x yang mewakili usage_page endpoint yang akan dibuka | 0x0080 |
| collection | HEX | Nilai Hex 0x yang mewakili collection endpoint yang akan 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 adalah versi plugin dari console.log. Fungsi ini menerima String, Number, Object, atau Array dan mencatatnya di konsol perangkat untuk debugging dan informasi pengguna. Ini bisa sangat berguna untuk mencantumkan hal-hal seperti perubahan DPI, error, atau selama pengembangan untuk menampilkan tata letak paket atau input dari perintah baca.
- Catatan: Fungsi ini akan mencoba mengonversi variabel JavaScript menjadi string jika memungkinkan. Pencatatan Template Literal JavaScript menggunakan parseInt(), toString(), atau JSON.stringify dapat memberi Anda lebih banyak kontrol atas konversi dan pemformatan.
| Parameter | Tipe | Deskripsi | Contoh | Default |
|---|---|---|---|---|
| Item | Nilai Javascript | String, number, array, atau nilai JavaScript lainnya yang akan dicatat | ||
| Options | Objek JavaScript | Objek Javascript yang berisi parameter pengaturan | {hex: True} | {} |
| Opsi | Deskripsi | Tipe | Default |
|---|---|---|---|
| Hex | Mengatur apakah integer harus dicetak dalam format desimal atau hex | Boolean | False |
| toFile | Mengatur apakah item yang dicetak harus muncul di log debug, atau hanya di konsol perangkat | Boolean | False |
let ImportantData = "i have really important info here"; device.log(ImportantData, {toFile: true})Alerts
Section titled “Alerts”Alert dapat digunakan untuk meminta pengguna secara visual jika ada masalah dengan perangkat mereka. Alert harus digunakan dengan hemat dan disimpan untuk masalah yang benar-benar menghentikan segalanya seperti perangkat yang tidak dikonfigurasi dengan benar.
device.notify()
Section titled “device.notify()”Membuat alert baru untuk pengguna. Nilai return dapat digunakan untuk menghapus alert secara selektif dan harus dilakukan jika pengguna memperbaiki masalah yang diperingatkan.
| Prioritas Alert | Deskripsi | Nilai |
|---|---|---|
| Info | Alert Normal | 0 |
| Important | Alert Kritis (Disorot) | 1 |
| Parameter | Tipe | Deskripsi | Contoh |
|---|---|---|---|
| Title | String | Judul Alert | Firmware Incompatible |
| Description | String | Deskripsi Alert | Firmware Version must be >= 2.0.0 |
| Priority | Int | Prioritas Alert | 0 | 1 |
| Return | Tipe | Deskripsi |
|---|---|---|
| AlertId | String | String Id dari alert yang dibuat |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
Section titled “device.denotify()”Menghapus alert yang diberikan jika ada.
| Parameter | Tipe | Deskripsi |
|---|---|---|
| AlertId | String | AlertId yang dikembalikan oleh 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);Messages
Section titled “Messages”Pesan perangkat menyediakan cara untuk menyampaikan informasi penting, tetapi tidak menghentikan segalanya, kepada pengguna. Pesan-pesan ini hanya akan muncul di halaman perangkat.

device.addMessage()
Section titled “device.addMessage()”Menambahkan pesan perangkat baru dengan MessageId yang diberikan.
| Parameter | Tipe | Deskripsi | Contoh |
|---|---|---|---|
| messageId | string | MessageId yang terkait dengan pesan perangkat | ”mymessage” |
| message | string | Teks pesan yang akan ditampilkan | ”The message” |
| tooltip | string | Teks tambahan yang ditampilkan saat 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()”Menghapus pesan yang dibuat dengan MessageId yang diberikan jika ada.
| Parameter | Tipe | Deskripsi |
|---|---|---|
| messageId | string | MessageId yang akan dihapus |
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");