UNPKG

ws2801-alexa

Version:

An alexa connector for the WS2801-Pi module.

46 lines (31 loc) 1.25 kB
import WS2801Controller, {LedStrip} from 'ws2801-pi'; import {defaultConfig} from './config/config'; import {Config, RgbColor} from './types/index'; export class LedController { private ledController: WS2801Controller; private lastLedStripState: LedStrip; constructor(ledController?: WS2801Controller, config?: Config) { config = config ? config : defaultConfig; this.ledController = ledController ? ledController : new WS2801Controller(config.ledAmount); this.setLastLedStripState(); } public async on(): Promise<void> { for (let ledIndex: number = 0; ledIndex < this.lastLedStripState.length; ledIndex++) { this.ledController.setLed(ledIndex, this.lastLedStripState[ledIndex]); } await this.ledController.show(); } public async off(): Promise<void> { this.setLastLedStripState(); await this.ledController.clearLeds().show(); } public async setBrightness(brightness: number): Promise<void> { await this.ledController.setBrightness(brightness).show(); } public async setColor(color: RgbColor): Promise<void> { await this.ledController.fillLeds(color).show(); } private setLastLedStripState(): void { this.lastLedStripState = this.ledController.getLedStrip(); } }