📺 ExtUI pause state response (#22164)
This commit is contained in:
		
				
					committed by
					
						
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							78c2eb6876
						
					
				
				
					commit
					be13220e32
				
			@@ -102,6 +102,10 @@
 | 
			
		||||
  #include "../../feature/host_actions.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if M600_PURGE_MORE_RESUMABLE
 | 
			
		||||
  #include "../../feature/pause.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
namespace ExtUI {
 | 
			
		||||
  static struct {
 | 
			
		||||
    uint8_t printer_killed : 1;
 | 
			
		||||
@@ -381,7 +385,8 @@ namespace ExtUI {
 | 
			
		||||
    return !thermalManager.tooColdToExtrude(extruder - E0);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  GcodeSuite::MarlinBusyState getMachineBusyState() { return TERN0(HOST_KEEPALIVE_FEATURE, GcodeSuite::busy_state); }
 | 
			
		||||
  GcodeSuite::MarlinBusyState getHostKeepaliveState() { return TERN0(HOST_KEEPALIVE_FEATURE, gcode.busy_state); }
 | 
			
		||||
  bool getHostKeepaliveIsPaused() { return TERN0(HOST_KEEPALIVE_FEATURE, gcode.host_keepalive_is_paused()); }
 | 
			
		||||
 | 
			
		||||
  #if HAS_SOFTWARE_ENDSTOPS
 | 
			
		||||
    bool getSoftEndstopState() { return soft_endstop._enabled; }
 | 
			
		||||
@@ -1025,9 +1030,15 @@ namespace ExtUI {
 | 
			
		||||
    TERN_(HAS_FAN, thermalManager.zero_fan_speeds());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool awaitingUserConfirm() { return TERN0(HAS_RESUME_CONTINUE, wait_for_user); }
 | 
			
		||||
  bool awaitingUserConfirm() {
 | 
			
		||||
    return TERN0(HAS_RESUME_CONTINUE, wait_for_user) || getHostKeepaliveIsPaused();
 | 
			
		||||
  }
 | 
			
		||||
  void setUserConfirmed() { TERN_(HAS_RESUME_CONTINUE, wait_for_user = false); }
 | 
			
		||||
 | 
			
		||||
  #if M600_PURGE_MORE_RESUMABLE
 | 
			
		||||
    void setPauseMenuResponse(PauseMenuResponse response) { pause_menu_response = response; }
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  void printFile(const char *filename) {
 | 
			
		||||
    TERN(SDSUPPORT, card.openAndPrintFile(filename), UNUSED(filename));
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -45,6 +45,9 @@
 | 
			
		||||
#include "../../inc/MarlinConfig.h"
 | 
			
		||||
#include "../marlinui.h"
 | 
			
		||||
#include "../../gcode/gcode.h"
 | 
			
		||||
#if M600_PURGE_MORE_RESUMABLE
 | 
			
		||||
  #include "../../feature/pause.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
namespace ExtUI {
 | 
			
		||||
 | 
			
		||||
@@ -79,7 +82,8 @@ namespace ExtUI {
 | 
			
		||||
  void injectCommands(char * const);
 | 
			
		||||
  bool commandsInQueue();
 | 
			
		||||
 | 
			
		||||
  GcodeSuite::MarlinBusyState getMachineBusyState();
 | 
			
		||||
  GcodeSuite::MarlinBusyState getHostKeepaliveState();
 | 
			
		||||
  bool getHostKeepaliveIsPaused();
 | 
			
		||||
 | 
			
		||||
  bool isHeaterIdle(const heater_t);
 | 
			
		||||
  bool isHeaterIdle(const extruder_t);
 | 
			
		||||
@@ -220,14 +224,18 @@ namespace ExtUI {
 | 
			
		||||
  void setFeedrate_mm_s(const feedRate_t);
 | 
			
		||||
  void setMinFeedrate_mm_s(const feedRate_t);
 | 
			
		||||
  void setMinTravelFeedrate_mm_s(const feedRate_t);
 | 
			
		||||
  void setPrintingAcceleration_mm_s2(const_float_t );
 | 
			
		||||
  void setRetractAcceleration_mm_s2(const_float_t );
 | 
			
		||||
  void setTravelAcceleration_mm_s2(const_float_t );
 | 
			
		||||
  void setFeedrate_percent(const_float_t );
 | 
			
		||||
  void setPrintingAcceleration_mm_s2(const_float_t);
 | 
			
		||||
  void setRetractAcceleration_mm_s2(const_float_t);
 | 
			
		||||
  void setTravelAcceleration_mm_s2(const_float_t);
 | 
			
		||||
  void setFeedrate_percent(const_float_t);
 | 
			
		||||
  void setFlow_percent(const int16_t, const extruder_t);
 | 
			
		||||
  bool awaitingUserConfirm();
 | 
			
		||||
  void setUserConfirmed();
 | 
			
		||||
 | 
			
		||||
  #if M600_PURGE_MORE_RESUMABLE
 | 
			
		||||
    void setPauseMenuResponse(PauseMenuResponse);
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(LIN_ADVANCE)
 | 
			
		||||
    float getLinearAdvance_mm_mm_s(const extruder_t);
 | 
			
		||||
    void setLinearAdvance_mm_mm_s(const_float_t, const extruder_t);
 | 
			
		||||
@@ -235,7 +243,7 @@ namespace ExtUI {
 | 
			
		||||
 | 
			
		||||
  #if HAS_JUNCTION_DEVIATION
 | 
			
		||||
    float getJunctionDeviation_mm();
 | 
			
		||||
    void setJunctionDeviation_mm(const_float_t );
 | 
			
		||||
    void setJunctionDeviation_mm(const_float_t);
 | 
			
		||||
  #else
 | 
			
		||||
    float getAxisMaxJerk_mm_s(const axis_t);
 | 
			
		||||
    float getAxisMaxJerk_mm_s(const extruder_t);
 | 
			
		||||
@@ -262,7 +270,7 @@ namespace ExtUI {
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  float getZOffset_mm();
 | 
			
		||||
  void setZOffset_mm(const_float_t );
 | 
			
		||||
  void setZOffset_mm(const_float_t);
 | 
			
		||||
 | 
			
		||||
  #if HAS_BED_PROBE
 | 
			
		||||
    float getProbeOffset_mm(const axis_t);
 | 
			
		||||
@@ -274,11 +282,11 @@ namespace ExtUI {
 | 
			
		||||
    void setAxisBacklash_mm(const_float_t, const axis_t);
 | 
			
		||||
 | 
			
		||||
    float getBacklashCorrection_percent();
 | 
			
		||||
    void setBacklashCorrection_percent(const_float_t );
 | 
			
		||||
    void setBacklashCorrection_percent(const_float_t);
 | 
			
		||||
 | 
			
		||||
    #ifdef BACKLASH_SMOOTHING_MM
 | 
			
		||||
      float getBacklashSmoothing_mm();
 | 
			
		||||
      void setBacklashSmoothing_mm(const_float_t );
 | 
			
		||||
      void setBacklashSmoothing_mm(const_float_t);
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
@@ -290,7 +298,7 @@ namespace ExtUI {
 | 
			
		||||
 | 
			
		||||
    #if HAS_FILAMENT_RUNOUT_DISTANCE
 | 
			
		||||
      float getFilamentRunoutDistance_mm();
 | 
			
		||||
      void setFilamentRunoutDistance_mm(const_float_t );
 | 
			
		||||
      void setFilamentRunoutDistance_mm(const_float_t);
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
@@ -300,7 +308,7 @@ namespace ExtUI {
 | 
			
		||||
 | 
			
		||||
    #if DISABLED(CASE_LIGHT_NO_BRIGHTNESS)
 | 
			
		||||
      float getCaseLightBrightness_percent();
 | 
			
		||||
      void setCaseLightBrightness_percent(const_float_t );
 | 
			
		||||
      void setCaseLightBrightness_percent(const_float_t);
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
@@ -309,15 +317,15 @@ namespace ExtUI {
 | 
			
		||||
    float getPIDValues_Ki(const extruder_t);
 | 
			
		||||
    float getPIDValues_Kd(const extruder_t);
 | 
			
		||||
    void setPIDValues(const_float_t, const_float_t , const_float_t , extruder_t);
 | 
			
		||||
    void startPIDTune(const_float_t, extruder_t);
 | 
			
		||||
    void startPIDTune(const celsius_t, extruder_t);
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(PIDTEMPBED)
 | 
			
		||||
    float getBedPIDValues_Kp();
 | 
			
		||||
    float getBedPIDValues_Ki();
 | 
			
		||||
    float getBedPIDValues_Kd();
 | 
			
		||||
    void setBedPIDValues(const_float_t, const_float_t , const_float_t );
 | 
			
		||||
    void startBedPIDTune(const_float_t );
 | 
			
		||||
    void setBedPIDValues(const_float_t, const_float_t , const_float_t);
 | 
			
		||||
    void startBedPIDTune(const celsius_t);
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
 
 | 
			
		||||
@@ -1654,6 +1654,40 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP;
 | 
			
		||||
  }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if BOTH(EXTENSIBLE_UI, ADVANCED_PAUSE_FEATURE)
 | 
			
		||||
 | 
			
		||||
  void MarlinUI::pause_show_message(
 | 
			
		||||
    const PauseMessage message,
 | 
			
		||||
    const PauseMode mode/*=PAUSE_MODE_SAME*/,
 | 
			
		||||
    const uint8_t extruder/*=active_extruder*/
 | 
			
		||||
  ) {
 | 
			
		||||
    if (mode == PAUSE_MODE_SAME)
 | 
			
		||||
      return;
 | 
			
		||||
    pause_mode = mode;
 | 
			
		||||
    switch (message) {
 | 
			
		||||
      case PAUSE_MESSAGE_PARKING:  ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_PAUSE_PRINT_PARKING));
 | 
			
		||||
      case PAUSE_MESSAGE_CHANGING: ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_INIT));
 | 
			
		||||
      case PAUSE_MESSAGE_UNLOAD:   ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_UNLOAD));
 | 
			
		||||
      case PAUSE_MESSAGE_WAITING:  ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_ADVANCED_PAUSE_WAITING));
 | 
			
		||||
      case PAUSE_MESSAGE_INSERT:   ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_INSERT));
 | 
			
		||||
      case PAUSE_MESSAGE_LOAD:     ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_LOAD));
 | 
			
		||||
      case PAUSE_MESSAGE_PURGE:
 | 
			
		||||
        #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
 | 
			
		||||
          ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_CONT_PURGE));
 | 
			
		||||
        #else
 | 
			
		||||
          ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_PURGE));
 | 
			
		||||
        #endif
 | 
			
		||||
      case PAUSE_MESSAGE_RESUME:   ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_RESUME));
 | 
			
		||||
      case PAUSE_MESSAGE_HEAT:     ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_HEAT));
 | 
			
		||||
      case PAUSE_MESSAGE_HEATING:  ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_HEATING));
 | 
			
		||||
      case PAUSE_MESSAGE_OPTION:   ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_OPTION_HEADER));
 | 
			
		||||
      case PAUSE_MESSAGE_STATUS:
 | 
			
		||||
      default: break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ENABLED(EEPROM_SETTINGS)
 | 
			
		||||
 | 
			
		||||
  #if HAS_LCD_MENU
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@
 | 
			
		||||
  #include "../module/printcounter.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE)
 | 
			
		||||
#if ENABLED(ADVANCED_PAUSE_FEATURE) && EITHER(HAS_LCD_MENU, EXTENSIBLE_UI)
 | 
			
		||||
  #include "../feature/pause.h"
 | 
			
		||||
  #include "../module/motion.h" // for active_extruder
 | 
			
		||||
#endif
 | 
			
		||||
@@ -544,7 +544,7 @@ public:
 | 
			
		||||
    static inline bool use_click() { return false; }
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE)
 | 
			
		||||
  #if ENABLED(ADVANCED_PAUSE_FEATURE) && EITHER(HAS_LCD_MENU, EXTENSIBLE_UI)
 | 
			
		||||
    static void pause_show_message(const PauseMessage message, const PauseMode mode=PAUSE_MODE_SAME, const uint8_t extruder=active_extruder);
 | 
			
		||||
  #else
 | 
			
		||||
    static inline void _pause_show_message() {}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user