pxt-common-packages
Version:
Microsoft MakeCode (PXT) common packages
41 lines (38 loc) • 1.52 kB
text/typescript
namespace light {
let _defaultStrip: NeoPixelStrip;
/**
* Gets the default light strip
*/
//% help=light/default-strip
//% blockId="neopixel_default_strip" block="default strip"
//% weight=110 blockGap=8
//% advanced=true
//% parts=pixels
export function defaultStrip(): NeoPixelStrip {
if (_defaultStrip) return _defaultStrip;
const data = pins.pinByCfg(DAL.CFG_PIN_DOTSTAR_DATA);
const clk = pins.pinByCfg(DAL.CFG_PIN_DOTSTAR_CLOCK);
const dsnum = control.getConfigValue(DAL.CFG_NUM_DOTSTARS, 0);
const neo = pins.pinByCfg(DAL.CFG_PIN_NEOPIXEL);
const neonum = control.getConfigValue(DAL.CFG_NUM_NEOPIXELS, 0);
const mosi = pins.pinByCfg(DAL.CFG_PIN_MOSI);
const sck = pins.pinByCfg(DAL.CFG_PIN_SCK);
_defaultStrip = new NeoPixelStrip();
if (data && clk && dsnum > 0) {
_defaultStrip._mode = NeoPixelMode.APA102;
_defaultStrip._dataPin = data;
_defaultStrip._clkPin = clk;
_defaultStrip._length = dsnum;
} else if(neo && neonum > 0) {
_defaultStrip._mode = NeoPixelMode.RGB;
_defaultStrip._dataPin = neo;
_defaultStrip._length = neonum;
} else { // mount strip on SPI
_defaultStrip._mode = NeoPixelMode.RGB;
_defaultStrip._dataPin = mosi;
_defaultStrip._clkPin = sck;
_defaultStrip._length = 30;
}
return _defaultStrip;
}
}