24-11-2019, 22:57
Próbowałem ze wstawieniem warunków świtu i zmierzchu w warunek przy porównywaniu czasów włączenia i wyłączenia. Podwoiłem ilość warunków. Efekt był taki że jeżeli lampka świeciła się przykłądowo od godziny 10:00 do godziny 12:00 to w tym czasie mogłem za pomocą przycisków zmieniać stan lampki. Jeżeli czas przekroczył godzinę 12:00 to po tym czasie stan wysoki był cały czas i nie mogłem jej wyłączyć przyciskiem ani nie odbywało się to programowo o 12:00 jak powinno.
Wyglądało to tak:
//warunki czasowe włączenia i wyłączenia lampki
if (tOn < tOff) {
if (currentTimeSec >= tOn && currentTimeSec < tOff && swit == true) {
state = true;
}
}
if (tOn > tOff) {
if (currentTimeSec >= tOn && currentTimeSec <= 86399 && swit == true) {
state = true;
}
if (currentTimeSec >= 0 && currentTimeSec < tOff && swit == true) {
state = true;
}
}
if (tOn < tOff) {
if (currentTimeSec >= tOn && currentTimeSec < tOff && zmierzch == true) {
state = false;
}
}
if (tOn > tOff) {
if (currentTimeSec >= tOn && currentTimeSec <= 86399 && zmierzch == true) {
state = false;
}
if (currentTimeSec >= 0 && currentTimeSec < tOff && zmierzch== true) {
state = false;
}
}
Wyglądało to tak:
//warunki czasowe włączenia i wyłączenia lampki
if (tOn < tOff) {
if (currentTimeSec >= tOn && currentTimeSec < tOff && swit == true) {
state = true;
}
}
if (tOn > tOff) {
if (currentTimeSec >= tOn && currentTimeSec <= 86399 && swit == true) {
state = true;
}
if (currentTimeSec >= 0 && currentTimeSec < tOff && swit == true) {
state = true;
}
}
if (tOn < tOff) {
if (currentTimeSec >= tOn && currentTimeSec < tOff && zmierzch == true) {
state = false;
}
}
if (tOn > tOff) {
if (currentTimeSec >= tOn && currentTimeSec <= 86399 && zmierzch == true) {
state = false;
}
if (currentTimeSec >= 0 && currentTimeSec < tOff && zmierzch== true) {
state = false;
}
}