#include <iostream>
#include <iomanip>
bool Ruhezeit {false}; // Speicher - Ist gerade Ruhezeit?
void printTable(std::ostream& os, unsigned Cnt, int RzVon, int RzBis) {
std::cout << "Test Nr: " << std::setw(5) << std::setfill('0') << Cnt << " -> Ruhezezeit von: " << RzVon
<< ":00:00 bis " << (RzBis == 0 ? 23 : RzBis - 1) << ":59:59 Uhr\n";
std::cout << "Akt. Stunde: ";
for (size_t I = 0; I < 24; ++I) { std::cout << " " << std::setw(2) << std::setfill('0') << I; }
std::cout << '\n' << std::setw(87) << std::setfill('-') << '\n';
std::cout << "Ruhezeit: ";
}
void setup() {
Serial.begin(115200); // Serielle Ausgabe an
randomSeed(analogRead(GPIO_NUM_32));
}
void loop() {
static unsigned Counter;
int Ruhezeitvon = random(0, 24);
int Ruhezeitbis = random(0, 24);
while (Ruhezeitvon == Ruhezeitbis) { Ruhezeitbis = random(0, 24); }
Counter++;
printTable(std::cout, Counter, Ruhezeitvon, Ruhezeitbis );
for (size_t Stunde = 0; Stunde < 24; ++Stunde) { // 24 Stundentag
// Testbedingung für Ruhezeit (true/false) start
Ruhezeit = (Ruhezeitbis < Ruhezeitvon) ? !(Stunde < Ruhezeitvon && Stunde >= Ruhezeitbis)
: (Stunde >= Ruhezeitvon && Stunde < Ruhezeitbis);
// Testbedingung Ende
std::cout << " " << Ruhezeit;
}
std::cout << "\n\nNächster Test -> drücke die Entertaste" << std::endl;
while (Serial.available() == 0) { ; }
while (Serial.available() > 0) { Serial.read(); } // Clear Buffer;
std::cout << '\n' << std::endl;
}