Use stop_and_save_print_to_ram() and restore_print_from_ram_and_continue() pair to pause print from menu. Move declaration of those functions to marlin.h. Move declaration of FSensorStateMenu to ultralcd.h.
Known limitations: Filament is not retracted, extruder is not lifted in Z and moved to rear left corner in XY. Nozzle heating is not turned off nor restored. Unused code is not removed.
This commit is contained in:
parent
e5c0e26601
commit
af08e16426
@ -419,6 +419,9 @@ extern void print_world_coordinates();
|
||||
extern void print_physical_coordinates();
|
||||
extern void print_mesh_bed_leveling_table();
|
||||
|
||||
extern void stop_and_save_print_to_ram(float z_move, float e_move);
|
||||
extern void restore_print_from_ram_and_continue(float e_move);
|
||||
|
||||
|
||||
//estimated time to end of the print
|
||||
extern uint16_t print_time_remaining();
|
||||
|
@ -649,9 +649,6 @@ void servo_init()
|
||||
}
|
||||
|
||||
|
||||
void stop_and_save_print_to_ram(float z_move, float e_move);
|
||||
void restore_print_from_ram_and_continue(float e_move);
|
||||
|
||||
bool fans_check_enabled = true;
|
||||
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include "planner.h"
|
||||
#include "fastio.h"
|
||||
#include "cmdqueue.h"
|
||||
#include "ultralcd.h"
|
||||
|
||||
//Basic params
|
||||
#define FSENSOR_CHUNK_LEN 0.64F //filament sensor chunk length 0.64mm
|
||||
@ -27,10 +28,6 @@ const char ERRMSG_PAT9125_NOT_RESP[] PROGMEM = "PAT9125 not responding (%d)!\n";
|
||||
#define FSENSOR_INT_PIN 63 //filament sensor interrupt pin PK1
|
||||
#define FSENSOR_INT_PIN_MSK 0x02 //filament sensor interrupt pin mask (bit1)
|
||||
|
||||
extern void stop_and_save_print_to_ram(float z_move, float e_move);
|
||||
extern void restore_print_from_ram_and_continue(float e_move);
|
||||
extern int8_t FSensorStateMenu;
|
||||
|
||||
void fsensor_stop_and_save_print(void)
|
||||
{
|
||||
printf_P(PSTR("fsensor_stop_and_save_print\n"));
|
||||
|
@ -5520,6 +5520,15 @@ static void lcd_test_menu()
|
||||
}
|
||||
#endif //LCD_TEST
|
||||
|
||||
static void pause_print()
|
||||
{
|
||||
stop_and_save_print_to_ram(0.0,0.0);
|
||||
}
|
||||
static void resume_print()
|
||||
{
|
||||
restore_print_from_ram_and_continue(0.0);
|
||||
}
|
||||
|
||||
static void lcd_main_menu()
|
||||
{
|
||||
|
||||
@ -5613,11 +5622,11 @@ static void lcd_main_menu()
|
||||
if (mesh_bed_leveling_flag == false && homing_flag == false) {
|
||||
if (card.sdprinting)
|
||||
{
|
||||
MENU_ITEM_FUNCTION_P(_i("Pause print"), lcd_sdcard_pause);////MSG_PAUSE_PRINT c=0 r=0
|
||||
MENU_ITEM_FUNCTION_P(_i("Pause print"), pause_print);////MSG_PAUSE_PRINT c=0 r=0
|
||||
}
|
||||
else
|
||||
{
|
||||
MENU_ITEM_FUNCTION_P(_i("Resume print"), lcd_sdcard_resume);////MSG_RESUME_PRINT c=0 r=0
|
||||
MENU_ITEM_FUNCTION_P(_i("Resume print"), resume_print);////MSG_RESUME_PRINT c=0 r=0
|
||||
}
|
||||
MENU_ITEM_SUBMENU_P(_T(MSG_STOP_PRINT), lcd_sdcard_stop);
|
||||
}
|
||||
|
@ -82,6 +82,7 @@ extern void lcd_diag_show_end_stops();
|
||||
#define LCD_COMMAND_V2_CAL 8
|
||||
|
||||
extern int lcd_commands_type;
|
||||
extern int8_t FSensorStateMenu;
|
||||
|
||||
#define CUSTOM_MSG_TYPE_STATUS 0 // status message from lcd_status_message variable
|
||||
#define CUSTOM_MSG_TYPE_MESHBL 1 // Mesh bed leveling in progress
|
||||
|
Loading…
Reference in New Issue
Block a user