Hàm tiện ích
Hàm tiện ích thiết bị
Phần tiêu đề “Hàm tiện ích thiết bị”device.color()
Phần tiêu đề “device.color()”Hàm này dùng để lấy dữ liệu màu từ canvas. Nó nhận vị trí X,Y tương đối với pixel buffer của thiết bị trên canvas và trả về mảng màu [R,G,B] tại pixel đó.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| X | Int | Giá trị Int đại diện cho tọa độ X trong pixel buffer của thiết bị | 5 |
| Y | Int | Giá trị Int đại diện cho tọa độ Y trong pixel buffer của thiết bị | 3 |
- Lưu ý: Tọa độ X,Y được gửi phải nằm trong pixel buffer được xác định bởi export Size().
| Trả về | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| ColorArray | 1D Array | Mảng độ dài 3 chứa các giá trị [R, G, B] trong khoảng 0-255 (HEX 00-FF) | [128,158,255] |
Dưới đây là ví dụ đơn giản về hàm trong ứng dụng điển hình.
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()
Phần tiêu đề “device.getBrightness()”Trả về mức độ sáng hiện tại của thiết bị trong SignalRGB. Giá trị này đã được áp dụng cho tất cả màu sắc trả về bởi device.color() hoặc các hàm tương tự.
| Trả về | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| Brightness | int | Độ sáng hiện tại trong khoảng 0-100 | 42 |
device.getMotherboardName()
Phần tiêu đề “device.getMotherboardName()”Trả về tên WMI của bo mạch chủ của hệ thống hiện tại.
| Trả về | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| MotherboardName | string | Tên bo mạch chủ của hệ thống | B550 Aorus Elite |
device.pause()
Phần tiêu đề “device.pause()”Hàm này cố gắng tạm dừng luồng thiết bị trong khoảng thời gian được chỉ định. Các lần tạm dừng này không được đảm bảo chính xác do cách hệ điều hành quản lý các lần tạm dừng luồng.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| Duration | Int | Thời gian tạm dừng yêu cầu tính bằng mili giây | 1 |
- Lưu ý: Windows có thời gian ngủ tối thiểu là 1-2 ms và trở nên kém chính xác hơn ở các giá trị ngủ dài hơn. Do đó, đừng sử dụng hàm này cho thời gian chính xác.
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()
Phần tiêu đề “device.set_endpoint()”Hàm này thay đổi endpoint đang hoạt động cho tất cả các lệnh đọc và ghi. Điều này hữu ích cho các thiết bị có nhiều endpoint mở cho các lệnh khác nhau. Ví dụ phổ biến là các thiết bị Logitech có endpoint cho dữ liệu RGB và endpoint lệnh hệ thống cho các thứ như cài đặt DPI.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| interface | HEX | Giá trị 0x-hex đại diện cho interface của endpoint cần mở | 0x0002 |
| usage | HEX | Giá trị 0x-hex đại diện cho Usage của endpoint cần mở | 0x0006 |
| usage_page | HEX | Giá trị 0x-hex đại diện cho Usage-Page của endpoint cần mở | 0x0080 |
| collection | HEX | Giá trị 0x-hex đại diện cho Collection của endpoint cần mở | 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()
Phần tiêu đề “device.log()”Hàm này là phiên bản console.log dành cho plugin. Nó nhận chuỗi, số, đối tượng hoặc mảng và ghi nó vào console thiết bị để debug và thông báo cho người dùng. Điều này đặc biệt hữu ích để hiển thị những thứ như thay đổi DPI, lỗi, hoặc trong quá trình phát triển cấu trúc packet hoặc đầu vào từ các lệnh đọc.
- Lưu ý: Hàm này cố gắng chuyển đổi các biến JavaScript thành chuỗi ở nơi có thể. Ghi Template Literals JavaScript với parseInt(), toString() hoặc JSON.stringify cho bạn nhiều quyền kiểm soát hơn đối với chuyển đổi và định dạng.
| Tham số | Kiểu | Mô tả | Ví dụ | Mặc định |
|---|---|---|---|---|
| Item | Javascript Value | Chuỗi, số, mảng hoặc giá trị JavaScript khác để ghi | ||
| Options | JavaScript Object | Đối tượng JavaScript với các tham số cài đặt | {hex: True} | {} |
| Tùy chọn | Mô tả | Kiểu | Mặc định |
|---|---|---|---|
| Hex | Xác định xem các số nguyên có được in ở định dạng thập phân hay hex | Boolean | False |
| toFile | Xác định xem các mục được in có xuất hiện trong debug logs hay chỉ trong console thiết bị | Boolean | False |
let ImportantData = "i have really important info here"; device.log(ImportantData, {toFile: true})Thông báo
Phần tiêu đề “Thông báo”Thông báo có thể được sử dụng để cảnh báo người dùng một cách rõ ràng về sự cố với thiết bị của họ. Nên sử dụng chúng một cách tiết kiệm và dành riêng cho các vấn đề nghiêm trọng, chẳng hạn như các thiết bị không được cấu hình đúng cách.
device.notify()
Phần tiêu đề “device.notify()”Tạo thông báo mới cho người dùng. Giá trị trả về có thể được sử dụng để xóa thông báo một cách có chọn lọc, điều này nên được thực hiện khi người dùng giải quyết vấn đề đã báo cáo.
| Ưu tiên thông báo | Mô tả | Giá trị |
|---|---|---|
| Info | Thông báo bình thường | 0 |
| Important | Thông báo quan trọng (nổi bật) | 1 |
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| Title | String | Tiêu đề thông báo | Firmware Incompatible |
| Description | String | Mô tả thông báo | Firmware Version must be >= 2.0.0 |
| Priority | Int | Ưu tiên thông báo | 0 | 1 |
| Trả về | Kiểu | Mô tả |
|---|---|---|
| AlertId | String | Chuỗi Id của thông báo được tạo |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
Phần tiêu đề “device.denotify()”Xóa thông báo được chỉ định, nếu tồn tại.
| Tham số | Kiểu | Mô tả |
|---|---|---|
| AlertId | String | AlertId được trả về bởi 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);Tin nhắn
Phần tiêu đề “Tin nhắn”Tin nhắn thiết bị cung cấp cách truyền thông tin quan trọng nhưng không quan trọng đến người dùng. Những tin nhắn này chỉ xuất hiện trên trang thiết bị.

device.addMessage()
Phần tiêu đề “device.addMessage()”Thêm tin nhắn thiết bị mới với messageId được chỉ định.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| messageId | string | MessageId liên kết với tin nhắn thiết bị | ”mymessage” |
| message | string | Văn bản tin nhắn cần hiển thị | ”The message” |
| tooltip | string | Văn bản bổ sung hiển thị khi hover | ”Some more info” |
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");device.removeMessage()
Phần tiêu đề “device.removeMessage()”Xóa tin nhắn được tạo với messageId được chỉ định, nếu tồn tại.
| Tham số | Kiểu | Mô tả |
|---|---|---|
| messageId | string | MessageId cần xóa |
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");