From b5bb40474d3dbd73e0f6f67e4bc1d25349574159 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Wed, 19 Sep 2018 17:17:32 +0200 Subject: [PATCH 1/4] Fix print time overflow. --- Firmware/ultralcd.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index b78b4c97..fcfcd799 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2468,10 +2468,10 @@ void lcd_menu_statistics() { float _met = ((float)total_filament_used) / (100000.f); int _cm = (total_filament_used - (_met * 100000)) / 10; - int _t = (millis() - starttime) / 1000; + uint32_t _t = (millis() - starttime) / 1000; int _h = _t / 3600; - int _m = (_t - (_h * 3600)) / 60; - int _s = _t - ((_h * 3600) + (_m * 60)); + int _m = (_t - (_h * 3600ul)) / 60; + int _s = _t - ((_h * 3600ul) + (_m * 60)); //|01234567890123456789| //|Filament used: | //| 000m 00.000cm | From cce813107001ae238d8ed292ab08ef2d309656ed Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Wed, 19 Sep 2018 17:20:41 +0200 Subject: [PATCH 2/4] Add missing s for seconds of print time. --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index fcfcd799..c312a299 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2483,7 +2483,7 @@ void lcd_menu_statistics() "%S:" ESC_H(6,1) "%8.2fm \n" "%S :" - ESC_H(8,3) "%2dh %02dm %02d" + ESC_H(8,3) "%2dh %02dm %02ds" ), _i("Filament used"), _met, From b92b307ee8dcd6b26f6aebf5b8993090a1dc15f8 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Wed, 19 Sep 2018 17:21:45 +0200 Subject: [PATCH 3/4] Make variables constant. --- Firmware/ultralcd.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index c312a299..37f7bf59 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2466,18 +2466,18 @@ void lcd_menu_statistics() { if (IS_SD_PRINTING) { - float _met = ((float)total_filament_used) / (100000.f); - int _cm = (total_filament_used - (_met * 100000)) / 10; - uint32_t _t = (millis() - starttime) / 1000; - int _h = _t / 3600; - int _m = (_t - (_h * 3600ul)) / 60; - int _s = _t - ((_h * 3600ul) + (_m * 60)); //|01234567890123456789| //|Filament used: | //| 000m 00.000cm | //|Print time: | //| 00h 00m 00s | //---------------------- + const float _met = ((float)total_filament_used) / (100000.f); + const uint32_t _t = (millis() - starttime) / 1000ul; + const int _h = _t / 3600; + const int _m = (_t - (_h * 3600ul)) / 60ul; + const int _s = _t - ((_h * 3600ul) + (_m * 60ul)); + lcd_printf_P(_N( ESC_2J "%S:" From 2607a0c4ed4d0553dfe6cd0f807197b4ade5121f Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Wed, 19 Sep 2018 17:22:06 +0200 Subject: [PATCH 4/4] Update documentation. --- Firmware/ultralcd.cpp | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 37f7bf59..510114c9 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1,3 +1,5 @@ +//! @file + #include "temperature.h" #include "ultralcd.h" #include "fsensor.h" @@ -2462,16 +2464,33 @@ static void lcd_LoadFilament() } } +//! @brief Show filament used a print time +//! +//! If printing current print statistics are shown +//! +//! @code{.unparsed} +//! |01234567890123456789| +//! |Filament used: | +//! | 00.00m | +//! |Print time: | +//! | 00h 00m 00s | +//! ---------------------- +//! @endcode +//! +//! If not printing, total statistics are shown +//! +//! @code{.unparsed} +//! |01234567890123456789| +//! |Total filament : | +//! | 000.00 m | +//! |Total print time : | +//! | 00d :00h :00 m | +//! ---------------------- +//! @endcode void lcd_menu_statistics() { if (IS_SD_PRINTING) { -//|01234567890123456789| -//|Filament used: | -//| 000m 00.000cm | -//|Print time: | -//| 00h 00m 00s | -//---------------------- const float _met = ((float)total_filament_used) / (100000.f); const uint32_t _t = (millis() - starttime) / 1000ul; const int _h = _t / 3600; @@ -2504,12 +2523,7 @@ void lcd_menu_statistics() _days = _time / 1440; _hours = (_time - (_days * 1440)) / 60; _minutes = _time - ((_days * 1440) + (_hours * 60)); -//|01234567890123456789| -//|Total filament : | -//| 000.00 m | -//|Total print time : | -//| 00d :00h :00 m | -//---------------------- + lcd_printf_P(_N( ESC_2J "%S :"