diff --git a/flipcontrol_esp32/include/image.h b/flipcontrol_esp32/include/image.h index 1bcdab0..e25d419 100644 --- a/flipcontrol_esp32/include/image.h +++ b/flipcontrol_esp32/include/image.h @@ -12,6 +12,13 @@ #define UPDATE_INTERVAL 5 //TODO: remove this +enum UpdateReturn { + wait, + finished, + nochange, + updating +}; + class Image { @@ -39,7 +46,7 @@ public: Image(); void init(); - bool updateByColumn(bool direction, bool clearFirst, bool optimizeClear, bool optimizeSet); + UpdateReturn updateByColumn(bool direction, bool clearFirst, bool optimizeClear, bool optimizeSet); uint8_t getW(); //returns Columns uint8_t getH(); //returns Rows diff --git a/flipcontrol_esp32/src/image.cpp b/flipcontrol_esp32/src/image.cpp index aad62aa..3767fd0 100644 --- a/flipcontrol_esp32/src/image.cpp +++ b/flipcontrol_esp32/src/image.cpp @@ -56,15 +56,15 @@ void Image::setBuffer_random(uint8_t randomness) } -bool Image::updateByColumn(bool direction, bool clearFirst, bool optimizeClear, bool optimizeSet) +UpdateReturn Image::updateByColumn(bool direction, bool clearFirst, bool optimizeClear, bool optimizeSet) { if (!flag_updating) { - return 1; //finished + return nochange; //finished } if (millis()-lastUpdateMillis=getW()) { //reached last column flag_updating=false; update_counter=0; - return 1; //finished + return finished; //finished } - return 0; //not finished + return updating; //not finished } diff --git a/flipcontrol_esp32/src/main.cpp b/flipcontrol_esp32/src/main.cpp index 39530bb..2bf3ea7 100644 --- a/flipcontrol_esp32/src/main.cpp +++ b/flipcontrol_esp32/src/main.cpp @@ -42,16 +42,14 @@ void loop() { } - static bool last_result; - bool result=flip.updateByColumn(0,0,0,0); //0=not finished, 1=finished - if (result && !last_result) //just finished + UpdateReturn result=flip.updateByColumn(0,0,0,0); //0=not finished, 1=finished + if (result == finished) //just finished { unsigned long duration=millis()-last_change; Serial.print("Last Change took "); Serial.print(duration); Serial.println(" ms"); Serial.print("Update max took "); Serial.print(flip.updateDuration); Serial.println(" ms"); flip.updateDuration=0; //reset } - last_result=result; /*