ws2801-pi
Version:
WS2801-Pi is a module for controlling WS2801 LED strips with a Raspberry Pi via SPI.
35 lines • 1.7 kB
JavaScript
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
;