-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinfo.js
49 lines (43 loc) · 1.08 KB
/
info.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
let greenLed, yellowLed, redLed;
const getLed = (color, invert, getName) => {
switch(color) {
case "green":
return (invert && getName) ? ["yellow", "red"] : (invert) ? [yellowLed, redLed] : greenLed;
break;
case "yellow":
return (invert && getName) ? ["green", "red"] : (invert) ? [greenLed, redLed] : yellowLed;
break;
case "red":
return (invert && getName) ? ["green", "yellow"] : (invert) ? [greenLed, yellowLed] : redLed;
break;
}
}
const setLed = (color, value) => {
switch(color) {
case "green":
greenLed = Boolean(value);
break;
case "yellow":
yellowLed = Boolean(value);
break;
case "red":
redLed = Boolean(value);
break;
}
};
const setLedOnOthersOff = (led) => {
setLed(led, true);
getLed(led, true, true).forEach(other => {
setLed(other, false);
});
}
const toggleLed = (led) => {
setLed(led, !getLed(led));
};
const resetLeds = () => {
greenLed = true;
yellowLed = false;
redLed = false;
};
resetLeds();
export {getLed, toggleLed, resetLeds, setLedOnOthersOff, setLed};