Plugin exports
Chúng tôi sử dụng một số hàm để giao tiếp với backend API truyền thông tin như dữ liệu thiết bị và các điểm nhập runtime, tên hiển thị, kích thước canvas, ID sản phẩm và nhà cung cấp để tìm kiếm, vòng lặp render, v.v.
”Name” và “Publisher”
Phần tiêu đề “”Name” và “Publisher””Các hàm này xuất tên thiết bị và nhà xuất bản để hiển thị trong SignalRGB.
export function Name() { return "Device Product name as a String"; };export function Publisher() { return "This is You! as a String"; };”VendorId” và “ProductId”
Phần tiêu đề “”VendorId” và “ProductId””Các hàm này được sử dụng để tìm kiếm thiết bị trên hệ thống. Cả hai đều được mã hóa dưới dạng giá trị hex theo định dạng “0x ”. Chúng phải khớp chính xác với ID của thiết bị của bạn. Nếu plugin của bạn không hiển thị trong SignalRGB, nguyên nhân thường là do ID nhà cung cấp và sản phẩm không khớp. Điều tối thiểu cần thiết để nhận dạng thiết bị trong SignalRGB là ID nhà cung cấp và sản phẩm khớp.
export function VendorId() { return 0xABCD;}; //Device's USB Vendor Id in Hexexport function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex”Size” và vị trí
Phần tiêu đề “”Size” và vị trí”Giá trị này đặt kích thước cơ bản của trường thiết bị trên canvas — trước bất kỳ tỷ lệ nào — dưới dạng mảng hai chiều các số nguyên. Trong plugin của bạn, bạn không thể lấy màu bên ngoài các giới hạn này, vì vậy kích thước phải được điều chỉnh để chứa chiều rộng và chiều cao của các LED thiết bị khi bạn dịch chúng thành lưới.
export function Size() { return [X,Y]; };Các hàm này đặt vị trí mặc định của thiết bị trước bất kỳ điều chỉnh nào của người dùng. DefaultPosition trả về tọa độ 2D của góc trên bên trái. DefaultScale trả về hệ số tỷ lệ trên thang điểm từ 1.0 đến 30.0.
export function DefaultPosition(){return [X,Y]};export function DefaultScale(){return 8.0};”Led Names”
Phần tiêu đề “”Led Names””Hàm này trả về mảng hai chiều của tất cả các tên LED trên thiết bị. Chúng nên tuân theo các tên phím được hỗ trợ (Located HERE) để hỗ trợ các hiệu ứng nhấn phím và chức năng đánh dấu LED.
var vLedNames = [ "Scroll Wheel", "Side Led 1","Side Led 2","Side Led 3","Side Led 4", "Side Led 5","logo", "Right Side Led", "Dpi 1","dpi 2","Dpi 3", "Battery indicator"];export function LedNames(){return vLedNames;};”Led Positions”
Phần tiêu đề “”Led Positions””Hàm này trả về ma trận các vị trí LED riêng lẻ trong bộ đệm pixel của thiết bị. Tất cả các vị trí phải nằm trong giới hạn được đặt bởi export Size() của thiết bị.
var vLedPositions = [ [3,0], [0,1],[0,2],[0,3],[0,4],[0,5],[3,5],[5,5], [0,2],[0,1],[0,0], [3,1]];export function LedPositions(){return vLedPositions;};”ControllableParameters”
Phần tiêu đề “”ControllableParameters””Hàm này chứa tất cả các cài đặt cho plugin thiết bị. Các cài đặt này được lưu trữ dưới dạng các đối tượng JS/JSON được trả về trong một mảng bởi hàm. Để biết thêm thông tin, hãy xem Điều khiển người dùng.
export function ControllableParameters(){ return [ {SETTING}, {SETTING} ];}”Validate”
Phần tiêu đề “”Validate””Hàm này chịu trách nhiệm xác định endpoint USB nào mà SignalRGB nên mở và sử dụng cho thiết bị. Mỗi endpoint có bốn tham số lọc tương ứng với các giá trị của mỗi endpoint USB trên thiết bị. Có thể “mở” nhiều endpoint cho mỗi thiết bị, nhưng chỉ một được sử dụng tại một thời điểm. Để thay đổi endpoint đang hoạt động, hãy xem device.set_endpoint().
Lưu ý: Các lệnh thường phải được gửi đến một endpoint cụ thể. Các lệnh được gửi đến endpoint mà thiết bị đã cấu hình cho một ID báo cáo hoặc độ dài cụ thể sẽ gây ra lỗi khi các giá trị đó không khớp.
Lưu ý: Không phải tất cả các thiết bị đều nhất quán trong các endpoint tùy thuộc vào nơi và thời điểm sản xuất. Bằng cách xác nhận nhiều endpoint, bạn có thể tự động chuyển sang endpoint khác khi cần thiết.
| Các tham số có sẵn |
|---|
| interface |
| usage |
| usage_page |
| collection |
export function Validate(endpoint){ return (endpoint.interface === 2 && endpoint.collection === 0x0003) || endpoint.interface === 1;
}”Type”
Phần tiêu đề “”Type””Hàm này đặt loại giao thức USB sẽ được sử dụng. Hầu hết các thiết bị sử dụng giao thức HID, nhưng một số thiết bị như AIO sử dụng các hàm điều khiển Raw USB thay thế.
Lưu ý: Giá trị mặc định khi hàm này không có sẵn cho SignalRGB là giao thức HID.
| Giao thức | Giá trị chuỗi |
|---|---|
| HID | ”HID” |
| Lib/raw USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
Phần tiêu đề “"ConflictingProcesses””Hàm này xuất danh sách các tên tệp thực thi xung đột. SignalRGB sẽ không khởi tạo plugin trong khi một trong những tiến trình này đang chạy. Plugin sẽ được khởi tạo khi tiến trình xung đột đóng lại hoặc khi người dùng bỏ qua thông báo lỗi.
Lưu ý: Những tên này phải khớp chính xác với tên của tệp thực thi đang chạy.
export function ConflictingProcesses() { return ["NGenuity2.exe"];}”ImageUrl”
Phần tiêu đề “”ImageUrl””Hàm này trả về URL chuỗi hình ảnh thiết bị. Kích thước hình ảnh tiêu chuẩn của plugin là 1024x1024 pixel với không gian làm việc 920x920.
export function ImageUrl(){ return "URL image string";}