浏览代码

fullscreen message confirm char displayed imidiately, different changes in wizard

PavelSindler 7 年之前
父节点
当前提交
0a8572bfbe
共有 1 个文件被更改,包括 13 次插入15 次删除
  1. 13 15
      Firmware/ultralcd.cpp

+ 13 - 15
Firmware/ultralcd.cpp

@@ -2113,9 +2113,15 @@ void lcd_show_fullscreen_message_and_wait_P(const char *msg)
     const char *msg_next = lcd_display_message_fullscreen_P(msg);
     const char *msg_next = lcd_display_message_fullscreen_P(msg);
     bool multi_screen = msg_next != NULL;
     bool multi_screen = msg_next != NULL;
 
 
+	lcd_set_custom_characters_nextpage();
 	KEEPALIVE_STATE(PAUSED_FOR_USER);
 	KEEPALIVE_STATE(PAUSED_FOR_USER);
     // Until confirmed by a button click.
     // Until confirmed by a button click.
     for (;;) {
     for (;;) {
+		if (!multi_screen) {
+			lcd.setCursor(19, 3);
+			// Display the confirm char.
+			lcd.print(char(2));
+		}
         // Wait for 5 seconds before displaying the next text.
         // Wait for 5 seconds before displaying the next text.
         for (uint8_t i = 0; i < 100; ++ i) {
         for (uint8_t i = 0; i < 100; ++ i) {
             delay_keep_alive(50);
             delay_keep_alive(50);
@@ -2135,18 +2141,12 @@ void lcd_show_fullscreen_message_and_wait_P(const char *msg)
 				msg_next = msg;
 				msg_next = msg;
             msg_next = lcd_display_message_fullscreen_P(msg_next);
             msg_next = lcd_display_message_fullscreen_P(msg_next);
 			if (msg_next == NULL) {
 			if (msg_next == NULL) {
-				lcd_set_custom_characters_nextpage();
+				
 				lcd.setCursor(19, 3);
 				lcd.setCursor(19, 3);
 				// Display the confirm char.
 				// Display the confirm char.
 				lcd.print(char(2));
 				lcd.print(char(2));
 			}
 			}
 		}
 		}
-		else {
-			lcd_set_custom_characters_nextpage();
-			lcd.setCursor(19, 3);
-			// Display the confirm char.
-			lcd.print(char(2));
-		}
     }
     }
 }
 }
 
 
@@ -3005,7 +3005,7 @@ void lcd_wizard(int state) {
 			case CALIBRATION_STATUS_XYZ_CALIBRATION: state = 3; break; //run xyz cal.
 			case CALIBRATION_STATUS_XYZ_CALIBRATION: state = 3; break; //run xyz cal.
 			case CALIBRATION_STATUS_Z_CALIBRATION: state = 4; break; //run z cal.
 			case CALIBRATION_STATUS_Z_CALIBRATION: state = 4; break; //run z cal.
 			case CALIBRATION_STATUS_LIVE_ADJUST: state = 5; break; //run live adjust
 			case CALIBRATION_STATUS_LIVE_ADJUST: state = 5; break; //run live adjust
-			case CALIBRATION_STATUS_CALIBRATED: end = true; break;
+			case CALIBRATION_STATUS_CALIBRATED: end = true; eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 0); break;
 			default: state = 2; break; //if calibration status is unknown, run wizard from the beginning
 			default: state = 2; break; //if calibration status is unknown, run wizard from the beginning
 			}
 			}
 			break;
 			break;
@@ -3021,17 +3021,13 @@ void lcd_wizard(int state) {
 		case 3: //xyz cal.
 		case 3: //xyz cal.
 			lcd_show_fullscreen_message_and_wait_P(MSG_WIZARD_XYZ_CAL);
 			lcd_show_fullscreen_message_and_wait_P(MSG_WIZARD_XYZ_CAL);
 			wizard_event = gcode_M45(false);
 			wizard_event = gcode_M45(false);
-			if (wizard_event) {
-				current_position[Z_AXIS] += 100; //move in z axis to make space for loading filament
-				plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS] / 60, active_extruder);
-				state = 5;
-			}
+			if (wizard_event) state = 5;
 			else end = true;
 			else end = true;
 			break;
 			break;
 		case 4: //z cal.
 		case 4: //z cal.
 			lcd_show_fullscreen_message_and_wait_P(MSG_WIZARD_Z_CAL);
 			lcd_show_fullscreen_message_and_wait_P(MSG_WIZARD_Z_CAL);
 			wizard_event = gcode_M45(true);
 			wizard_event = gcode_M45(true);
-			if (wizard_event) state = 9; //shipped, no need to set first layer, go to final message directly
+			if (wizard_event) state = 11; //shipped, no need to set first layer, go to final message directly
 			else end = true;
 			else end = true;
 			break;
 			break;
 		case 5: //is filament loaded?
 		case 5: //is filament loaded?
@@ -3044,6 +3040,8 @@ void lcd_wizard(int state) {
 			break;
 			break;
 		case 6: //waiting for preheat nozzle for PLA;
 		case 6: //waiting for preheat nozzle for PLA;
 			lcd_display_message_fullscreen_P(MSG_WIZARD_WILL_PREHEAT);
 			lcd_display_message_fullscreen_P(MSG_WIZARD_WILL_PREHEAT);
+			current_position[Z_AXIS] = 100; //move in z axis to make space for loading filament
+			plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS] / 60, active_extruder);
 			delay_keep_alive(2000);
 			delay_keep_alive(2000);
 			lcd_display_message_fullscreen_P(MSG_WIZARD_HEATING);
 			lcd_display_message_fullscreen_P(MSG_WIZARD_HEATING);
 			while (abs(degHotend(0) - PLA_PREHEAT_HOTEND_TEMP) > 3) {
 			while (abs(degHotend(0) - PLA_PREHEAT_HOTEND_TEMP) > 3) {
@@ -3085,7 +3083,7 @@ void lcd_wizard(int state) {
 		case 10: //repeat first layer cal.?
 		case 10: //repeat first layer cal.?
 			wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(MSG_WIZARD_REPEAT_V2_CAL, false);
 			wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(MSG_WIZARD_REPEAT_V2_CAL, false);
 			if (wizard_event) {
 			if (wizard_event) {
-				calibration_status_store(CALIBRATION_STATUS_LIVE_ADJUST)
+				calibration_status_store(CALIBRATION_STATUS_LIVE_ADJUST);
 				lcd_show_fullscreen_message_and_wait_P(MSG_WIZARD_CLEAN_HEATBED);
 				lcd_show_fullscreen_message_and_wait_P(MSG_WIZARD_CLEAN_HEATBED);
 				state = 9;
 				state = 9;
 			}
 			}