Bladeren bron

G4 shows status message only if no message is set already

- Address issue raised in #1961
Scott Lahteine 10 jaren geleden
bovenliggende
commit
ce142afdda
3 gewijzigde bestanden met toevoegingen van 6 en 2 verwijderingen
  1. 3
    2
      Marlin/Marlin_main.cpp
  2. 2
    0
      Marlin/ultralcd.cpp
  3. 1
    0
      Marlin/ultralcd.h

+ 3
- 2
Marlin/Marlin_main.cpp Bestand weergeven

@@ -1740,14 +1740,15 @@ inline void gcode_G2_G3(bool clockwise) {
1740 1740
 inline void gcode_G4() {
1741 1741
   millis_t codenum = 0;
1742 1742
 
1743
-  LCD_MESSAGEPGM(MSG_DWELL);
1744
-
1745 1743
   if (code_seen('P')) codenum = code_value_long(); // milliseconds to wait
1746 1744
   if (code_seen('S')) codenum = code_value_long() * 1000; // seconds to wait
1747 1745
 
1748 1746
   st_synchronize();
1749 1747
   refresh_cmd_timeout();
1750 1748
   codenum += previous_cmd_ms;  // keep track of when we started waiting
1749
+
1750
+  if (!lcd_hasstatus()) LCD_MESSAGEPGM(MSG_DWELL);
1751
+
1751 1752
   while (millis() < codenum) {
1752 1753
     manage_heater();
1753 1754
     manage_inactivity();

+ 2
- 0
Marlin/ultralcd.cpp Bestand weergeven

@@ -1418,6 +1418,8 @@ void set_utf_strlen(char *s, uint8_t n) {
1418 1418
   s[i] = 0;
1419 1419
 }
1420 1420
 
1421
+bool lcd_hasstatus() { return (lcd_status_message[0] != '\0'); }
1422
+
1421 1423
 void lcd_setstatus(const char* message, bool persist) {
1422 1424
   if (lcd_status_message_level > 0) return;
1423 1425
   strncpy(lcd_status_message, message, 3*LCD_WIDTH);

+ 1
- 0
Marlin/ultralcd.h Bestand weergeven

@@ -8,6 +8,7 @@
8 8
   int lcd_strlen_P(const char *s);
9 9
   void lcd_update();
10 10
   void lcd_init();
11
+  bool lcd_hasstatus();
11 12
   void lcd_setstatus(const char* message, const bool persist=false);
12 13
   void lcd_setstatuspgm(const char* message, const uint8_t level=0);
13 14
   void lcd_setalertstatuspgm(const char* message);

Laden…
Annuleren
Opslaan