From d683f980195fec994b07193006495499adc7f795 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 27 Sep 2019 02:59:49 -0500 Subject: [PATCH] Return buffer in duration.toString --- Marlin/src/gcode/stats/M31.cpp | 4 ++-- Marlin/src/lcd/extensible_ui/ui_api.cpp | 4 ++-- Marlin/src/lcd/menu/menu_info.cpp | 21 +++++---------------- Marlin/src/libs/duration_t.h | 3 ++- Marlin/src/module/printcounter.cpp | 4 +--- 5 files changed, 12 insertions(+), 24 deletions(-) diff --git a/Marlin/src/gcode/stats/M31.cpp b/Marlin/src/gcode/stats/M31.cpp index 39c922071c..fdad76e99a 100644 --- a/Marlin/src/gcode/stats/M31.cpp +++ b/Marlin/src/gcode/stats/M31.cpp @@ -31,8 +31,8 @@ */ void GcodeSuite::M31() { char buffer[21]; - duration_t elapsed = print_job_timer.duration(); - elapsed.toString(buffer); + duration_t(print_job_timer.duration()).toString(buffer); + ui.set_status(buffer); SERIAL_ECHO_START(); diff --git a/Marlin/src/lcd/extensible_ui/ui_api.cpp b/Marlin/src/lcd/extensible_ui/ui_api.cpp index 0b80def5c9..5035e0cebd 100644 --- a/Marlin/src/lcd/extensible_ui/ui_api.cpp +++ b/Marlin/src/lcd/extensible_ui/ui_api.cpp @@ -842,8 +842,8 @@ namespace ExtUI { #if ENABLED(PRINTCOUNTER) char* getTotalPrints_str(char buffer[21]) { strcpy(buffer,i16tostr3left(print_job_timer.getStats().totalPrints)); return buffer; } char* getFinishedPrints_str(char buffer[21]) { strcpy(buffer,i16tostr3left(print_job_timer.getStats().finishedPrints)); return buffer; } - char* getTotalPrintTime_str(char buffer[21]) { duration_t(print_job_timer.getStats().printTime).toString(buffer); return buffer; } - char* getLongestPrint_str(char buffer[21]) { duration_t(print_job_timer.getStats().longestPrint).toString(buffer); return buffer; } + char* getTotalPrintTime_str(char buffer[21]) { return duration_t(print_job_timer.getStats().printTime).toString(buffer); } + char* getLongestPrint_str(char buffer[21]) { return duration_t(print_job_timer.getStats().longestPrint).toString(buffer); } char* getFilamentUsed_str(char buffer[21]) { printStatistics stats = print_job_timer.getStats(); sprintf_P(buffer, PSTR("%ld.%im"), long(stats.filamentUsed / 1000), int16_t(stats.filamentUsed / 100) % 10); diff --git a/Marlin/src/lcd/menu/menu_info.cpp b/Marlin/src/lcd/menu/menu_info.cpp index 86e86dbdee..acc780f296 100644 --- a/Marlin/src/lcd/menu/menu_info.cpp +++ b/Marlin/src/lcd/menu/menu_info.cpp @@ -59,40 +59,29 @@ STATIC_PAIR(MSG_INFO_PRINT_COUNT, i16tostr3left(stats.totalPrints), false); // Print Count: 999 STATIC_PAIR(MSG_INFO_COMPLETED_PRINTS, i16tostr3left(stats.finishedPrints), false); // Completed : 666 - duration_t elapsed = stats.printTime; - elapsed.toString(buffer); - STATIC_PAIR_P(MSG_INFO_PRINT_TIME, "", false); // Total print Time: - STATIC_ITEM("> ", false, false, buffer); // > 99y 364d 23h 59m 59s + STATIC_ITEM("> ", false, false, duration_t(stats.printTime).toString(buffer)); // > 99y 364d 23h 59m 59s STATIC_PAIR_P(MSG_INFO_PRINT_LONGEST, "", false); // Longest job time: - elapsed = stats.longestPrint; - elapsed.toString(buffer); - STATIC_ITEM("> ", false, false, buffer); // > 99y 364d 23h 59m 59s + STATIC_ITEM("> ", false, false, duration_t(stats.longestPrint).toString(buffer)); // > 99y 364d 23h 59m 59s STATIC_PAIR_P(MSG_INFO_PRINT_FILAMENT, "", false); // Extruded total: sprintf_P(buffer, PSTR("%ld.%im"), long(stats.filamentUsed / 1000), int16_t(stats.filamentUsed / 100) % 10); STATIC_ITEM("> ", false, false, buffer); // > 125m #if SERVICE_INTERVAL_1 > 0 - elapsed = stats.nextService1; - elapsed.toString(buffer); STATIC_ITEM(SERVICE_NAME_1 MSG_SERVICE_IN, false, false); // Service X in: - STATIC_ITEM("> ", false, false, buffer); // > 7d 12h 11m 10s + STATIC_ITEM("> ", false, false, duration_t(stats.nextService1).toString(buffer)); // > 7d 12h 11m 10s #endif #if SERVICE_INTERVAL_2 > 0 - elapsed = stats.nextService2; - elapsed.toString(buffer); STATIC_ITEM(SERVICE_NAME_2 MSG_SERVICE_IN, false, false); - STATIC_ITEM("> ", false, false, buffer); + STATIC_ITEM("> ", false, false, duration_t(stats.nextService2).toString(buffer)); #endif #if SERVICE_INTERVAL_3 > 0 - elapsed = stats.nextService3; - elapsed.toString(buffer); STATIC_ITEM(SERVICE_NAME_3 MSG_SERVICE_IN, false, false); - STATIC_ITEM("> ", false, false, buffer); + STATIC_ITEM("> ", false, false, duration_t(stats.nextService3).toString(buffer)); #endif END_SCREEN(); diff --git a/Marlin/src/libs/duration_t.h b/Marlin/src/libs/duration_t.h index c376e5dae2..2015c17436 100644 --- a/Marlin/src/libs/duration_t.h +++ b/Marlin/src/libs/duration_t.h @@ -120,7 +120,7 @@ struct duration_t { * 59m 59s * 59s */ - void toString(char *buffer) const { + char* toString(char * const buffer) const { int y = this->year(), d = this->day() % 365, h = this->hour() % 24, @@ -132,6 +132,7 @@ struct duration_t { else if (h) sprintf_P(buffer, PSTR("%ih %im %is"), h, m, s); else if (m) sprintf_P(buffer, PSTR("%im %is"), m, s); else sprintf_P(buffer, PSTR("%is"), s); + return buffer; } /** diff --git a/Marlin/src/module/printcounter.cpp b/Marlin/src/module/printcounter.cpp index ba308142e4..cef233d9ac 100644 --- a/Marlin/src/module/printcounter.cpp +++ b/Marlin/src/module/printcounter.cpp @@ -183,11 +183,9 @@ void PrintCounter::saveStats() { #if HAS_SERVICE_INTERVALS inline void _service_when(char buffer[], const char * const msg, const uint32_t when) { - duration_t elapsed = when; - elapsed.toString(buffer); SERIAL_ECHOPGM(MSG_STATS); serialprintPGM(msg); - SERIAL_ECHOLNPAIR(" in ", buffer); + SERIAL_ECHOLNPAIR(" in ", duration_t(when).toString(buffer)); } #endif