Show "Calibrating nth point" on the display when running G80

if initiated from SD card. Don't show Z height during the calibration.

Update status of the Toshiba FlashAir on sd card insert / removal.
This commit is contained in:
bubnikv 2016-08-02 15:08:34 +02:00
parent a154fc1691
commit 805cdadb6f
4 changed files with 50 additions and 41 deletions

View File

@ -2328,14 +2328,6 @@ void process_commands()
case 80: case 80:
case_G80: case_G80:
{ {
if (!IS_SD_PRINTING)
{
custom_message = true;
custom_message_type = 1;
custom_message_state = (MESH_MEAS_NUM_X_POINTS * MESH_MEAS_NUM_Y_POINTS) + 10;
}
// Firstly check if we know where we are // Firstly check if we know where we are
if ( !( axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS] ) ){ if ( !( axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS] ) ){
// We don't know where we are! HOME! // We don't know where we are! HOME!
@ -2345,6 +2337,15 @@ void process_commands()
enquecommand_front_P((PSTR("G28 W0"))); enquecommand_front_P((PSTR("G28 W0")));
break; break;
} }
// Save custom message state, set a new custom message state to display: Calibrating point 9.
bool custom_message_old = custom_message;
unsigned int custom_message_type_old = custom_message_type;
unsigned int custom_message_state_old = custom_message_state;
custom_message = true;
custom_message_type = 1;
custom_message_state = (MESH_MEAS_NUM_X_POINTS * MESH_MEAS_NUM_Y_POINTS) + 10;
lcd_update(1);
mbl.reset(); mbl.reset();
@ -2429,12 +2430,9 @@ void process_commands()
mbl.set_z(ix, iy, current_position[Z_AXIS]); mbl.set_z(ix, iy, current_position[Z_AXIS]);
if (!IS_SD_PRINTING) custom_message_state--;
{
custom_message_state--;
}
mesh_point++; mesh_point++;
lcd_update(1);
} }
current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS],current_position[Z_AXIS] , current_position[E_AXIS], Z_LIFT_FEEDRATE, active_extruder); plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS],current_position[Z_AXIS] , current_position[E_AXIS], Z_LIFT_FEEDRATE, active_extruder);
@ -2526,6 +2524,12 @@ void process_commands()
world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]);
plan_buffer_line(current_position[X_AXIS], current_position[X_AXIS], current_position[Z_AXIS], current_position[E_AXIS], XY_AXIS_FEEDRATE, active_extruder); plan_buffer_line(current_position[X_AXIS], current_position[X_AXIS], current_position[Z_AXIS], current_position[E_AXIS], XY_AXIS_FEEDRATE, active_extruder);
st_synchronize(); st_synchronize();
// Restore custom message state
custom_message = custom_message_old;
custom_message_type = custom_message_type_old;
custom_message_state = custom_message_state_old;
lcd_update(1);
} }
break; break;

View File

@ -397,7 +397,7 @@ static void lcd_status_screen()
} }
break; break;
} }
} } // end of farm_mode
@ -410,7 +410,7 @@ static void lcd_status_screen()
} }
} } // end of lcdDrawUpdate
#ifdef ULTIPANEL #ifdef ULTIPANEL
bool current_click = LCD_CLICKED; bool current_click = LCD_CLICKED;
@ -755,8 +755,8 @@ static void lcd_preheat_menu()
static void lcd_support_menu() static void lcd_support_menu()
{ {
if (menuData.supportMenu.status == 0) { if (menuData.supportMenu.status == 0 || lcdDrawUpdate == 2) {
// Menu was entered. // Menu was entered or SD card status has changed (plugged in or removed).
// Initialize its status. // Initialize its status.
menuData.supportMenu.status = 1; menuData.supportMenu.status = 1;
menuData.supportMenu.is_flash_air = card.ToshibaFlashAir_GetIP(menuData.supportMenu.ip); menuData.supportMenu.is_flash_air = card.ToshibaFlashAir_GetIP(menuData.supportMenu.ip);
@ -1224,7 +1224,7 @@ static void _lcd_babystep(int axis, const char *msg)
menuData.babyStep.babystepMemMM[0] = menuData.babyStep.babystepMem[0]/axis_steps_per_unit[X_AXIS]; menuData.babyStep.babystepMemMM[0] = menuData.babyStep.babystepMem[0]/axis_steps_per_unit[X_AXIS];
menuData.babyStep.babystepMemMM[1] = menuData.babyStep.babystepMem[1]/axis_steps_per_unit[Y_AXIS]; menuData.babyStep.babystepMemMM[1] = menuData.babyStep.babystepMem[1]/axis_steps_per_unit[Y_AXIS];
menuData.babyStep.babystepMemMM[2] = menuData.babyStep.babystepMem[2]/axis_steps_per_unit[Z_AXIS]; menuData.babyStep.babystepMemMM[2] = menuData.babyStep.babystepMem[2]/axis_steps_per_unit[Z_AXIS];
lcdDrawUpdate = true; lcdDrawUpdate = 1;
} }
if (encoderPosition != 0) if (encoderPosition != 0)
@ -1236,7 +1236,7 @@ static void _lcd_babystep(int axis, const char *msg)
menuData.babyStep.babystepMemMM[axis] = menuData.babyStep.babystepMem[axis]/axis_steps_per_unit[Z_AXIS]; menuData.babyStep.babystepMemMM[axis] = menuData.babyStep.babystepMem[axis]/axis_steps_per_unit[Z_AXIS];
delay(50); delay(50);
encoderPosition = 0; encoderPosition = 0;
lcdDrawUpdate = true; lcdDrawUpdate = 1;
} }
if (lcdDrawUpdate) if (lcdDrawUpdate)
lcd_implementation_drawedit_2(msg, ftostr13ns(menuData.babyStep.babystepMemMM[axis])); lcd_implementation_drawedit_2(msg, ftostr13ns(menuData.babyStep.babystepMemMM[axis]));
@ -1300,7 +1300,7 @@ static void lcd_adjust_bed()
menuData.adjustBed.front2 = 0; menuData.adjustBed.front2 = 0;
menuData.adjustBed.rear2 = 0; menuData.adjustBed.rear2 = 0;
} }
lcdDrawUpdate = true; lcdDrawUpdate = 1;
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID, 1); eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID, 1);
} }
@ -3230,8 +3230,11 @@ void lcd_update_enable(bool enabled)
lcd_update_enabled = enabled; lcd_update_enabled = enabled;
} }
void lcd_update() void lcd_update(uint8_t lcdDrawUpdateOverride)
{ {
if (lcdDrawUpdate < lcdDrawUpdateOverride)
lcdDrawUpdate = lcdDrawUpdateOverride;
static unsigned long timeoutToStatus = 0; static unsigned long timeoutToStatus = 0;
if (! lcd_update_enabled) if (! lcd_update_enabled)

View File

@ -6,7 +6,7 @@
#ifdef ULTRA_LCD #ifdef ULTRA_LCD
void lcd_update(); void lcd_update(uint8_t lcdDrawUpdateOverride = 0);
// Call with a false parameter to suppress the LCD update from various places like the planner or the temp control. // Call with a false parameter to suppress the LCD update from various places like the planner or the temp control.
void lcd_update_enable(bool enable); void lcd_update_enable(bool enable);
void lcd_init(); void lcd_init();

View File

@ -655,16 +655,18 @@ static void lcd_implementation_status_screen()
lcd.print('/'); lcd.print('/');
lcd.print(itostr3left(tTarget)); lcd.print(itostr3left(tTarget));
lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
lcd.print(" "); lcd_printPGM(PSTR(" "));
//Print the Z coordinates //Print the Z coordinates
// if (custom_message_type != 1) {
// Not in a bed calibration mode.
lcd.setCursor(LCD_WIDTH - 8-2, 0); lcd.setCursor(LCD_WIDTH - 8-2, 0);
lcd.print(" Z"); lcd_printPGM(PSTR(" Z"));
lcd.print(ftostr32sp(current_position[Z_AXIS] + 0.00001)); if (custom_message_type == 1) {
lcd.print(' '); // In a bed calibration mode.
//} lcd_printPGM(PSTR(" --- "));
} else {
lcd.print(ftostr32sp(current_position[Z_AXIS] + 0.00001));
lcd.print(' ');
}
//Print the Bedtemperature //Print the Bedtemperature
lcd.setCursor(0, 1); lcd.setCursor(0, 1);
@ -675,15 +677,15 @@ static void lcd_implementation_status_screen()
lcd.print('/'); lcd.print('/');
lcd.print(itostr3left(tTarget)); lcd.print(itostr3left(tTarget));
lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
lcd.print(" "); lcd_printPGM(PSTR(" "));
//Print Feedrate //Print Feedrate
lcd.setCursor(LCD_WIDTH - 8-2, 1); lcd.setCursor(LCD_WIDTH - 8-2, 1);
lcd.print(" "); lcd_printPGM(PSTR(" "));
lcd.print(LCD_STR_FEEDRATE[0]); lcd.print(LCD_STR_FEEDRATE[0]);
lcd.print(itostr3(feedmultiply)); lcd.print(itostr3(feedmultiply));
lcd.print('%'); lcd.print('%');
lcd.print(" "); lcd_printPGM(PSTR(" "));
@ -716,14 +718,14 @@ static void lcd_implementation_status_screen()
} }
if (farm_mode) if (farm_mode)
{ {
lcd.print(" F"); lcd_printPGM(PSTR(" F"));
lcd.print(farm_no); lcd.print(farm_no);
lcd.print(" "); lcd_printPGM(PSTR(" "));
} }
//Print time elapsed //Print time elapsed
lcd.setCursor(LCD_WIDTH - 8 -2, 2); lcd.setCursor(LCD_WIDTH - 8 -2, 2);
lcd.print(" "); lcd_printPGM(PSTR(" "));
lcd.print(LCD_STR_CLOCK[0]); lcd.print(LCD_STR_CLOCK[0]);
if(starttime != 0) if(starttime != 0)
{ {
@ -734,7 +736,7 @@ static void lcd_implementation_status_screen()
}else{ }else{
lcd_printPGM(PSTR("--:--")); lcd_printPGM(PSTR("--:--"));
} }
lcd.print(" "); lcd_printPGM(PSTR(" "));
//Print status line //Print status line
@ -748,7 +750,7 @@ static void lcd_implementation_status_screen()
if(strcmp(longFilenameOLD, card.longFilename) != 0) if(strcmp(longFilenameOLD, card.longFilename) != 0)
{ {
memset(longFilenameOLD,'\0',strlen(longFilenameOLD)); memset(longFilenameOLD,'\0',strlen(longFilenameOLD));
sprintf(longFilenameOLD, "%s", card.longFilename); sprintf_P(longFilenameOLD, PSTR("%s"), card.longFilename);
scrollstuff = 0; scrollstuff = 0;
} }
@ -803,7 +805,7 @@ static void lcd_implementation_status_screen()
for (int dots = 0; dots < heating_status_counter; dots++) for (int dots = 0; dots < heating_status_counter; dots++)
{ {
lcd.setCursor(7 + dots, 3); lcd.setCursor(7 + dots, 3);
lcd_printPGM(PSTR(".")); lcd.print('.');
} }
switch (heating_status) switch (heating_status)
@ -840,10 +842,10 @@ static void lcd_implementation_status_screen()
if (custom_message_state > 10) if (custom_message_state > 10)
{ {
lcd.setCursor(0, 3); lcd.setCursor(0, 3);
lcd.print(" "); lcd_printPGM(PSTR(" "));
lcd.setCursor(0, 3); lcd.setCursor(0, 3);
lcd_printPGM(MSG_HOMEYZ_PROGRESS); lcd_printPGM(MSG_HOMEYZ_PROGRESS);
lcd.print(" : "); lcd_printPGM(PSTR(" : "));
lcd.print(custom_message_state-10); lcd.print(custom_message_state-10);
} }
else else
@ -858,7 +860,7 @@ static void lcd_implementation_status_screen()
if (custom_message_state > 3 && custom_message_state < 10 ) if (custom_message_state > 3 && custom_message_state < 10 )
{ {
lcd.setCursor(0, 3); lcd.setCursor(0, 3);
lcd.print(" "); lcd_printPGM(PSTR(" "));
lcd.setCursor(0, 3); lcd.setCursor(0, 3);
lcd_printPGM(MSG_HOMEYZ_DONE); lcd_printPGM(MSG_HOMEYZ_DONE);
custom_message_state--; custom_message_state--;