Return buffer in duration.toString

This commit is contained in:
Scott Lahteine 2019-09-27 02:59:49 -05:00
parent dc65788511
commit d683f98019
5 changed files with 12 additions and 24 deletions

View File

@ -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();

View File

@ -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);

View File

@ -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();

View File

@ -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;
}
/**

View File

@ -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