|
@@ -1000,9 +1000,12 @@ void lcd_commands()
|
|
|
}
|
|
|
//if (lcd_commands_step == 1 && calibrated()) {
|
|
|
if (lcd_commands_step == 1 && temp_model_valid()) {
|
|
|
- enquecommand_P(PSTR("M500"));
|
|
|
lcd_commands_step = 0;
|
|
|
lcd_commands_type = LcdCommands::Idle;
|
|
|
+ enquecommand_P(PSTR("M500"));
|
|
|
+ if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 1) {
|
|
|
+ lcd_wizard(WizState::IsFil);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
#endif //TEMP_MODEL
|
|
@@ -3916,7 +3919,6 @@ void lcd_wizard(WizState state)
|
|
|
using S = WizState;
|
|
|
bool end = false;
|
|
|
uint8_t wizard_event;
|
|
|
- const char *msg = NULL;
|
|
|
// Make sure EEPROM_WIZARD_ACTIVE is true if entering using different entry point
|
|
|
// other than WizState::Run - it is useful for debugging wizard.
|
|
|
if (state != S::Run) eeprom_update_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1);
|
|
@@ -3924,7 +3926,7 @@ void lcd_wizard(WizState state)
|
|
|
FORCE_BL_ON_START;
|
|
|
|
|
|
while (!end) {
|
|
|
- printf_P(PSTR("Wizard state: %d\n"), state);
|
|
|
+ printf_P(PSTR("Wizard state: %d\n"), (uint8_t)state);
|
|
|
switch (state) {
|
|
|
case S::Run: //Run wizard?
|
|
|
|
|
@@ -3958,6 +3960,9 @@ void lcd_wizard(WizState state)
|
|
|
case CALIBRATION_STATUS_ASSEMBLED: state = S::Selftest; break; //run selftest
|
|
|
case CALIBRATION_STATUS_XYZ_CALIBRATION: state = S::Xyz; break; //run xyz cal.
|
|
|
case CALIBRATION_STATUS_Z_CALIBRATION: state = S::Z; break; //run z cal.
|
|
|
+#ifdef TEMP_MODEL
|
|
|
+ case CALIBRATION_STATUS_TEMP_MODEL_CALIBRATION: state = S::TempModel; break; //run temp model cal.
|
|
|
+#endif //TEMP_MODEL
|
|
|
case CALIBRATION_STATUS_LIVE_ADJUST: state = S::IsFil; break; //run live adjust
|
|
|
case CALIBRATION_STATUS_CALIBRATED: end = true; eeprom_update_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 0); break;
|
|
|
default: state = S::Selftest; break; //if calibration status is unknown, run wizard from the beginning
|
|
@@ -3975,8 +3980,14 @@ void lcd_wizard(WizState state)
|
|
|
case S::Xyz:
|
|
|
lcd_show_fullscreen_message_and_wait_P(_i("I will run xyz calibration now. It will take approx. 12 mins."));////MSG_WIZARD_XYZ_CAL c=20 r=8
|
|
|
wizard_event = gcode_M45(false, 0);
|
|
|
- if (wizard_event) state = S::IsFil;
|
|
|
- else end = true;
|
|
|
+ if (wizard_event) {
|
|
|
+#ifdef TEMP_MODEL
|
|
|
+ lcd_reset_alert_level();
|
|
|
+ state = S::TempModel;
|
|
|
+#else
|
|
|
+ state = S::IsFil;
|
|
|
+#endif //TEMP_MODEL
|
|
|
+ } else end = true;
|
|
|
break;
|
|
|
case S::Z:
|
|
|
lcd_show_fullscreen_message_and_wait_P(_i("Please remove shipping helpers first."));////MSG_REMOVE_SHIPPING_HELPERS c=20 r=3
|
|
@@ -4002,6 +4013,13 @@ void lcd_wizard(WizState state)
|
|
|
}
|
|
|
else end = true;
|
|
|
break;
|
|
|
+#ifdef TEMP_MODEL
|
|
|
+ case S::TempModel:
|
|
|
+ lcd_show_fullscreen_message_and_wait_P(_i("Temp model cal. takes approx. 12 mins."));////MSG_TM_CAL c=20 r=4
|
|
|
+ lcd_commands_type = LcdCommands::TempModel;
|
|
|
+ end = true; // Leave wizard temporarily for Temp model cal.
|
|
|
+ break;
|
|
|
+#endif //TEMP_MODEL
|
|
|
case S::IsFil:
|
|
|
//start to preheat nozzle and bed to save some time later
|
|
|
setTargetHotend(PLA_PREHEAT_HOTEND_TEMP, 0);
|
|
@@ -4062,7 +4080,8 @@ void lcd_wizard(WizState state)
|
|
|
|
|
|
FORCE_BL_ON_END;
|
|
|
|
|
|
- printf_P(_N("Wizard end state: %d\n"), state);
|
|
|
+ const char *msg = NULL;
|
|
|
+ printf_P(_N("Wizard end state: %d\n"), (uint8_t)state);
|
|
|
switch (state) { //final message
|
|
|
case S::Restore: //printer was already calibrated
|
|
|
msg = _T(MSG_WIZARD_DONE);
|
|
@@ -4072,21 +4091,25 @@ void lcd_wizard(WizState state)
|
|
|
case S::Z: //z cal.
|
|
|
msg = _T(MSG_WIZARD_CALIBRATION_FAILED);
|
|
|
break;
|
|
|
+#ifdef TEMP_MODEL
|
|
|
+ case S::TempModel: //Temp model calibration
|
|
|
+ break;
|
|
|
+#endif //TEMP_MODEL
|
|
|
case S::Finish: //we are finished
|
|
|
-
|
|
|
msg = _T(MSG_WIZARD_DONE);
|
|
|
lcd_reset_alert_level();
|
|
|
lcd_setstatuspgm(MSG_WELCOME);
|
|
|
lcd_return_to_status();
|
|
|
break;
|
|
|
-
|
|
|
+ case S::Preheat:
|
|
|
+ case S::Lay1CalCold:
|
|
|
+ case S::Lay1CalHot:
|
|
|
+ break;
|
|
|
default:
|
|
|
msg = _T(MSG_WIZARD_QUIT);
|
|
|
break;
|
|
|
-
|
|
|
}
|
|
|
- if (!((S::Lay1CalCold == state) || (S::Lay1CalHot == state) || (S::Preheat == state)))
|
|
|
- {
|
|
|
+ if (msg) {
|
|
|
lcd_show_fullscreen_message_and_wait_P(msg);
|
|
|
}
|
|
|
lcd_update_enable(true);
|