some more fixes

This commit is contained in:
Daniel Sommer 2022-02-24 15:24:08 +01:00
parent 9ae6acba36
commit 37bd68e9de

View file

@ -58,6 +58,9 @@ async function complex(config) {
}
await setLedAnimated(indices[index]);
await singleAnimation(JSON.parse(JSON.stringify(config)), indices[index]);
if (config.options.index === LEDS_ALL) {
await clearLedState(indices[index]);
}
config.repetitions.done++;
}
return complex(config);
@ -67,7 +70,7 @@ async function complex(config) {
async function powerOff(config) {
config.timestamp = new Date().getTime();
let indices = getIndices(config);
await forceStop();
await forceStop(config.options.index);
for (let index = 0; index < indices.length; index++) {
await singleAnimation(JSON.parse(JSON.stringify(config)), indices[index]);
logger.info('led \'' + indices[index] + '\' powered off');
@ -124,7 +127,8 @@ async function stopLedsAccordingly(config) {
return stopLedAnimation(config.options.index);
}
async function forceStop() {
async function forceStop(index) {
if (index === LEDS_ALL) {
LEDS_STOP.push(LEDS_ALL);
return await new Promise((resolve, reject) => {
waitForAllAnimationsEnd(() => {
@ -132,6 +136,13 @@ async function forceStop() {
});
});
}
setLedStopping(index);
return await new Promise((resolve, reject) => {
waitForAnimationEnd(index, () => {
resolve();
});
});
}
function shouldLedFinish(config) {
if (isLedStopping(config.options.index)) {