|
@@ -257,6 +257,11 @@ static void lcd_connect_printer();
|
|
|
void lcd_finishstatus();
|
|
|
|
|
|
static void lcd_sdcard_menu();
|
|
|
+static void lcd_sheet_menu();
|
|
|
+
|
|
|
+static void lcd_select_sheet_0_menu();
|
|
|
+static void lcd_select_sheet_1_menu();
|
|
|
+static void lcd_select_sheet_2_menu();
|
|
|
|
|
|
#ifdef DELTA_CALIBRATION_MENU
|
|
|
static void lcd_delta_calibrate_menu();
|
|
@@ -298,6 +303,8 @@ static void menu_action_sddirectory(const char* filename);
|
|
|
bool lcd_oldcardstatus;
|
|
|
#endif
|
|
|
|
|
|
+uint8_t selected_sheet = 0;
|
|
|
+
|
|
|
bool ignore_click = false;
|
|
|
bool wait_for_unclick;
|
|
|
|
|
@@ -3088,7 +3095,7 @@ static void lcd_babystep_z()
|
|
|
_md->status = 1;
|
|
|
check_babystep();
|
|
|
|
|
|
- if(!is_sheet_initialized()){
|
|
|
+ if(!is_sheet_initialized(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))){
|
|
|
_md->babystepMemZ = 0;
|
|
|
}
|
|
|
else{
|
|
@@ -4679,6 +4686,7 @@ void lcd_toshiba_flash_air_compatibility_toggle()
|
|
|
|
|
|
void lcd_v2_calibration()
|
|
|
{
|
|
|
+ eeprom_update_byte(&(EEPROM_Sheets_base->active_sheet), selected_sheet);
|
|
|
if (mmu_enabled)
|
|
|
{
|
|
|
const uint8_t filament = choose_menu_P(_i("Select PLA filament:"),_T(MSG_FILAMENT),_i("Cancel"));
|
|
@@ -5501,11 +5509,33 @@ void lcd_hw_setup_menu(void)
|
|
|
{
|
|
|
MENU_BEGIN();
|
|
|
MENU_ITEM_BACK_P(_T(bSettings?MSG_SETTINGS:MSG_BACK));
|
|
|
-if(!farm_mode)
|
|
|
+
|
|
|
+MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[0], lcd_select_sheet_0_menu);
|
|
|
+MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[1], lcd_select_sheet_1_menu);
|
|
|
+MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[2], lcd_select_sheet_2_menu);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+if(!farm_mode){
|
|
|
SETTINGS_NOZZLE;
|
|
|
-
|
|
|
-if(!farm_mode)
|
|
|
MENU_ITEM_SUBMENU_P(_i("Checks"), lcd_checking_menu);
|
|
|
+}
|
|
|
MENU_END();
|
|
|
}
|
|
|
|
|
@@ -6456,38 +6486,36 @@ void lcd_resume_print()
|
|
|
isPrintPaused = false;
|
|
|
}
|
|
|
|
|
|
-static void change_sheet(uint8_t sheet_num)
|
|
|
+static void change_sheet()
|
|
|
{
|
|
|
- eeprom_update_byte(&(EEPROM_Sheets_base->active_sheet), sheet_num);
|
|
|
- if(is_sheet_initialized())
|
|
|
- calibration_status_store(CALIBRATION_STATUS_CALIBRATED);
|
|
|
- else
|
|
|
- calibration_status_store(CALIBRATION_STATUS_LIVE_ADJUST);
|
|
|
-
|
|
|
+ eeprom_update_byte(&(EEPROM_Sheets_base->active_sheet), selected_sheet);
|
|
|
menu_back(3);
|
|
|
}
|
|
|
|
|
|
+static void change_sheet_from_menu(){
|
|
|
+ uint8_t next_sheet = selected_sheet+1;
|
|
|
+ if(next_sheet > 2) next_sheet = 0;
|
|
|
+ if(is_sheet_initialized(next_sheet)){
|
|
|
+ eeprom_update_byte(&(EEPROM_Sheets_base->active_sheet), next_sheet);
|
|
|
+ selected_sheet = next_sheet;
|
|
|
+ }
|
|
|
+ menu_back();
|
|
|
+}
|
|
|
+
|
|
|
static void lcd_select_sheet_0_menu()
|
|
|
{
|
|
|
- change_sheet(0);
|
|
|
+ selected_sheet = 0;
|
|
|
+ lcd_sheet_menu();
|
|
|
}
|
|
|
static void lcd_select_sheet_1_menu()
|
|
|
{
|
|
|
- change_sheet(1);
|
|
|
+ selected_sheet = 1;
|
|
|
+ lcd_sheet_menu();
|
|
|
}
|
|
|
static void lcd_select_sheet_2_menu()
|
|
|
{
|
|
|
- change_sheet(2);
|
|
|
-}
|
|
|
-
|
|
|
-static void lcd_select_sheet_menu()
|
|
|
-{
|
|
|
- MENU_BEGIN();
|
|
|
- MENU_ITEM_BACK_P(_T(MSG_BACK));
|
|
|
- MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[0], lcd_select_sheet_0_menu);
|
|
|
- MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[1], lcd_select_sheet_1_menu);
|
|
|
- MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[2], lcd_select_sheet_2_menu);
|
|
|
- MENU_END();
|
|
|
+ selected_sheet = 2;
|
|
|
+ lcd_sheet_menu();
|
|
|
}
|
|
|
|
|
|
static void lcd_rename_sheet_menu()
|
|
@@ -6503,7 +6531,7 @@ static void lcd_rename_sheet_menu()
|
|
|
|
|
|
if (!menuData->initialized)
|
|
|
{
|
|
|
- eeprom_read_block(menuData->name, EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].name, sizeof(Sheet::name));
|
|
|
+ eeprom_read_block(menuData->name, EEPROM_Sheets_base->s[selected_sheet].name, sizeof(Sheet::name));
|
|
|
lcd_encoder = menuData->name[0];
|
|
|
menuData->initialized = true;
|
|
|
}
|
|
@@ -6527,20 +6555,46 @@ static void lcd_rename_sheet_menu()
|
|
|
else
|
|
|
{
|
|
|
eeprom_update_block(menuData->name,
|
|
|
- EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].name,
|
|
|
+ EEPROM_Sheets_base->s[selected_sheet].name,
|
|
|
sizeof(Sheet::name));
|
|
|
menu_back();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static void lcd_reset_sheet()
|
|
|
+{
|
|
|
+ struct MenuData
|
|
|
+ {
|
|
|
+ bool initialized;
|
|
|
+ uint8_t selected;
|
|
|
+ char name[sizeof(Sheet::name)];
|
|
|
+ };
|
|
|
+ static_assert(sizeof(menu_data)>= sizeof(MenuData),"MenuData doesn't fit into menu_data");
|
|
|
+ MenuData* menuData = (MenuData*)&(menu_data[0]);
|
|
|
+ eeprom_read_block(menuData->name, EEPROM_Sheets_base->s[selected_sheet].name, sizeof(Sheet::name));
|
|
|
+
|
|
|
+ menuData->initialized = false;
|
|
|
+ strcpy_P(menuData->name, (char *)pgm_read_word(&(defaultSheetNames[selected_sheet])));
|
|
|
+
|
|
|
+
|
|
|
+ eeprom_update_word(reinterpret_cast<uint16_t *>(&(EEPROM_Sheets_base->s[selected_sheet].z_offset)),0xffff);
|
|
|
+ eeprom_update_block(menuData->name,EEPROM_Sheets_base->s[selected_sheet].name,sizeof(Sheet::name));
|
|
|
+ menu_back(2);
|
|
|
+}
|
|
|
+
|
|
|
static void lcd_sheet_menu()
|
|
|
{
|
|
|
MENU_BEGIN();
|
|
|
- MENU_ITEM_BACK_P(_T(MSG_MAIN));
|
|
|
- MENU_ITEM_SUBMENU_P(_i("Select"), lcd_select_sheet_menu);
|
|
|
- MENU_ITEM_SUBMENU_P(_i("Rename"), lcd_rename_sheet_menu);
|
|
|
+ MENU_ITEM_BACK_P(_T(MSG_HW_SETUP));
|
|
|
+
|
|
|
+ if(is_sheet_initialized(selected_sheet)){
|
|
|
+ MENU_ITEM_SUBMENU_P(_i("Select"), change_sheet);
|
|
|
+ }
|
|
|
+
|
|
|
MENU_ITEM_SUBMENU_P(_T(MSG_V2_CALIBRATION), lcd_v2_calibration);
|
|
|
+ MENU_ITEM_SUBMENU_P(_i("Rename"), lcd_rename_sheet_menu);
|
|
|
+ MENU_ITEM_SUBMENU_P(_i("Reset"), lcd_reset_sheet);
|
|
|
|
|
|
MENU_END();
|
|
|
}
|
|
@@ -6680,7 +6734,10 @@ static void lcd_main_menu()
|
|
|
|
|
|
}
|
|
|
|
|
|
- if(!isPrintPaused)MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))], lcd_sheet_menu);
|
|
|
+ if(!isPrintPaused && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal))
|
|
|
+ {
|
|
|
+ MENU_ITEM_SUBMENU_SELECT_SHEET_E(EEPROM_Sheets_base->s[selected_sheet], change_sheet_from_menu);
|
|
|
+ }
|
|
|
|
|
|
if (!is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal))
|
|
|
{
|