Bỏ qua để đến nội dung

Hàm tiện ích

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ểuMô tảVí dụ
XIntGiá trị Int đại diện cho tọa độ X trong pixel buffer của thiết bị5
YIntGiá 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ểuMô tảVí dụ
ColorArray1D ArrayMả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;
}

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ểuMô tảVí dụ
BrightnessintĐộ sáng hiện tại trong khoảng 0-10042

Trả về tên WMI của bo mạch chủ của hệ thống hiện tại.

Trả vềKiểuMô tảVí dụ
MotherboardNamestringTên bo mạch chủ của hệ thốngB550 Aorus Elite

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ểuMô tảVí dụ
DurationIntThời gian tạm dừng yêu cầu tính bằng mili giây1
  • 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.

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ểuMô tảVí dụ
interfaceHEXGiá trị 0x-hex đại diện cho interface của endpoint cần mở0x0002
usageHEXGiá trị 0x-hex đại diện cho Usage của endpoint cần mở0x0006
usage_pageHEXGiá trị 0x-hex đại diện cho Usage-Page của endpoint cần mở0x0080
collectionHEXGiá 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);
}

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ểuMô tảVí dụMặc định
ItemJavascript ValueChuỗi, số, mảng hoặc giá trị JavaScript khác để ghi
OptionsJavaScript ObjectĐối tượng JavaScript với các tham số cài đặt{hex: True}{}
Tùy chọnMô tảKiểuMặc định
HexXác định xem các số nguyên có được in ở định dạng thập phân hay hexBooleanFalse
toFileXác định xem các mục được in có xuất hiện trong debug logs hay chỉ trong console thiết bịBooleanFalse
let ImportantData = "i have really important info here";
device.log(ImportantData, {toFile: true})

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.

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áoMô tảGiá trị
InfoThông báo bình thường0
ImportantThông báo quan trọng (nổi bật)1
Tham sốKiểuMô tảVí dụ
TitleStringTiêu đề thông báoFirmware Incompatible
DescriptionStringMô tả thông báoFirmware Version must be >= 2.0.0
PriorityIntƯu tiên thông báo0 | 1
Trả vềKiểuMô tả
AlertIdStringChuỗi Id của thông báo được tạo
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);

Xóa thông báo được chỉ định, nếu tồn tại.

Tham sốKiểuMô tả
AlertIdStringAlertId đượ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 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ị.

Thêm tin nhắn thiết bị mới với messageId được chỉ định.

Tham sốKiểuMô tảVí dụ
messageIdstringMessageId liên kết với tin nhắn thiết bị”mymessage”
messagestringVăn bản tin nhắn cần hiển thị”The message”
tooltipstringVă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");

Xóa tin nhắn được tạo với messageId được chỉ định, nếu tồn tại.

Tham sốKiểuMô tả
messageIdstringMessageId 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");