Exporti plugina
Koristimo nekoliko funkcija za komunikaciju sa backend API-jem koje prenose informacije kao što su podaci o uređaju i runtime ulazne tačke, ime za prikaz, dimenzije canvas-a, ID-ovi proizvoda i dobavljača za pretragu, render petlja itd.
”Name” i “Publisher”
Section titled “”Name” i “Publisher””Ove funkcije eksportuju naziv uređaja i izdavača za prikaz u SignalRGBu.
export function Name() { return "Device Product name as a String"; };export function Publisher() { return "This is You! as a String"; };”VendorId” i “ProductId”
Section titled “”VendorId” i “ProductId””Ove funkcije se koriste za pretragu sistema za uređajem. Oba su kodirana kao hex vrednosti u formatu “0x ”. Moraju tačno odgovarati ID-ovima vašeg uređaja. Ako se vaš plugin ne prikazuje u SignalRGBu, to je najčešće zbog neodgovarajućeg ID-a dobavljača i proizvoda. Minimum potreban za prepoznavanje uređaja u SignalRGBu je odgovarajući ID dobavljača i proizvoda.
export function VendorId() { return 0xABCD;}; //Device's USB Vendor Id in Hexexport function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex”Size” i pozicioniranje
Section titled “”Size” i pozicioniranje”Ova vrednost postavlja osnovnu veličinu polja uređaja na canvas-u — pre bilo kakvog skaliranja — kao dvodimenzionalni niz celih brojeva. U vašem pluginu ne možete preuzeti boje izvan ovih granica, pa veličina mora biti podešena da prihvati širinu i visinu LED dioda uređaja kada ih prevedete u rešetku.
export function Size() { return [X,Y]; };Ove funkcije postavljaju podrazumevanu poziciju uređaja pre bilo kakvih prilagođavanja korisnika. DefaultPosition vraća 2D koordinate gornjeg levog ugla. DefaultScale vraća multiplikator skaliranja na skali od 1.0 do 30.0.
export function DefaultPosition(){return [X,Y]};export function DefaultScale(){return 8.0};”Led Names”
Section titled “”Led Names””Ova funkcija vraća dvodimenzionalni niz svih LED naziva na uređaju. Ovi bi trebalo da prate podržane nazive tastera (Located HERE) kako bi se podržali efekti pritiska tastera i funkcije obeležavanja LED dioda.
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””Ova funkcija vraća matricu pojedinačnih pozicija LED dioda unutar piksel bafera uređaja. Sve pozicije moraju biti unutar granica postavljenih exportom Size() uređaja.
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””Ova funkcija sadrži sva podešavanja za plugin uređaja. Ova podešavanja su pohranjena kao JS/JSON objekti koji se vraćaju unutar niza od strane funkcije. Za više informacija pogledajte Korisničke kontrole.
export function ControllableParameters(){ return [ {SETTING}, {SETTING} ];}”Validate”
Section titled “”Validate””Ova funkcija je odgovorna za određivanje kojih USB endpointa SignalRGB treba da otvori i koristi za uređaj. Svaki endpoint ima četiri parametra za filtriranje koji odgovaraju vrednostima svakog USB endpointa na uređaju. Više endpointa može biti “otvoreno” za svaki uređaj, ali samo jedan se koristi istovremeno. Da biste promenili aktivni endpoint, pogledajte device.set_endpoint().
Napomena: Komande obično moraju biti poslate na određeni endpoint. Komande poslate na endpoint koji je uređaj konfigurisao za određeni ID izveštaja ili dužinu će izazvati greške kada se te vrednosti ne podudaraju.
Napomena: Nisu svi uređaji konzistentni u endpointima u zavisnosti od mesta i vremena proizvodnje. Validacijom više endpointa možete automatski preći na drugi po potrebi.
| Dostupni parametri |
|---|
| interface |
| usage |
| usage_page |
| collection |
export function Validate(endpoint){ return (endpoint.interface === 2 && endpoint.collection === 0x0003) || endpoint.interface === 1;
}”Type”
Section titled “”Type””Ova funkcija postavlja tip USB protokola koji će se koristiti. Većina uređaja koristi HID protokole, ali neki uređaji kao što su AIO-i koriste umesto toga Raw USB kontrolne funkcije.
Napomena: Podrazumevana vrednost kada ova funkcija nije dostupna za SignalRGB je HID protokol.
| Protokol | String vrednost |
|---|---|
| HID | ”HID” |
| Lib/raw USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
Section titled “"ConflictingProcesses””Ova funkcija eksportuje listu konfliktnih naziva izvršnih datoteka. SignalRGB neće inicijalizovati plugin dok jedan od ovih procesa radi. Plugin će biti inicijalizovan kada se konfliktni proces zatvori ili kada korisnik zaobiđe poruku o grešci.
Napomena: Ovi nazivi moraju tačno odgovarati nazivu pokrenute izvršne datoteke.
export function ConflictingProcesses() { return ["NGenuity2.exe"];}”ImageUrl”
Section titled “”ImageUrl””Ova funkcija vraća string URL slike uređaja. Standardna veličina slike plugina je 1024x1024 piksela sa radnim prostorom od 920x920.
export function ImageUrl(){ return "URL image string";}