UNPKG

ws2801-pi

Version:

WS2801-Pi is a module for controlling WS2801 LED strips with a Raspberry Pi via SPI.

35 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateLedStrip = void 0; function validateLedStrip(amountOfLeds, ledStrip) { if (amountOfLeds !== ledStrip.length) { throw new Error(`The led strip consists of ${amountOfLeds} leds, but led colors that should be set consists of ${ledStrip.length} leds.`); } const invalidLedIndexes = []; for (let ledIndex = 0; ledIndex < ledStrip.length; ledIndex++) { const ledColor = ledStrip[ledIndex]; if (ledColor === undefined) { invalidLedIndexes.push(ledIndex); continue; } if (ledColor.red == undefined || typeof ledColor.red !== 'number' || ledColor.red < 0 || ledColor.red > 255) { invalidLedIndexes.push(ledIndex); } if (ledColor.green == undefined || typeof ledColor.green !== 'number' || ledColor.green < 0 || ledColor.green > 255) { invalidLedIndexes.push(ledIndex); } if (ledColor.blue == undefined || typeof ledColor.blue !== 'number' || ledColor.blue < 0 || ledColor.blue > 255) { invalidLedIndexes.push(ledIndex); } } if (invalidLedIndexes.length !== 0) { let errorMessage = `Some led colors of the led strip are invalid. The following leds are invalid:\n`; for (const invalidLedIndex of invalidLedIndexes) { errorMessage += `${invalidLedIndex}: ${JSON.stringify(ledStrip[invalidLedIndex])}, `; } errorMessage = errorMessage.substring(0, errorMessage.length - 2); throw new Error(errorMessage); } } exports.validateLedStrip = validateLedStrip; //# sourceMappingURL=led-strip-validation.js.map