Hoppa till innehåll

Mappa LED-positioner

Nu har vi en fullt fungerande enhet, men våra lysdioder är inte korrekt mappade.

För att mappa våra LED-positioner i SignalRGB behöver vi använda målningsverktyget.

För att använda målningsverktyget behöver vi öppna SignalRGB.

Sedan behöver vi gå till enhetssidan och navigera till vår enhet.

Nu behöver vi klicka på penselsfliken och klicka på penselsikonen.

Nu ska vi börja måla våra lysdioder och medan vi målar varje lysdiod namnger vi varje lysdiod i pluginet med sin motsvarighet på enheten.

Efter att ha målat alla våra lysdioder får vi följande mappning.

var vLedNames = [ "Logo", "Scroll Wheel", "Keypad", "Front", "DPI Indicator Light" ];
var vLedPositions = [ [0,0], [1,0], [2,0], [3,0], [4,0] ];

Nu är alla våra lysdioder korrekt namngivna, men de behöver fortfarande mappas korrekt till var de fysiskt sitter på enheten.

För att mappa våra lysdioder behöver vi förstå hur mappningssystemet fungerar. Positionssystemet fungerar som [x,y]. Det innebär att den första positionen (x) representerar hur långt till höger om vänstra kanten av enhetsrektangeln på effektcanvasen lysdioden är placerad. Den andra positionen (y) representerar hur långt nedanför den övre kanten av enhetsrektangeln på effektcanvasen lysdioden är placerad.

Med den informationen och den fysiska positionen för våra lysdioder i åtanke får vi följande korrekta mappning.

var vLedNames = [ "Logo", "Scroll Wheel", "Keypad", "Front", "DPI Indicator Light" ];
var vLedPositions = [ [1,2], [1,0], [0,1], [2,0], [0,0] ];

Nu när vi har skapat korrekt mappning för våra lysdioder behöver vi också ändra storleken på enhetsrektangeln för att korrekt representera vår enhets storlek.

Kom ihåg att vår enhetsstorlek behöver vara en större än våra längst bort befintliga positioner i varje riktning. Det innebär att eftersom mina längst bort befintliga positioner är [2,2] behöver min enhetsstorlek vara [3,3].

export function Name() { return "Corsair Scimitar Pro"; }
export function VendorId() { return 0x1b1c; }
export function ProductId() { return 0x1B3E; }
export function Publisher() { return "WhirlwindFX"; }
export function Size() { return [3,3]; }
export function DefaultPosition(){return [10, 100]; }
export function DefaultScale(){return 8.0}

Nu har vi ett fullt fungerande enhetsplugin, men det saknar fortfarande en enhetsbild.