|
@@ -7439,39 +7439,37 @@ static void lcd_belttest_v()
|
|
|
|
|
|
void lcd_belttest()
|
|
void lcd_belttest()
|
|
{
|
|
{
|
|
- bool _result = true;
|
|
|
|
-
|
|
|
|
|
|
+ lcd_clear();
|
|
// Belttest requires high power mode. Enable it.
|
|
// Belttest requires high power mode. Enable it.
|
|
FORCE_HIGH_POWER_START;
|
|
FORCE_HIGH_POWER_START;
|
|
|
|
|
|
uint16_t X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X));
|
|
uint16_t X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X));
|
|
uint16_t Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y));
|
|
uint16_t Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y));
|
|
- lcd_puts_at_P(0,0,_i("Checking X..."));
|
|
|
|
-
|
|
|
|
|
|
+ lcd_puts_at_P(0,0,_i("Checking X axis ")); // share message with selftest
|
|
|
|
+ lcd_set_cursor(0,1), lcd_printf_P(PSTR("X: %d "),X);
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
|
|
|
|
- _result = lcd_selfcheck_axis_sg(X_AXIS);
|
|
|
|
- X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X));
|
|
|
|
- lcd_set_cursor(0,1), lcd_printf_P(PSTR("X: %d "),X); // Trailing space for done/error spacing if !_result
|
|
|
|
- if (_result){
|
|
|
|
- lcd_printf_P(_i("Done"));
|
|
|
|
- lcd_puts_at_P(0,2,_i("Checking Y..."));
|
|
|
|
- _result = lcd_selfcheck_axis_sg(Y_AXIS);
|
|
|
|
- Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y));
|
|
|
|
|
|
+ // N.B: it doesn't make sense to handle !lcd_selfcheck...() because selftest_sg throws its own error screen
|
|
|
|
+ // that clobbers ours, with more info than we could provide. So on fail we just fall through to take us back to status.
|
|
|
|
+ if (lcd_selfcheck_axis_sg(X_AXIS)){
|
|
|
|
+ X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X));
|
|
|
|
+ lcd_printf_P(PSTR("-> %d"),X); // Show new X value next to old one.
|
|
|
|
+ lcd_puts_at_P(0,2,_i("Checking Y axis "));
|
|
lcd_set_cursor(0,3), lcd_printf_P(PSTR("Y: %d "),Y);
|
|
lcd_set_cursor(0,3), lcd_printf_P(PSTR("Y: %d "),Y);
|
|
|
|
+ if (lcd_selfcheck_axis_sg(Y_AXIS))
|
|
|
|
+ {
|
|
|
|
+ Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y));
|
|
|
|
+ lcd_printf_P(PSTR("-> %d"),Y);
|
|
|
|
+ lcd_set_custom_characters_nextpage();
|
|
|
|
+ lcd_set_cursor(19, 3);
|
|
|
|
+ lcd_print(char(2));
|
|
|
|
+ lcd_wait_for_click_delay(10);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
- if (!_result) { // If error on X, error appears after X measurement, else done or error after Y measurement.
|
|
|
|
- lcd_printf_P(_i("Error"));
|
|
|
|
- } else {
|
|
|
|
- lcd_printf_P(_i("Done"));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- lcd_puts_at_P(19,3,char(2)); // Checkmark
|
|
|
|
|
|
+
|
|
FORCE_HIGH_POWER_END;
|
|
FORCE_HIGH_POWER_END;
|
|
-
|
|
|
|
KEEPALIVE_STATE(NOT_BUSY);
|
|
KEEPALIVE_STATE(NOT_BUSY);
|
|
- _delay(3000);
|
|
|
|
|
|
+ lcd_set_custom_characters(); // restore status screen chars.
|
|
}
|
|
}
|
|
#endif //TMC2130
|
|
#endif //TMC2130
|
|
|
|
|