|
@@ -27,9 +27,7 @@
|
27
|
27
|
#include "../../module/motion.h"
|
28
|
28
|
#include "../../module/planner.h"
|
29
|
29
|
#include "../../module/probe.h"
|
30
|
|
-#include "../../module/printcounter.h"
|
31
|
30
|
#include "../../module/temperature.h"
|
32
|
|
-#include "../../sd/cardreader.h"
|
33
|
31
|
#include "../../libs/duration_t.h"
|
34
|
32
|
|
35
|
33
|
#if DO_SWITCH_EXTRUDER || ENABLED(SWITCHING_NOZZLE) || ENABLED(PARKING_EXTRUDER)
|
|
@@ -37,6 +35,7 @@
|
37
|
35
|
#endif
|
38
|
36
|
|
39
|
37
|
#if ENABLED(SDSUPPORT)
|
|
38
|
+ #include "../../sd/cardreader.h"
|
40
|
39
|
#include "../../feature/emergency_parser.h"
|
41
|
40
|
|
42
|
41
|
bool abort_sd_printing; // =false
|
|
@@ -44,6 +43,11 @@
|
44
|
43
|
constexpr bool abort_sd_printing = false;
|
45
|
44
|
#endif
|
46
|
45
|
|
|
46
|
+#if ENABLED(PRINTCOUNTER)
|
|
47
|
+ #include "../../core/utility.h"
|
|
48
|
+ #include "../../module/printcounter.h"
|
|
49
|
+#endif
|
|
50
|
+
|
47
|
51
|
#include "ui_api.h"
|
48
|
52
|
|
49
|
53
|
#if ENABLED(BACKLASH_GCODE)
|
|
@@ -272,16 +276,16 @@ namespace UI {
|
272
|
276
|
}
|
273
|
277
|
#endif
|
274
|
278
|
|
275
|
|
- float getMinFeedrate_mm_s() { return planner.settings.min_feedrate_mm_s; }
|
276
|
|
- float getMinTravelFeedrate_mm_s() { return planner.settings.min_travel_feedrate_mm_s; }
|
277
|
|
- float getPrintingAcceleration_mm_s2() { return planner.settings.acceleration; }
|
278
|
|
- float getRetractAcceleration_mm_s2() { return planner.settings.retract_acceleration; }
|
279
|
|
- float getTravelAcceleration_mm_s2() { return planner.settings.travel_acceleration; }
|
280
|
|
- void setMinFeedrate_mm_s(const float fr) { planner.settings.min_feedrate_mm_s = fr; }
|
281
|
|
- void setMinTravelFeedrate_mm_s(const float fr) { planner.settings.min_travel_feedrate_mm_s = fr; }
|
282
|
|
- void setPrintingAcceleration_mm_per_s2(const float acc) { planner.settings.acceleration = acc; }
|
283
|
|
- void setRetractAcceleration_mm_s2(const float acc) { planner.settings.retract_acceleration = acc; }
|
284
|
|
- void setTravelAcceleration_mm_s2(const float acc) { planner.settings.travel_acceleration = acc; }
|
|
279
|
+ float getMinFeedrate_mm_s() { return planner.settings.min_feedrate_mm_s; }
|
|
280
|
+ float getMinTravelFeedrate_mm_s() { return planner.settings.min_travel_feedrate_mm_s; }
|
|
281
|
+ float getPrintingAcceleration_mm_s2() { return planner.settings.acceleration; }
|
|
282
|
+ float getRetractAcceleration_mm_s2() { return planner.settings.retract_acceleration; }
|
|
283
|
+ float getTravelAcceleration_mm_s2() { return planner.settings.travel_acceleration; }
|
|
284
|
+ void setMinFeedrate_mm_s(const float fr) { planner.settings.min_feedrate_mm_s = fr; }
|
|
285
|
+ void setMinTravelFeedrate_mm_s(const float fr) { planner.settings.min_travel_feedrate_mm_s = fr; }
|
|
286
|
+ void setPrintingAcceleration_mm_s2(const float acc) { planner.settings.acceleration = acc; }
|
|
287
|
+ void setRetractAcceleration_mm_s2(const float acc) { planner.settings.retract_acceleration = acc; }
|
|
288
|
+ void setTravelAcceleration_mm_s2(const float acc) { planner.settings.travel_acceleration = acc; }
|
285
|
289
|
|
286
|
290
|
#if ENABLED(BABYSTEP_ZPROBE_OFFSET)
|
287
|
291
|
float getZOffset_mm() {
|
|
@@ -364,6 +368,18 @@ namespace UI {
|
364
|
368
|
return elapsed.value;
|
365
|
369
|
}
|
366
|
370
|
|
|
371
|
+ #if ENABLED(PRINTCOUNTER)
|
|
372
|
+ char* getTotalPrints_str(char buffer[21]) { strcpy(buffer,itostr3left(print_job_timer.getStats().totalPrints)); return buffer; }
|
|
373
|
+ char* getFinishedPrints_str(char buffer[21]) { strcpy(buffer,itostr3left(print_job_timer.getStats().finishedPrints)); return buffer; }
|
|
374
|
+ char* getTotalPrintTime_str(char buffer[21]) { duration_t(print_job_timer.getStats().printTime).toString(buffer); return buffer; }
|
|
375
|
+ char* getLongestPrint_str(char buffer[21]) { duration_t(print_job_timer.getStats().printTime).toString(buffer); return buffer; }
|
|
376
|
+ char* getFilamentUsed_str(char buffer[21]) {
|
|
377
|
+ printStatistics stats = print_job_timer.getStats();
|
|
378
|
+ sprintf_P(buffer, PSTR("%ld.%im"), long(stats.filamentUsed / 1000), int16_t(stats.filamentUsed / 100) % 10);
|
|
379
|
+ return buffer;
|
|
380
|
+ }
|
|
381
|
+ #endif
|
|
382
|
+
|
367
|
383
|
float getFeedRate_percent() {
|
368
|
384
|
return feedrate_percentage;
|
369
|
385
|
}
|
|
@@ -564,7 +580,7 @@ void lcd_init() {
|
564
|
580
|
UI::onStartup();
|
565
|
581
|
}
|
566
|
582
|
|
567
|
|
-void lcd_update() {
|
|
583
|
+void lcd_update() {
|
568
|
584
|
#if ENABLED(SDSUPPORT)
|
569
|
585
|
static bool last_sd_status;
|
570
|
586
|
const bool sd_status = IS_SD_INSERTED;
|
|
@@ -585,7 +601,7 @@ void lcd_update()
|
585
|
601
|
}
|
586
|
602
|
}
|
587
|
603
|
#endif // SDSUPPORT
|
588
|
|
- UI::onUpdate();
|
|
604
|
+ UI::onIdle();
|
589
|
605
|
}
|
590
|
606
|
|
591
|
607
|
bool lcd_hasstatus() { return true; }
|
|
@@ -594,8 +610,25 @@ void lcd_reset_alert_level()
|
594
|
610
|
void lcd_refresh() {}
|
595
|
611
|
void lcd_setstatus(const char * const message, const bool persist /* = false */) { UI::onStatusChanged(message); }
|
596
|
612
|
void lcd_setstatusPGM(const char * const message, int8_t level /* = 0 */) { UI::onStatusChanged((progmem_str)message); }
|
597
|
|
-void lcd_reset_status() {}
|
598
|
613
|
void lcd_setalertstatusPGM(const char * const message) { lcd_setstatusPGM(message, 0); }
|
|
614
|
+void lcd_reset_status() {
|
|
615
|
+ static const char paused[] PROGMEM = MSG_PRINT_PAUSED;
|
|
616
|
+ static const char printing[] PROGMEM = MSG_PRINTING;
|
|
617
|
+ static const char welcome[] PROGMEM = WELCOME_MSG;
|
|
618
|
+ PGM_P msg;
|
|
619
|
+ if (print_job_timer.isPaused())
|
|
620
|
+ msg = paused;
|
|
621
|
+ #if ENABLED(SDSUPPORT)
|
|
622
|
+ else if (card.sdprinting)
|
|
623
|
+ return lcd_setstatus(card.longest_filename(), true);
|
|
624
|
+ #endif
|
|
625
|
+ else if (print_job_timer.isRunning())
|
|
626
|
+ msg = printing;
|
|
627
|
+ else
|
|
628
|
+ msg = welcome;
|
|
629
|
+
|
|
630
|
+ lcd_setstatusPGM(msg, -1);
|
|
631
|
+}
|
599
|
632
|
void lcd_status_printf_P(const uint8_t level, const char * const fmt, ...) {
|
600
|
633
|
char buff[64];
|
601
|
634
|
va_list args;
|