Messages in Italian language corrected; added message when unloading filament; "yes", color is clear is default when loading filament

This commit is contained in:
PavelSindler 2017-01-25 18:54:54 +01:00
parent c553c7f368
commit cc30f910eb
11 changed files with 124 additions and 91 deletions

View file

@ -275,8 +275,8 @@ void Config_RetrieveSettings()
EEPROM_READ_VAR(i,minsegmenttime);
EEPROM_READ_VAR(i,max_jerk[X_AXIS]);
EEPROM_READ_VAR(i,max_jerk[Y_AXIS]);
EEPROM_READ_VAR(i,max_jerk[Z_AXIS]);
EEPROM_READ_VAR(i,max_jerk[E_AXIS]);
EEPROM_READ_VAR(i,max_jerk[Z_AXIS]);
EEPROM_READ_VAR(i,max_jerk[E_AXIS]);
EEPROM_READ_VAR(i,add_homing);
#ifndef ULTIPANEL
int plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed;

View file

@ -5078,7 +5078,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
st_synchronize();
if (!farm_mode && loading_flag) {
bool clean = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_FILAMENT_CLEAN);
bool clean = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_FILAMENT_CLEAN, false, true);
while (!clean) {
lcd_update_enable(true);
@ -5086,7 +5086,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
current_position[E_AXIS] += 40;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 100 / 60, active_extruder); //slow sequence
st_synchronize();
clean = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_FILAMENT_CLEAN);
clean = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_FILAMENT_CLEAN, false, true);
}
}
lcd_update_enable(true);
@ -5100,15 +5100,17 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
break;
case 702:
{
/*custom_message = true;
custom_message = true;
custom_message_type = 2;
lcd_setstatuspgm(MSG_UNLOADING_FILAMENT); //need to be tranlated to other languages
*/
lcd_setstatuspgm(MSG_UNLOADING_FILAMENT); //need to be tranlated to spanish language
current_position[E_AXIS] -= 80;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 7000 / 60, active_extruder);
/*custom_message = false;
st_synchronize();
lcd_setstatuspgm(WELCOME_MSG);
custom_message = false;
custom_message_type = 0;
*/
}
break;

View file

@ -197,7 +197,7 @@ const char * const MSG_BED_DONE_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_BED_HEATING_EN[] PROGMEM = "Bed Heating";
const char MSG_BED_HEATING_CZ[] PROGMEM = "Zahrivani bed";
const char MSG_BED_HEATING_IT[] PROGMEM = "Piatto riscaldam.";
const char MSG_BED_HEATING_IT[] PROGMEM = "Riscald. letto";
const char MSG_BED_HEATING_ES[] PROGMEM = "Base Calentando";
const char MSG_BED_HEATING_PL[] PROGMEM = "Grzanie stolika..";
const char * const MSG_BED_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
@ -465,7 +465,7 @@ const char * const MSG_CHANGE_EXTR_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_CHANGE_SUCCESS_EN[] PROGMEM = "Change success!";
const char MSG_CHANGE_SUCCESS_CZ[] PROGMEM = "Zmena uspesna!";
const char MSG_CHANGE_SUCCESS_IT[] PROGMEM = "Cambia. riuscito!";
const char MSG_CHANGE_SUCCESS_IT[] PROGMEM = "Cambio riuscito!";
const char MSG_CHANGE_SUCCESS_ES[] PROGMEM = "Cambiar bien!";
const char MSG_CHANGE_SUCCESS_PL[] PROGMEM = "Wymiana ok!";
const char * const MSG_CHANGE_SUCCESS_LANG_TABLE[LANG_NUM] PROGMEM = {
@ -478,7 +478,7 @@ const char * const MSG_CHANGE_SUCCESS_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_CHANGING_FILAMENT_EN[] PROGMEM = "Changing filament!";
const char MSG_CHANGING_FILAMENT_CZ[] PROGMEM = "Vymena filamentu!";
const char MSG_CHANGING_FILAMENT_IT[] PROGMEM = "Mutevole fil.!";
const char MSG_CHANGING_FILAMENT_IT[] PROGMEM = "Cambiando filam.";
const char MSG_CHANGING_FILAMENT_ES[] PROGMEM = "Cambiando fil.!";
const char MSG_CHANGING_FILAMENT_PL[] PROGMEM = "Wymiana filamentu";
const char * const MSG_CHANGING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
@ -633,11 +633,12 @@ const char * const MSG_END_FILE_LIST_LANG_TABLE[1] PROGMEM = {
const char MSG_ERROR_EN[] PROGMEM = "ERROR:";
const char MSG_ERROR_CZ[] PROGMEM = "CHYBA:";
const char MSG_ERROR_IT[] PROGMEM = "ERRORE:";
const char MSG_ERROR_PL[] PROGMEM = "BLAD:";
const char * const MSG_ERROR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_ERROR_EN,
MSG_ERROR_CZ,
MSG_ERROR_EN,
MSG_ERROR_IT,
MSG_ERROR_EN,
MSG_ERROR_PL
};
@ -947,7 +948,7 @@ const char * const MSG_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_HEATING_COMPLETE_EN[] PROGMEM = "Heating done.";
const char MSG_HEATING_COMPLETE_CZ[] PROGMEM = "Zahrivani OK.";
const char MSG_HEATING_COMPLETE_IT[] PROGMEM = "Riscaldamento fatto.";
const char MSG_HEATING_COMPLETE_IT[] PROGMEM = "Riscald. completo";
const char MSG_HEATING_COMPLETE_ES[] PROGMEM = "Calentando listo.";
const char MSG_HEATING_COMPLETE_PL[] PROGMEM = "Grzanie OK.";
const char * const MSG_HEATING_COMPLETE_LANG_TABLE[LANG_NUM] PROGMEM = {
@ -1090,7 +1091,7 @@ const char * const MSG_LANGUAGE_SELECT_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_LOADING_COLOR_EN[] PROGMEM = "Loading color";
const char MSG_LOADING_COLOR_CZ[] PROGMEM = "Cisteni barvy";
const char MSG_LOADING_COLOR_IT[] PROGMEM = "Cargando color";
const char MSG_LOADING_COLOR_IT[] PROGMEM = "Caricando colore";
const char MSG_LOADING_COLOR_ES[] PROGMEM = "Cargando color";
const char MSG_LOADING_COLOR_PL[] PROGMEM = "Czyszcz. koloru";
const char * const MSG_LOADING_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
@ -1103,7 +1104,7 @@ const char * const MSG_LOADING_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_LOADING_FILAMENT_EN[] PROGMEM = "Loading filament";
const char MSG_LOADING_FILAMENT_CZ[] PROGMEM = "Zavadeni filamentu";
const char MSG_LOADING_FILAMENT_IT[] PROGMEM = "Cargando fil.";
const char MSG_LOADING_FILAMENT_IT[] PROGMEM = "Caricando filam.";
const char MSG_LOADING_FILAMENT_ES[] PROGMEM = "Cargando fil.";
const char MSG_LOADING_FILAMENT_PL[] PROGMEM = "Wprow. filamentu";
const char * const MSG_LOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
@ -1199,7 +1200,7 @@ const char * const MSG_MAIN_LANG_TABLE[LANG_NUM] PROGMEM = {
};
const char MSG_MARK_FIL_EN[] PROGMEM = "Mark filament 100mm from extruder body. Click when done.";
const char MSG_MARK_FIL_CZ[] PROGMEM = "Oznacte filament 100 mm od tela extruderu. Potvrdte tlacitkem.";
const char MSG_MARK_FIL_CZ[] PROGMEM = "Oznacte filament 100 mm od tela extruderu a po te potvrdte tlacitkem.";
const char MSG_MARK_FIL_IT[] PROGMEM = "Segnare il filamento a 100 mm di distanza dal corpo dell'estrusore. Click per continuare.";
const char MSG_MARK_FIL_ES[] PROGMEM = "Marque el filamento 100 mm por encima del final del extrusor. Hacer clic una vez terminado.";
const char MSG_MARK_FIL_PL[] PROGMEM = "Prosze oznaczyc filament 100 mm od ciala ekstrudera. Potwierdzic przyciskiem.";
@ -1418,7 +1419,7 @@ const char * const MSG_NO_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_NOT_COLOR_EN[] PROGMEM = "Color not clear";
const char MSG_NOT_COLOR_CZ[] PROGMEM = "Barva neni cista";
const char MSG_NOT_COLOR_IT[] PROGMEM = "Color no claro";
const char MSG_NOT_COLOR_IT[] PROGMEM = "Colore non puro";
const char MSG_NOT_COLOR_ES[] PROGMEM = "Color no claro";
const char MSG_NOT_COLOR_PL[] PROGMEM = "Kolor zanieczysz.";
const char * const MSG_NOT_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
@ -1431,7 +1432,7 @@ const char * const MSG_NOT_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_NOT_LOADED_EN[] PROGMEM = "Filament not loaded";
const char MSG_NOT_LOADED_CZ[] PROGMEM = "Filament nezaveden";
const char MSG_NOT_LOADED_IT[] PROGMEM = "Fil. no cargado";
const char MSG_NOT_LOADED_IT[] PROGMEM = "Fil. non caricato";
const char MSG_NOT_LOADED_ES[] PROGMEM = "Fil. no cargado";
const char MSG_NOT_LOADED_PL[] PROGMEM = "Brak filamentu";
const char * const MSG_NOT_LOADED_LANG_TABLE[LANG_NUM] PROGMEM = {
@ -1583,10 +1584,10 @@ const char * const MSG_PREHEAT_NOZZLE_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_PREHEAT_NOZZLE_PL
};
const char MSG_PRESS_EN[] PROGMEM = "And press the knob";
const char MSG_PRESS_CZ[] PROGMEM = "A stisknete tlacitko";
const char MSG_PRESS_IT[] PROGMEM = "Y pulse el mando";
const char MSG_PRESS_ES[] PROGMEM = "Y pulse el mando";
const char MSG_PRESS_EN[] PROGMEM = "and press the knob";
const char MSG_PRESS_CZ[] PROGMEM = "a stisknete tlacitko";
const char MSG_PRESS_IT[] PROGMEM = "e cliccare manopola";
const char MSG_PRESS_ES[] PROGMEM = "y pulse el mando";
const char MSG_PRESS_PL[] PROGMEM = "Nacisnij przycisk";
const char * const MSG_PRESS_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_PRESS_EN,
@ -2161,7 +2162,7 @@ const char * const MSG_SHOW_END_STOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_SILENT_MODE_OFF_EN[] PROGMEM = "Mode [high power]";
const char MSG_SILENT_MODE_OFF_CZ[] PROGMEM = "Mod [vys. vykon]";
const char MSG_SILENT_MODE_OFF_IT[] PROGMEM = "Mode [prestante]";
const char MSG_SILENT_MODE_OFF_IT[] PROGMEM = "Mode [forte]";
const char MSG_SILENT_MODE_OFF_ES[] PROGMEM = "Modo [mas fuerza]";
const char MSG_SILENT_MODE_OFF_PL[] PROGMEM = "Mod [w wydajnosc]";
const char * const MSG_SILENT_MODE_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
@ -2404,6 +2405,19 @@ const char * const MSG_UNKNOWN_COMMAND_LANG_TABLE[1] PROGMEM = {
MSG_UNKNOWN_COMMAND_EN
};
const char MSG_UNLOADING_FILAMENT_EN[] PROGMEM = "Unloading filament";
const char MSG_UNLOADING_FILAMENT_CZ[] PROGMEM = "Vysouvam filament";
const char MSG_UNLOADING_FILAMENT_IT[] PROGMEM = "Rilasc. filamento";
const char MSG_UNLOADING_FILAMENT_ES[] PROGMEM = "Soltando filamento";
const char MSG_UNLOADING_FILAMENT_PL[] PROGMEM = "Wysuwam filament";
const char * const MSG_UNLOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOADING_FILAMENT_EN,
MSG_UNLOADING_FILAMENT_CZ,
MSG_UNLOADING_FILAMENT_IT,
MSG_UNLOADING_FILAMENT_ES,
MSG_UNLOADING_FILAMENT_PL
};
const char MSG_UNLOAD_FILAMENT_EN[] PROGMEM = "Unload filament";
const char MSG_UNLOAD_FILAMENT_CZ[] PROGMEM = "Vyjmout filament";
const char MSG_UNLOAD_FILAMENT_IT[] PROGMEM = "Scarica filamento";

View file

@ -518,6 +518,8 @@ extern const char* const MSG_TUNE_LANG_TABLE[LANG_NUM];
#define MSG_TUNE LANG_TABLE_SELECT(MSG_TUNE_LANG_TABLE)
extern const char* const MSG_UNKNOWN_COMMAND_LANG_TABLE[1];
#define MSG_UNKNOWN_COMMAND LANG_TABLE_SELECT_EXPLICIT(MSG_UNKNOWN_COMMAND_LANG_TABLE, 0)
extern const char* const MSG_UNLOADING_FILAMENT_LANG_TABLE[LANG_NUM];
#define MSG_UNLOADING_FILAMENT LANG_TABLE_SELECT(MSG_UNLOADING_FILAMENT_LANG_TABLE)
extern const char* const MSG_UNLOAD_FILAMENT_LANG_TABLE[LANG_NUM];
#define MSG_UNLOAD_FILAMENT LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_LANG_TABLE)
extern const char* const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM];

View file

@ -88,7 +88,7 @@
#define MSG_PLEASE_WAIT "Prosim cekejte"
#define MSG_LOADING_COLOR "Cisteni barvy"
#define MSG_CHANGE_SUCCESS "Zmena uspesna!"
#define MSG_PRESS "A stisknete tlacitko"
#define MSG_PRESS "a stisknete tlacitko"
#define MSG_INSERT_FILAMENT "Vlozte filament"
#define MSG_CHANGING_FILAMENT "Vymena filamentu!"
@ -258,7 +258,8 @@
#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ "Filamenty jsou srovnany. Pro uspesnou kalibraci prosim ocistete trysku. Po te potvrdte tlacitkem."
#define MSG_CALIBRATE_E "Kalibrovat E"
#define MSG_E_CAL_KNOB "Otacejte tlacitkem dokud znacka nedosahne tela extruderu. Potvrdte tlacitkem."
#define MSG_MARK_FIL "Oznacte filament 100 mm od tela extruderu. Potvrdte tlacitkem."
#define MSG_MARK_FIL "Oznacte filament 100 mm od tela extruderu a po te potvrdte tlacitkem."
#define MSG_CLEAN_NOZZLE_E "E kalibrace ukoncena. Prosim ocistete trysku. Po te potvrdte tlacitkem."
#define MSG_WAITING_TEMP "Cekani na zchladnuti trysky a podlozky."
#define MSG_FILAMENT_CLEAN "Je barva cista?"
#define MSG_FILAMENT_CLEAN "Je barva cista?"
#define MSG_UNLOADING_FILAMENT "Vysouvam filament"

View file

@ -85,7 +85,7 @@
#define(length=20) MSG_PLEASE_WAIT "Please wait"
#define MSG_LOADING_COLOR "Loading color"
#define MSG_CHANGE_SUCCESS "Change success!"
#define(length=20) MSG_PRESS "And press the knob"
#define(length=20) MSG_PRESS "and press the knob"
#define(length=20) MSG_INSERT_FILAMENT "Insert filament"
#define(length=20) MSG_CHANGING_FILAMENT "Changing filament!"
@ -250,7 +250,7 @@
#define(length=20, lines=8) MSG_CLEAN_NOZZLE_E "E calibration finished. Please clean the nozzle. Click when done."
#define(length=20, lines=3) MSG_WAITING_TEMP "Waiting for heater and bed cooling"
#define(length=20, lines=2) MSG_FILAMENT_CLEAN "Is color clear?"
//#define(lenght=20, lines=1) MSG_UNLOADING_FILAMENT "Unloading filament"
#define(lenght=20, lines=1) MSG_UNLOADING_FILAMENT "Unloading filament"
#define MSG_BED_CORRECTION_MENU "Bed level correct"
#define MSG_BED_CORRECTION_LEFT "Left side um"

View file

@ -59,7 +59,7 @@
#define MSG_PLEASE_WAIT "Espera"
#define MSG_LOADING_COLOR "Cargando color"
#define MSG_CHANGE_SUCCESS "Cambiar bien!"
#define MSG_PRESS "Y pulse el mando"
#define MSG_PRESS "y pulse el mando"
#define MSG_INSERT_FILAMENT "Inserta filamento"
#define MSG_CHANGING_FILAMENT "Cambiando fil.!"
#define MSG_SILENT_MODE_ON "Modo [silencio]"
@ -252,3 +252,4 @@
#define MSG_CLEAN_NOZZLE_E "E calibrado. Limpiar la boquilla. Haga clic una vez terminado."
#define MSG_WAITING_TEMP "Esperando enfriamiento de la cama y del extrusor."
#define MSG_FILAMENT_CLEAN "Es el nuevo color nitido?"
#define MSG_UNLOADING_FILAMENT "Soltando filamento"

View file

@ -64,27 +64,27 @@
#define MSG_SUPPORT "Support"
#define MSG_YES "Si"
#define MSG_NO "No"
#define MSG_NOT_LOADED "Fil. no cargado"
#define MSG_NOT_COLOR "Color no claro"
#define MSG_LOADING_COLOR "Cargando color"
#define MSG_CHANGE_SUCCESS "Cambia. riuscito!"
#define MSG_PRESS "Y pulse el mando"
#define MSG_NOT_LOADED "Fil. non caricato"
#define MSG_NOT_COLOR "Colore non puro"
#define MSG_LOADING_COLOR "Caricando colore"
#define MSG_CHANGE_SUCCESS "Cambio riuscito!"
#define MSG_PRESS "e cliccare manopola"
#define MSG_INSERT_FILAMENT "Inserire filamento"
#define MSG_CHANGING_FILAMENT "Mutevole fil.!"
#define MSG_CHANGING_FILAMENT "Cambiando filam."
#define MSG_PLEASE_WAIT "Aspetta"
#define MSG_PREHEAT_NOZZLE "Preris. ugello!"
#define MSG_HEATING_COMPLETE "Riscaldamento fatto."
#define MSG_BED_HEATING "Piatto riscaldam."
#define MSG_HEATING_COMPLETE "Riscald. completo"
#define MSG_BED_HEATING "Riscald. letto"
#define MSG_BED_DONE "Piatto fatto."
#define MSG_ERROR "ERROR:"
#define MSG_ERROR "ERRORE:"
#define MSG_CORRECTLY "Cambiato corr.?"
#define MSG_LOADING_FILAMENT "Cargando fil."
#define MSG_LOADING_FILAMENT "Caricando filam."
#define MSG_UNLOAD_FILAMENT "Scarica filamento"
#define MSG_LOAD_FILAMENT "Carica filamento"
#define MSG_SILENT_MODE_ON "Modo [silenzioso]"
#define MSG_SILENT_MODE_OFF "Mode [prestante]"
#define MSG_SILENT_MODE_OFF "Mode [forte]"
#define MSG_REBOOT "Riavvia stampante"
#define MSG_TAKE_EFFECT " per attualizzare"
@ -247,3 +247,4 @@
#define MSG_CLEAN_NOZZLE_E "Calibrazione E terminata. Si prega di pulire l'ugello. Click per continuare."
#define MSG_WAITING_TEMP "In attesa del raffreddamento della testina e del piatto."
#define MSG_FILAMENT_CLEAN "Il colore e' nitido?"
#define MSG_UNLOADING_FILAMENT "Rilasc. filamento"

View file

@ -257,4 +257,5 @@
#define MSG_MARK_FIL "Prosze oznaczyc filament 100 mm od ciala ekstrudera. Potwierdzic przyciskiem."
#define MSG_CLEAN_NOZZLE_E "Kalibracja E skonczona. Prosze oczyscic dysze. Potem potwierdzic przyciskiem. "
#define MSG_WAITING_TEMP "Oczekiwanie na wychlodzenie dyszy i podkladki."
#define MSG_FILAMENT_CLEAN "Czy kolor jest czysty?"
#define MSG_FILAMENT_CLEAN "Czy kolor jest czysty?"
#define MSG_UNLOADING_FILAMENT "Wysuwam filament"

View file

@ -1712,49 +1712,58 @@ void lcd_wait_for_click()
}
}
int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting)
int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting, bool default_yes)
{
lcd_display_message_fullscreen_P(msg);
lcd.setCursor(1, 2);
lcd_printPGM(MSG_YES);
lcd.setCursor(0, 3);
lcd_printPGM(PSTR(">"));
lcd_printPGM(MSG_NO);
bool yes = false;
lcd_display_message_fullscreen_P(msg);
if (default_yes) {
lcd.setCursor(0, 2);
lcd_printPGM(PSTR(">"));
lcd_printPGM(MSG_YES);
lcd.setCursor(1, 3);
lcd_printPGM(MSG_NO);
}
else {
lcd.setCursor(1, 2);
lcd_printPGM(MSG_YES);
lcd.setCursor(0, 3);
lcd_printPGM(PSTR(">"));
lcd_printPGM(MSG_NO);
}
bool yes = default_yes ? true : false;
// Wait for user confirmation or a timeout.
unsigned long previous_millis_cmd = millis();
int8_t enc_dif = encoderDiff;
for (;;) {
if (allow_timeouting && millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
return -1;
manage_heater();
manage_inactivity(true);
if (abs((enc_dif - encoderDiff)) > 4) {
if (abs(enc_dif - encoderDiff) > 1) {
lcd.setCursor(0, 2);
if (enc_dif > encoderDiff && yes) {
lcd_printPGM((PSTR(" ")));
lcd.setCursor(0, 3);
lcd_printPGM((PSTR(">")));
yes = false;
} else if (enc_dif < encoderDiff && ! yes) {
lcd_printPGM((PSTR(">")));
lcd.setCursor(0, 3);
lcd_printPGM((PSTR(" ")));
yes = true;
}
enc_dif = encoderDiff;
}
}
if (lcd_clicked()) {
while (lcd_clicked()) ;
delay(10);
while (lcd_clicked()) ;
return yes;
}
}
// Wait for user confirmation or a timeout.
unsigned long previous_millis_cmd = millis();
int8_t enc_dif = encoderDiff;
for (;;) {
if (allow_timeouting && millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
return -1;
manage_heater();
manage_inactivity(true);
if (abs(enc_dif - encoderDiff) > 4) {
lcd.setCursor(0, 2);
if (enc_dif > encoderDiff && yes) {
lcd_printPGM((PSTR(" ")));
lcd.setCursor(0, 3);
lcd_printPGM((PSTR(">")));
yes = false;
}
else if (enc_dif < encoderDiff && !yes) {
lcd_printPGM((PSTR(">")));
lcd.setCursor(0, 3);
lcd_printPGM((PSTR(" ")));
yes = true;
}
enc_dif = encoderDiff;
}
if (lcd_clicked()) {
while (lcd_clicked());
delay(10);
while (lcd_clicked());
return yes;
}
}
}
void lcd_bed_calibration_show_result(BedSkewOffsetDetectionResultType result, uint8_t point_too_far_mask)
@ -2209,14 +2218,15 @@ void lcd_mesh_calibration_z()
void lcd_calibrate_extruder() {
if (degHotend0() > EXTRUDE_MINTEMP)
{
current_position[E_AXIS] = 0;
current_position[E_AXIS] = 0; //set initial position to zero
plan_set_e_position(current_position[E_AXIS]);
long steps_start = current_position[E_AXIS]*axis_steps_per_unit[E_AXIS];
//long steps_start = st_get_position(E_AXIS);
long steps_final;
float e_steps_per_unit;
float feedrate = (180 / axis_steps_per_unit[E_AXIS]) * 5;
float e_shift_calibration = (axis_steps_per_unit[E_AXIS] > 180 ) ? ((180 / axis_steps_per_unit[E_AXIS]) * 70): 70;
float feedrate = (180 / axis_steps_per_unit[E_AXIS]) * 3; //initial automatic extrusion feedrate (depends on current value of axis_steps_per_unit to avoid too fast extrusion)
float e_shift_calibration = (axis_steps_per_unit[E_AXIS] > 180 ) ? ((180 / axis_steps_per_unit[E_AXIS]) * 70): 70; //length of initial automatic extrusion sequence
const char *msg_e_cal_knob = MSG_E_CAL_KNOB;
const char *msg_next_e_cal_knob = lcd_display_message_fullscreen_P(msg_e_cal_knob);
const bool multi_screen = msg_next_e_cal_knob != NULL;
@ -2243,7 +2253,7 @@ void lcd_calibrate_extruder() {
//manage_inactivity(true);
manage_heater();
if (abs(encoderDiff) >= ENCODER_PULSES_PER_STEP) {
if (abs(encoderDiff) >= ENCODER_PULSES_PER_STEP) { //adjusting mark by knob rotation
delay_keep_alive(50);
//previous_millis_cmd = millis();
encoderPosition += (encoderDiff / ENCODER_PULSES_PER_STEP);
@ -2258,9 +2268,10 @@ void lcd_calibrate_extruder() {
}
steps_final = current_position[E_AXIS] * axis_steps_per_unit[E_AXIS];
//steps_final = st_get_position(E_AXIS);
lcdDrawUpdate = 1;
e_steps_per_unit = ((float)(steps_final - steps_start)) / 100.f;
if (e_steps_per_unit < MIN_E_STEPS_PER_UNIT) e_steps_per_unit = MIN_E_STEPS_PER_UNIT;
e_steps_per_unit = ((float)(steps_final)) / 100.0f;
if (e_steps_per_unit < MIN_E_STEPS_PER_UNIT) e_steps_per_unit = MIN_E_STEPS_PER_UNIT;
if (e_steps_per_unit > MAX_E_STEPS_PER_UNIT) e_steps_per_unit = MAX_E_STEPS_PER_UNIT;
lcd_implementation_clear();

View file

@ -49,7 +49,7 @@ void lcd_mylang();
extern void lcd_wait_for_click();
extern void lcd_show_fullscreen_message_and_wait_P(const char *msg);
// 0: no, 1: yes, -1: timeouted
extern int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting = true);
extern int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting = true, bool default_yes = false);
// Ask the user to move the Z axis up to the end stoppers and let
// the user confirm that it has been done.