UNPKG

pxt-common-packages

Version:
41 lines (38 loc) 1.52 kB
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; } }