外掛程式匯出
我們使用幾個函式與後端 API 通訊,這些函式回報裝置資訊和執行時間入口點、顯示名稱、canvas 尺寸、要搜尋的產品和供應商 ID、渲染迴圈是什麼等資訊。
“Name” 和 “Publisher”
Section titled ““Name” 和 “Publisher””這些函式匯出要在 SignalRGB 中顯示的裝置名稱和發布者。
export function Name() { return "Device Product name as a String"; };export function Publisher() { return "This is You! as a String"; };“VendorId” 和 “ProductId”
Section titled ““VendorId” 和 “ProductId””這些函式用於在系統中搜尋裝置。兩者都以「0x」格式的十六進位值編碼。這些需要與您的裝置 ID 完全匹配。如果您的外掛程式未在 SignalRGB 中顯示,最可能的原因是供應商和產品 ID 不匹配。在 SignalRGB 中偵測裝置所需的最低限度是匹配的供應商和產品 ID。
export function VendorId() { return 0xABCD;}; //裝置的 USB 供應商 ID(十六進位)export function ProductId() { return 0xABCD;}; //裝置的 USB 產品 ID(十六進位)“Size” 和定位
Section titled ““Size” 和定位”這設定裝置在 canvas 上的方框基本大小——在任何縮放之前——作為僅整數的 2D 陣列。您在外掛程式中無法取得這些範圍之外的顏色,因此大小必須設定為適應將 LED 轉換為網格時裝置 LED 的寬度和高度。
export function Size() { return [X,Y]; };這些函式將在任何使用者自訂之前設定裝置的預設位置。DefaultPosition 返回左上角的 2D 座標。DefaultScale 返回 1.0-30.0 範圍內的縮放乘數。
export function DefaultPosition(){return [X,Y]};export function DefaultScale(){return 8.0};“Led Names”
Section titled ““Led Names””此函式返回裝置上所有 LED 名稱的 2D 陣列。這些應遵循支援的按鍵名稱(位於此處)以支援按鍵特效和 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”
Section titled ““Led Positions””此函式返回裝置像素緩衝區中各個 LED 位置的矩陣。所有位置必須在裝置 Size() 匯出設定的範圍內。
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”
Section titled ““ControllableParameters””此函式包含裝置外掛程式的所有設定。這些設定儲存為由函式以陣列形式返回的 JS/JSON 物件。更多資訊請參閱使用者控制項。
export function ControllableParameters(){ return [ {SETTING}, {SETTING} ];}“Validate”
Section titled ““Validate””此函式負責確定 SignalRGB 希望為裝置開啟和使用哪些 USB 端點。每個端點都有四個參數作為篩選器,對應裝置上每個 USB 端點的值。可以為每個裝置「開啟」多個端點,但一次只使用一個。要更改活動端點,請參閱 device.set_endpoint()。
注意:命令通常需要發送到特定端點。如果這些值不匹配,發送到配置為接受特定報告 ID 或長度的端點的命令將拋出錯誤。
注意:並非所有裝置都會使用一致的端點,這取決於裝置製造的地點和時間。驗證多個端點可讓您在需要時自動回退。
| 可用參數 |
|---|
| interface |
| usage |
| usage_page |
| collection |
export function Validate(endpoint){ return (endpoint.interface === 2 && endpoint.collection === 0x0003) || endpoint.interface === 1;
}”Type”
Section titled “”Type””此函式設定要使用的 USB 協定類型。大多數裝置使用 HID 協定,但某些裝置(如 AIO)將使用原始 USB 控制函式代替。
注意:當此函式對 SignalRGB 不可用時,預設值為 HID 協定。
| 協定 | 字串值 |
|---|---|
| HID | ”HID” |
| Lib/原始 USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
Section titled “"ConflictingProcesses””此函式匯出衝突的 exe 名稱列表。當其中一個正在執行時,SignalRGB 將不會初始化外掛程式。當衝突的處理程序關閉或使用者繞過錯誤訊息時,外掛程式將被初始化。
注意:這些名稱必須與正在執行的 exe 名稱完全匹配。
export function ConflictingProcesses() { return ["NGenuity2.exe"];}“ImageUrl”
Section titled ““ImageUrl””此函式返回裝置的圖片 URL 字串。標準外掛程式圖片大小為 1024x1024,有效區域為 920x920。
export function ImageUrl(){ return "URL image string";}