LCD menu optimalization
This commit is contained in:
parent
268d2634f0
commit
b6223d5623
@ -879,7 +879,7 @@ void factory_reset(char level, bool quiet)
|
||||
|
||||
er_progress = 0;
|
||||
lcd_print_at_PGM(3, 3, PSTR(" "));
|
||||
lcd_implementation_print_at(3, 3, er_progress);
|
||||
lcd_print_at(3, 3, er_progress);
|
||||
|
||||
// Erase EEPROM
|
||||
for (int i = 0; i < 4096; i++) {
|
||||
@ -888,7 +888,7 @@ void factory_reset(char level, bool quiet)
|
||||
if (i % 41 == 0) {
|
||||
er_progress++;
|
||||
lcd_print_at_PGM(3, 3, PSTR(" "));
|
||||
lcd_implementation_print_at(3, 3, er_progress);
|
||||
lcd_print_at(3, 3, er_progress);
|
||||
lcd_printPGM(PSTR("%"));
|
||||
}
|
||||
|
||||
@ -2967,7 +2967,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
|
||||
lcd_show_fullscreen_message_and_wait_P(_T(MSG_PAPER));
|
||||
KEEPALIVE_STATE(IN_HANDLER);
|
||||
lcd_display_message_fullscreen_P(_T(MSG_FIND_BED_OFFSET_AND_SKEW_LINE1));
|
||||
lcd_implementation_print_at(0, 2, 1);
|
||||
lcd_print_at(0, 2, 1);
|
||||
lcd_printPGM(_T(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2));
|
||||
}
|
||||
// Move the print head close to the bed.
|
||||
|
@ -890,7 +890,7 @@ void CardReader::presort() {
|
||||
#if !SDSORT_USES_RAM //show progresss bar only if slow sorting method is used
|
||||
int8_t percent = (counter * 100) / total;//((counter * 100) / pow((fileCnt-1),2));
|
||||
for (int column = 0; column < 20; column++) {
|
||||
if (column < (percent / 5)) lcd_implementation_print_at(column, 2, "\x01"); //simple progress bar
|
||||
if (column < (percent / 5)) lcd_print_at(column, 2, "\x01"); //simple progress bar
|
||||
}
|
||||
counter++;
|
||||
#endif
|
||||
@ -965,7 +965,7 @@ void CardReader::presort() {
|
||||
sort_count = fileCnt;
|
||||
}
|
||||
#if !SDSORT_USES_RAM //show progresss bar only if slow sorting method is used
|
||||
for (int column = 0; column <= 19; column++) lcd_implementation_print_at(column, 2, "\x01"); //simple progress bar
|
||||
for (int column = 0; column <= 19; column++) lcd_print_at(column, 2, "\x01"); //simple progress bar
|
||||
delay(300);
|
||||
lcd_set_degree();
|
||||
lcd_implementation_clear();
|
||||
|
126
Firmware/lcd.cpp
126
Firmware/lcd.cpp
@ -46,7 +46,7 @@ void lcd_set_cursor(uint8_t c, uint8_t r)
|
||||
lcd_printf_P(PSTR("\x1b[%hhu;%hhuH"), r, c);
|
||||
}
|
||||
|
||||
void lcd_implementation_quick_feedback(void)
|
||||
void lcd_beeper_quick_feedback(void)
|
||||
{
|
||||
SET_OUTPUT(BEEPER);
|
||||
for(int8_t i = 0; i < 10; i++)
|
||||
@ -62,7 +62,7 @@ void lcd_quick_feedback(void)
|
||||
{
|
||||
lcd_draw_update = 2;
|
||||
lcd_button_pressed = false;
|
||||
lcd_implementation_quick_feedback();
|
||||
lcd_beeper_quick_feedback();
|
||||
}
|
||||
|
||||
int lcd_puts_P(const char* str)
|
||||
@ -284,39 +284,39 @@ void lcd_implementation_write(char c)
|
||||
lcd.write(c);
|
||||
}
|
||||
|
||||
void lcd_implementation_print(int8_t i)
|
||||
void lcd_print(int8_t i)
|
||||
{
|
||||
lcd.print(i);
|
||||
}
|
||||
|
||||
void lcd_implementation_print_at(uint8_t x, uint8_t y, int8_t i)
|
||||
void lcd_print_at(uint8_t x, uint8_t y, int8_t i)
|
||||
{
|
||||
lcd.setCursor(x, y);
|
||||
lcd.print(i);
|
||||
}
|
||||
|
||||
void lcd_implementation_print(int i)
|
||||
void lcd_print(int i)
|
||||
{
|
||||
lcd.print(i);
|
||||
}
|
||||
|
||||
void lcd_implementation_print_at(uint8_t x, uint8_t y, int i)
|
||||
void lcd_print_at(uint8_t x, uint8_t y, int i)
|
||||
{
|
||||
lcd.setCursor(x, y);
|
||||
lcd.print(i);
|
||||
}
|
||||
|
||||
void lcd_implementation_print(float f)
|
||||
void lcd_print(float f)
|
||||
{
|
||||
lcd.print(f);
|
||||
}
|
||||
|
||||
void lcd_implementation_print(const char *str)
|
||||
void lcd_print(const char *str)
|
||||
{
|
||||
lcd.print(str);
|
||||
}
|
||||
|
||||
void lcd_implementation_print_at(uint8_t x, uint8_t y, const char *str)
|
||||
void lcd_print_at(uint8_t x, uint8_t y, const char *str)
|
||||
{
|
||||
lcd.setCursor(x, y);
|
||||
lcd.print(str);
|
||||
@ -331,111 +331,7 @@ void lcd_implementation_print_at(uint8_t x, uint8_t y, const char *str)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, char pre_char, char post_char)
|
||||
{
|
||||
char c;
|
||||
//Use all characters in narrow LCDs
|
||||
#if LCD_WIDTH < 20
|
||||
uint8_t n = LCD_WIDTH - 1 - 1;
|
||||
#else
|
||||
uint8_t n = LCD_WIDTH - 1 - 2;
|
||||
#endif
|
||||
lcd.setCursor(0, row);
|
||||
lcd.print(pre_char);
|
||||
while( ((c = pgm_read_byte(pstr)) != '\0') && (n>0) )
|
||||
{
|
||||
lcd.print(c);
|
||||
pstr++;
|
||||
n--;
|
||||
}
|
||||
while(n--)
|
||||
lcd.print(' ');
|
||||
lcd.print(post_char);
|
||||
lcd.print(' ');
|
||||
}
|
||||
|
||||
void lcd_implementation_drawmenu_generic_RAM(uint8_t row, const char* str, char pre_char, char post_char)
|
||||
{
|
||||
char c;
|
||||
//Use all characters in narrow LCDs
|
||||
#if LCD_WIDTH < 20
|
||||
uint8_t n = LCD_WIDTH - 1 - 1;
|
||||
#else
|
||||
uint8_t n = LCD_WIDTH - 1 - 2;
|
||||
#endif
|
||||
lcd.setCursor(0, row);
|
||||
lcd.print(pre_char);
|
||||
while( ((c = *str) != '\0') && (n>0) )
|
||||
{
|
||||
lcd.print(c);
|
||||
str++;
|
||||
n--;
|
||||
}
|
||||
while(n--)
|
||||
lcd.print(' ');
|
||||
lcd.print(post_char);
|
||||
lcd.print(' ');
|
||||
}
|
||||
|
||||
void lcd_implementation_drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char pre_char, char* data)
|
||||
{
|
||||
char c;
|
||||
//Use all characters in narrow LCDs
|
||||
#if LCD_WIDTH < 20
|
||||
uint8_t n = LCD_WIDTH - 1 - 1 - strlen(data);
|
||||
#else
|
||||
uint8_t n = LCD_WIDTH - 1 - 2 - strlen(data);
|
||||
#endif
|
||||
lcd.setCursor(0, row);
|
||||
lcd.print(pre_char);
|
||||
while( ((c = pgm_read_byte(pstr)) != '\0') && (n>0) )
|
||||
{
|
||||
lcd.print(c);
|
||||
pstr++;
|
||||
n--;
|
||||
}
|
||||
lcd.print(':');
|
||||
while(n--)
|
||||
lcd.print(' ');
|
||||
lcd.print(data);
|
||||
}
|
||||
void lcd_implementation_drawmenu_setting_edit_generic_P(uint8_t row, const char* pstr, char pre_char, const char* data)
|
||||
{
|
||||
char c;
|
||||
//Use all characters in narrow LCDs
|
||||
#if LCD_WIDTH < 20
|
||||
uint8_t n = LCD_WIDTH - 1 - 1 - strlen_P(data);
|
||||
#else
|
||||
uint8_t n = LCD_WIDTH - 1 - 2 - strlen_P(data);
|
||||
#endif
|
||||
lcd.setCursor(0, row);
|
||||
lcd.print(pre_char);
|
||||
while( ((c = pgm_read_byte(pstr)) != '\0') && (n>0) )
|
||||
{
|
||||
lcd.print(c);
|
||||
pstr++;
|
||||
n--;
|
||||
}
|
||||
lcd.print(':');
|
||||
while(n--)
|
||||
lcd.print(' ');
|
||||
lcd_printPGM(data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void lcd_implementation_drawedit(const char* pstr, char* value)
|
||||
void lcd_drawedit(const char* pstr, char* value)
|
||||
{
|
||||
lcd.setCursor(1, 1);
|
||||
lcd_printPGM(pstr);
|
||||
@ -448,7 +344,7 @@ void lcd_implementation_drawedit(const char* pstr, char* value)
|
||||
lcd.print(value);
|
||||
}
|
||||
|
||||
void lcd_implementation_drawedit_2(const char* pstr, char* value)
|
||||
void lcd_drawedit_2(const char* pstr, char* value)
|
||||
{
|
||||
lcd.setCursor(0, 1);
|
||||
lcd_printPGM(pstr);
|
||||
|
@ -50,7 +50,7 @@ extern uint8_t lcd_clicked(void);
|
||||
|
||||
extern void lcd_set_cursor(uint8_t c, uint8_t r);
|
||||
|
||||
extern void lcd_implementation_quick_feedback(void);
|
||||
extern void lcd_beeper_quick_feedback(void);
|
||||
|
||||
//Cause an LCD refresh, and give the user visual or audible feedback that something has happened
|
||||
extern void lcd_quick_feedback(void);
|
||||
@ -168,73 +168,16 @@ extern void lcd_implementation_clear(void);
|
||||
// Arduino < 1.0.0 is missing a function to print PROGMEM strings, so we need to implement our own
|
||||
extern void lcd_printPGM(const char* str);
|
||||
extern void lcd_print_at_PGM(uint8_t x, uint8_t y, const char* str);
|
||||
extern void lcd_implementation_write(char c);
|
||||
extern void lcd_implementation_print(int8_t i);
|
||||
extern void lcd_implementation_print_at(uint8_t x, uint8_t y, int8_t i);
|
||||
extern void lcd_implementation_print(int i);
|
||||
extern void lcd_implementation_print_at(uint8_t x, uint8_t y, int i);
|
||||
extern void lcd_implementation_print(float f);
|
||||
extern void lcd_implementation_print(const char *str);
|
||||
extern void lcd_implementation_print_at(uint8_t x, uint8_t y, const char *str);
|
||||
|
||||
extern void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, char pre_char, char post_char);
|
||||
extern void lcd_implementation_drawmenu_generic_RAM(uint8_t row, const char* str, char pre_char, char post_char);
|
||||
extern void lcd_implementation_drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char pre_char, char* data);
|
||||
extern void lcd_implementation_drawmenu_setting_edit_generic_P(uint8_t row, const char* pstr, char pre_char, const char* data);
|
||||
|
||||
|
||||
extern char *wfac_to_str5(const uint8_t &x);
|
||||
extern char *mres_to_str3(const uint8_t &x);
|
||||
|
||||
#define lcd_implementation_drawmenu_setting_edit_wfac_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', wfac_to_str5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_wfac(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', wfac_to_str5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_mres_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', mres_to_str3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_mres(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', mres_to_str3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_byte3_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', itostr3((uint8_t)*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_byte3(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', itostr3((uint8_t)*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_int3_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', itostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_int3(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', itostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float3_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float3(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float32_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr32(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float32(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr32(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float43_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr43(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float43(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr43(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float5_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float5(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float52_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr52(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float52(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr52(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float51_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr51(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float51(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr51(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_long5_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_long5(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_bool_selected(row, pstr, pstr2, data) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, '>', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
|
||||
#define lcd_implementation_drawmenu_setting_edit_bool(row, pstr, pstr2, data) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, ' ', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
|
||||
|
||||
//Add version for callback functions
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_int3_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', itostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_int3(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', itostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float3_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float3(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float32_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr32(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float32(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr32(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float43_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr43(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float43(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr43(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float5_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float5(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float52_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr52(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float52(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr52(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float51_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr51(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_float51(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr51(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_long5_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_long5(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_bool_selected(row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, '>', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
|
||||
#define lcd_implementation_drawmenu_setting_edit_callback_bool(row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, ' ', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
|
||||
|
||||
|
||||
extern void lcd_implementation_drawedit(const char* pstr, char* value);
|
||||
extern void lcd_implementation_drawedit_2(const char* pstr, char* value);
|
||||
extern void lcd_print(int8_t i);
|
||||
extern void lcd_print_at(uint8_t x, uint8_t y, int8_t i);
|
||||
extern void lcd_print(int i);
|
||||
extern void lcd_print_at(uint8_t x, uint8_t y, int i);
|
||||
extern void lcd_print(float f);
|
||||
extern void lcd_print(const char *str);
|
||||
extern void lcd_print_at(uint8_t x, uint8_t y, const char *str);
|
||||
|
||||
extern void lcd_drawedit(const char* pstr, char* value);
|
||||
extern void lcd_drawedit_2(const char* pstr, char* value);
|
||||
|
||||
|
||||
#endif //_LCD_H
|
||||
|
@ -103,7 +103,7 @@ void menu_submenu(menu_func_t submenu)
|
||||
|
||||
uint8_t menu_item_ret(void)
|
||||
{
|
||||
lcd_implementation_quick_feedback();
|
||||
lcd_beeper_quick_feedback();
|
||||
lcd_draw_update = 2;
|
||||
lcd_button_pressed = false;
|
||||
return 1;
|
||||
|
@ -89,11 +89,10 @@ extern uint8_t menu_item_gcode_P(const char* str, const char* str_gcode);
|
||||
|
||||
|
||||
extern const char menu_fmt_int3[];
|
||||
|
||||
extern void _menu_edit_int3(void);
|
||||
|
||||
#define MENU_ITEM_EDIT_int3_P(str, pval, minval, maxval) do { if (menu_item_edit_int3(str, pval, minval, maxval)) return; } while (0)
|
||||
//#define MENU_ITEM_EDIT_int3_P(str, pval, minval, maxval) MENU_ITEM_EDIT(int3, str, pval, minval, maxval)
|
||||
extern uint8_t menu_item_edit_int3(const char* str, int16_t* pval, int16_t min_val, int16_t max_val);
|
||||
|
||||
|
||||
#endif //_MENU_H
|
||||
|
@ -2204,12 +2204,12 @@ BedSkewOffsetDetectionResultType find_bed_offset_and_skew(int8_t verbosity_level
|
||||
// Don't let the manage_inactivity() function remove power from the motors.
|
||||
refresh_cmd_timeout();
|
||||
#ifdef MESH_BED_CALIBRATION_SHOW_LCD
|
||||
lcd_implementation_print_at(0, next_line, k + 1);
|
||||
lcd_print_at(0, next_line, k + 1);
|
||||
lcd_printPGM(_T(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2));
|
||||
|
||||
if (iteration > 0) {
|
||||
lcd_print_at_PGM(0, next_line + 1, _i("Iteration "));////MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 r=0
|
||||
lcd_implementation_print(int(iteration + 1));
|
||||
lcd_print(int(iteration + 1));
|
||||
}
|
||||
#endif /* MESH_BED_CALIBRATION_SHOW_LCD */
|
||||
float *pt = pts + k * 2;
|
||||
@ -2478,7 +2478,7 @@ BedSkewOffsetDetectionResultType improve_bed_offset_and_skew(int8_t method, int8
|
||||
refresh_cmd_timeout();
|
||||
// Print the decrasing ID of the measurement point.
|
||||
#ifdef MESH_BED_CALIBRATION_SHOW_LCD
|
||||
lcd_implementation_print_at(0, next_line, mesh_point+1);
|
||||
lcd_print_at(0, next_line, mesh_point+1);
|
||||
lcd_printPGM(_T(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2));////MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 r=0
|
||||
#endif /* MESH_BED_CALIBRATION_SHOW_LCD */
|
||||
|
||||
@ -2782,7 +2782,7 @@ bool sample_mesh_and_store_reference()
|
||||
if (next_line > 3)
|
||||
next_line = 3;
|
||||
// display "point xx of yy"
|
||||
lcd_implementation_print_at(0, next_line, 1);
|
||||
lcd_print_at(0, next_line, 1);
|
||||
lcd_printPGM(_T(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2));
|
||||
#endif /* MESH_BED_CALIBRATION_SHOW_LCD */
|
||||
|
||||
@ -2828,7 +2828,7 @@ bool sample_mesh_and_store_reference()
|
||||
go_to_current(homing_feedrate[X_AXIS]/60);
|
||||
#ifdef MESH_BED_CALIBRATION_SHOW_LCD
|
||||
// display "point xx of yy"
|
||||
lcd_implementation_print_at(0, next_line, mesh_point+1);
|
||||
lcd_print_at(0, next_line, mesh_point+1);
|
||||
lcd_printPGM(_T(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2));
|
||||
#endif /* MESH_BED_CALIBRATION_SHOW_LCD */
|
||||
if (!find_bed_induction_sensor_point_z()) //Z crash or deviation > 50um
|
||||
|
@ -234,25 +234,13 @@ static void lcd_delta_calibrate_menu();
|
||||
|
||||
|
||||
/* Different types of actions that can be used in menu items. */
|
||||
static void menu_action_sdfile(const char* filename, char* longFilename);
|
||||
static void menu_action_sddirectory(const char* filename, char* longFilename);
|
||||
static void menu_action_setting_edit_bool(const char* pstr, bool* ptr);
|
||||
static void menu_action_setting_edit_wfac(const char* pstr, uint8_t* ptr, uint8_t minValue, uint8_t maxValue);
|
||||
static void menu_action_setting_edit_mres(const char* pstr, uint8_t* ptr, uint8_t minValue, uint8_t maxValue);
|
||||
static void menu_action_setting_edit_byte3(const char* pstr, uint8_t* ptr, uint8_t minValue, uint8_t maxValue);
|
||||
static void menu_action_setting_edit_int3(const char* pstr, int* ptr, int minValue, int maxValue);
|
||||
static void menu_action_setting_edit_float3(const char* pstr, float* ptr, float minValue, float maxValue);
|
||||
static void menu_action_setting_edit_float32(const char* pstr, float* ptr, float minValue, float maxValue);
|
||||
static void menu_action_setting_edit_float43(const char* pstr, float* ptr, float minValue, float maxValue);
|
||||
static void menu_action_setting_edit_float5(const char* pstr, float* ptr, float minValue, float maxValue);
|
||||
static void menu_action_setting_edit_float51(const char* pstr, float* ptr, float minValue, float maxValue);
|
||||
static void menu_action_setting_edit_float52(const char* pstr, float* ptr, float minValue, float maxValue);
|
||||
static void menu_action_setting_edit_long5(const char* pstr, unsigned long* ptr, unsigned long minValue, unsigned long maxValue);
|
||||
void menu_action_sdfile(const char* filename, char* longFilename);
|
||||
void menu_action_sddirectory(const char* filename, char* longFilename);
|
||||
|
||||
#define ENCODER_FEEDRATE_DEADZONE 10
|
||||
|
||||
|
||||
|
||||
/*
|
||||
#define MENU_ITEM(type, label, args...) do { \
|
||||
if (menu_item == menu_line) { \
|
||||
if (lcd_draw_update) { \
|
||||
@ -271,8 +259,7 @@ static void menu_action_setting_edit_long5(const char* pstr, unsigned long* ptr,
|
||||
}\
|
||||
menu_item++;\
|
||||
} while(0)
|
||||
|
||||
#define MENU_ITEM_EDIT(type, label, args...) MENU_ITEM(setting_edit_ ## type, label, (label) , ## args )
|
||||
*/
|
||||
|
||||
#if (SDCARDDETECT > 0)
|
||||
bool lcd_oldcardstatus;
|
||||
@ -349,7 +336,7 @@ static inline void lcd_print_time() {
|
||||
}
|
||||
|
||||
|
||||
static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char* pstr, const char* filename, char* longFilename)
|
||||
void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char* pstr, const char* filename, char* longFilename)
|
||||
{
|
||||
char c;
|
||||
int enc_dif = lcd_encoder_diff;
|
||||
@ -401,7 +388,7 @@ static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char*
|
||||
while(n--)
|
||||
lcd.print(' ');
|
||||
}
|
||||
static void lcd_implementation_drawmenu_sdfile(uint8_t row, const char* pstr, const char* filename, char* longFilename)
|
||||
void lcd_implementation_drawmenu_sdfile(uint8_t row, const char* pstr, const char* filename, char* longFilename)
|
||||
{
|
||||
char c;
|
||||
uint8_t n = LCD_WIDTH - 1;
|
||||
@ -421,7 +408,7 @@ static void lcd_implementation_drawmenu_sdfile(uint8_t row, const char* pstr, co
|
||||
while(n--)
|
||||
lcd.print(' ');
|
||||
}
|
||||
static void lcd_implementation_drawmenu_sddirectory_selected(uint8_t row, const char* pstr, const char* filename, char* longFilename)
|
||||
void lcd_implementation_drawmenu_sddirectory_selected(uint8_t row, const char* pstr, const char* filename, char* longFilename)
|
||||
{
|
||||
char c;
|
||||
uint8_t n = LCD_WIDTH - 2;
|
||||
@ -442,7 +429,7 @@ static void lcd_implementation_drawmenu_sddirectory_selected(uint8_t row, const
|
||||
while(n--)
|
||||
lcd.print(' ');
|
||||
}
|
||||
static void lcd_implementation_drawmenu_sddirectory(uint8_t row, const char* pstr, const char* filename, char* longFilename)
|
||||
void lcd_implementation_drawmenu_sddirectory(uint8_t row, const char* pstr, const char* filename, char* longFilename)
|
||||
{
|
||||
char c;
|
||||
uint8_t n = LCD_WIDTH - 2;
|
||||
@ -466,17 +453,18 @@ static void lcd_implementation_drawmenu_sddirectory(uint8_t row, const char* pst
|
||||
|
||||
|
||||
|
||||
//#define MENU_ITEM_SDDIR(str, str_fn, str_fnl) do { if (menu_item_sddir(str, str_fn, str_fnl)) return; } while (0)
|
||||
#define MENU_ITEM_SDDIR(str, str_fn, str_fnl) MENU_ITEM(sddirectory, str, str_fn, str_fnl)
|
||||
#define MENU_ITEM_SDDIR(str, str_fn, str_fnl) do { if (menu_item_sddir(str, str_fn, str_fnl)) return; } while (0)
|
||||
//#define MENU_ITEM_SDDIR(str, str_fn, str_fnl) MENU_ITEM(sddirectory, str, str_fn, str_fnl)
|
||||
//extern uint8_t menu_item_sddir(const char* str, const char* str_fn, char* str_fnl);
|
||||
|
||||
//#define MENU_ITEM_SDFILE(str, str_fn, str_fnl) do { if (menu_item_sdfile(str, str_fn, str_fnl)) return; } while (0)
|
||||
#define MENU_ITEM_SDFILE(str, str_fn, str_fnl) MENU_ITEM(sdfile, str, str_fn, str_fnl)
|
||||
#define MENU_ITEM_SDFILE(str, str_fn, str_fnl) do { if (menu_item_sdfile(str, str_fn, str_fnl)) return; } while (0)
|
||||
//#define MENU_ITEM_SDFILE(str, str_fn, str_fnl) MENU_ITEM(sdfile, str, str_fn, str_fnl)
|
||||
//extern uint8_t menu_item_sdfile(const char* str, const char* str_fn, char* str_fnl);
|
||||
|
||||
|
||||
uint8_t menu_item_sddir(const char* str, const char* str_fn, char* str_fnl)
|
||||
{
|
||||
#ifdef NEW_SD_MENU
|
||||
// str_fnl[18] = 0;
|
||||
// printf_P(PSTR("menu dir %d '%s' '%s'\n"), menu_row, str_fn, str_fnl);
|
||||
if (menu_item == menu_line)
|
||||
@ -499,10 +487,32 @@ uint8_t menu_item_sddir(const char* str, const char* str_fn, char* str_fnl)
|
||||
}
|
||||
menu_item++;
|
||||
return 0;
|
||||
#else //NEW_SD_MENU
|
||||
if (menu_item == menu_line)
|
||||
{
|
||||
if (lcd_draw_update)
|
||||
{
|
||||
if (lcd_encoder == menu_item)
|
||||
lcd_implementation_drawmenu_sddirectory_selected(menu_row, str, str_fn, str_fnl);
|
||||
else
|
||||
lcd_implementation_drawmenu_sddirectory(menu_row, str, str_fn, str_fnl);
|
||||
}
|
||||
if (menu_clicked && (lcd_encoder == menu_item))
|
||||
{
|
||||
menu_clicked = false;
|
||||
menu_action_sddirectory(str_fn, str_fnl);
|
||||
return menu_item_ret();
|
||||
}
|
||||
}
|
||||
menu_item++;
|
||||
return 0;
|
||||
|
||||
#endif //NEW_SD_MENU
|
||||
}
|
||||
|
||||
uint8_t menu_item_sdfile(const char* str, const char* str_fn, char* str_fnl)
|
||||
{
|
||||
#ifdef NEW_SD_MENU
|
||||
// printf_P(PSTR("menu sdfile\n"));
|
||||
// str_fnl[19] = 0;
|
||||
// printf_P(PSTR("menu file %d '%s' '%s'\n"), menu_row, str_fn, str_fnl);
|
||||
@ -541,6 +551,25 @@ uint8_t menu_item_sdfile(const char* str, const char* str_fn, char* str_fnl)
|
||||
}
|
||||
menu_item++;
|
||||
return 0;
|
||||
#else //NEW_SD_MENU
|
||||
if (menu_item == menu_line)
|
||||
{
|
||||
if (lcd_draw_update)
|
||||
{
|
||||
if (lcd_encoder == menu_item)
|
||||
lcd_implementation_drawmenu_sdfile_selected(menu_row, str, str_fn, str_fnl);
|
||||
else
|
||||
lcd_implementation_drawmenu_sdfile(menu_row, str, str_fn, str_fnl);
|
||||
}
|
||||
if (menu_clicked && (lcd_encoder == menu_item))
|
||||
{
|
||||
menu_action_sdfile(str_fn, str_fnl);
|
||||
return menu_item_ret();
|
||||
}
|
||||
}
|
||||
menu_item++;
|
||||
return 0;
|
||||
#endif //NEW_SD_MENU
|
||||
}
|
||||
|
||||
|
||||
@ -1049,13 +1078,13 @@ static void lcd_status_screen()
|
||||
//#define FSENS_FACTOR (2580.8/50) //filament sensor factor [steps / encoder counts]
|
||||
//#define FSENS_FACTOR (2580.8/45.3) //filament sensor factor [steps / encoder counts]
|
||||
//lcd.setCursor(0, 3);
|
||||
//lcd_implementation_print(" ");
|
||||
//lcd_print(" ");
|
||||
//lcd.setCursor(0, 3);
|
||||
//lcd_implementation_print(pat9125_x);
|
||||
//lcd_print(pat9125_x);
|
||||
//lcd.setCursor(6, 3);
|
||||
//lcd_implementation_print(pat9125_y);
|
||||
//lcd_print(pat9125_y);
|
||||
//lcd.setCursor(12, 3);
|
||||
//lcd_implementation_print(pat9125_b);
|
||||
//lcd_print(pat9125_b);
|
||||
|
||||
}
|
||||
|
||||
@ -2601,7 +2630,7 @@ static void _lcd_move(const char *name, int axis, int min, int max) {
|
||||
lcd_draw_update = 1;
|
||||
}
|
||||
}
|
||||
if (lcd_draw_update) lcd_implementation_drawedit(name, ftostr31(current_position[axis]));
|
||||
if (lcd_draw_update) lcd_drawedit(name, ftostr31(current_position[axis]));
|
||||
if (menuExiting || LCD_CLICKED) (void)enable_endstops(menuData._lcd_moveMenu.endstopsEnabledPrevious);
|
||||
if (LCD_CLICKED) menu_back();
|
||||
}
|
||||
@ -2622,7 +2651,7 @@ static void lcd_move_e()
|
||||
}
|
||||
if (lcd_draw_update)
|
||||
{
|
||||
lcd_implementation_drawedit(PSTR("Extruder"), ftostr31(current_position[E_AXIS]));
|
||||
lcd_drawedit(PSTR("Extruder"), ftostr31(current_position[E_AXIS]));
|
||||
}
|
||||
if (LCD_CLICKED) menu_back();
|
||||
}
|
||||
@ -2813,7 +2842,7 @@ static void _lcd_babystep(int axis, const char *msg)
|
||||
lcd_draw_update = 1;
|
||||
}
|
||||
if (lcd_draw_update)
|
||||
lcd_implementation_drawedit_2(msg, ftostr13ns(menuData.babyStep.babystepMemMM[axis]));
|
||||
lcd_drawedit_2(msg, ftostr13ns(menuData.babyStep.babystepMemMM[axis]));
|
||||
if (LCD_CLICKED || menuExiting) {
|
||||
// Only update the EEPROM when leaving the menu.
|
||||
EEPROM_save_B(
|
||||
@ -3156,12 +3185,12 @@ calibrated:
|
||||
|
||||
if(only_z){
|
||||
lcd_display_message_fullscreen_P(_T(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1));
|
||||
lcd_implementation_print_at(0, 3, 1);
|
||||
lcd_print_at(0, 3, 1);
|
||||
lcd_printPGM(_T(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2));
|
||||
}else{
|
||||
//lcd_show_fullscreen_message_and_wait_P(_T(MSG_PAPER));
|
||||
lcd_display_message_fullscreen_P(_T(MSG_FIND_BED_OFFSET_AND_SKEW_LINE1));
|
||||
lcd_implementation_print_at(0, 2, 1);
|
||||
lcd_print_at(0, 2, 1);
|
||||
lcd_printPGM(_T(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2));
|
||||
}
|
||||
|
||||
@ -4240,7 +4269,7 @@ void lcd_calibrate_pinda() {
|
||||
axis_steps_per_unit[E_AXIS] = e_steps_per_unit;
|
||||
enquecommand_P(PSTR("M500")); //store settings to eeprom
|
||||
|
||||
//lcd_implementation_drawedit(PSTR("Result"), ftostr31(axis_steps_per_unit[E_AXIS]));
|
||||
//lcd_drawedit(PSTR("Result"), ftostr31(axis_steps_per_unit[E_AXIS]));
|
||||
//delay_keep_alive(2000);
|
||||
delay_keep_alive(500);
|
||||
lcd_show_fullscreen_message_and_wait_P(_i("E calibration finished. Please clean the nozzle. Click when done."));////MSG_CLEAN_NOZZLE_E c=20 r=8
|
||||
@ -4502,18 +4531,33 @@ void lcd_wizard(int state) {
|
||||
lcd_update(2);
|
||||
}
|
||||
|
||||
void lcd_settings_linearity_correction_menu(void)
|
||||
{
|
||||
MENU_BEGIN();
|
||||
if (menu_item_back_P(_T(MSG_MAIN)))
|
||||
{
|
||||
lcd_settings_menu_back();
|
||||
return;
|
||||
}
|
||||
// MENU_ITEM_BACK_P(_T(MSG_SETTINGS));
|
||||
#ifdef TMC2130_LINEARITY_CORRECTION_XYZ
|
||||
//tmc2130_wave_fac[X_AXIS]
|
||||
int corr[4] = {tmc2130_wave_fac[X_AXIS], tmc2130_wave_fac[Y_AXIS], tmc2130_wave_fac[Z_AXIS], tmc2130_wave_fac[E_AXIS]};
|
||||
|
||||
MENU_ITEM_EDIT_int3_P(_i("X-correct"), &corr[X_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0
|
||||
MENU_ITEM_EDIT_int3_P(_i("Y-correct"), &corr[Y_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0
|
||||
MENU_ITEM_EDIT_int3_P(_i("Z-correct"), &corr[Z_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0
|
||||
#endif //TMC2130_LINEARITY_CORRECTION_XYZ
|
||||
MENU_ITEM_EDIT_int3_P(_i("E-correct"), &corr[E_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0
|
||||
MENU_END();
|
||||
}
|
||||
|
||||
static void lcd_settings_menu()
|
||||
{
|
||||
EEPROM_read(EEPROM_SILENT, (uint8_t*)&SilentModeMenu, sizeof(SilentModeMenu));
|
||||
MENU_BEGIN();
|
||||
MENU_ITEM_BACK_P(_T(MSG_MAIN));
|
||||
|
||||
if (menu_item_back_P(_T(MSG_MAIN)))
|
||||
{
|
||||
lcd_settings_menu_back();
|
||||
return;
|
||||
}
|
||||
|
||||
MENU_ITEM_SUBMENU_P(_i("Temperature"), lcd_control_temperature_menu);////MSG_TEMPERATURE c=0 r=0
|
||||
if (!homing_flag)
|
||||
@ -4584,12 +4628,7 @@ static void lcd_settings_menu()
|
||||
else MENU_ITEM_SUBMENU_P(_T(MSG_CRASHDETECT_NA), lcd_crash_mode_info);
|
||||
}
|
||||
|
||||
#ifdef TMC2130_LINEARITY_CORRECTION_XYZ
|
||||
MENU_ITEM_EDIT(wfac, _i("X-correct"), &tmc2130_wave_fac[X_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0
|
||||
MENU_ITEM_EDIT(wfac, _i("Y-correct"), &tmc2130_wave_fac[Y_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0
|
||||
MENU_ITEM_EDIT(wfac, _i("Z-correct"), &tmc2130_wave_fac[Z_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0
|
||||
#endif //TMC2130_LINEARITY_CORRECTION_XYZ
|
||||
MENU_ITEM_EDIT(wfac, _i("E-correct"), &tmc2130_wave_fac[E_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0
|
||||
MENU_ITEM_SUBMENU_P(_i("Lin. correction"), lcd_settings_linearity_correction_menu);
|
||||
#endif //TMC2130
|
||||
|
||||
if (temp_cal_active == false) {
|
||||
@ -5964,11 +6003,6 @@ static void lcd_control_temperature_menu()
|
||||
MENU_BEGIN();
|
||||
MENU_ITEM_BACK_P(_T(MSG_SETTINGS));
|
||||
#if TEMP_SENSOR_0 != 0
|
||||
//MENU_ITEM_EDIT_P_int16
|
||||
/* if (menu_item_edit_int3(_T(MSG_NOZZLE), &target_temperature[0], 0, HEATER_0_MAXTEMP - 10))
|
||||
{
|
||||
return;
|
||||
}*/
|
||||
MENU_ITEM_EDIT_int3_P(_T(MSG_NOZZLE), &target_temperature[0], 0, HEATER_0_MAXTEMP - 10);
|
||||
#endif
|
||||
#if TEMP_SENSOR_1 != 0
|
||||
@ -5982,6 +6016,7 @@ static void lcd_control_temperature_menu()
|
||||
#endif
|
||||
MENU_ITEM_EDIT_int3_P(_T(MSG_FAN_SPEED), &fanSpeed, 0, 255);
|
||||
#if defined AUTOTEMP && (TEMP_SENSOR_0 != 0)
|
||||
//MENU_ITEM_EDIT removed, following code must be redesigned if AUTOTEMP enabled
|
||||
MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &autotemp_enabled);
|
||||
MENU_ITEM_EDIT(float3, _i(" \002 Min"), &autotemp_min, 0, HEATER_0_MAXTEMP - 10);////MSG_MIN c=0 r=0
|
||||
MENU_ITEM_EDIT(float3, _i(" \002 Max"), &autotemp_max, 0, HEATER_0_MAXTEMP - 10);////MSG_MAX c=0 r=0
|
||||
@ -6071,35 +6106,6 @@ void lcd_sdcard_stop()
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
void getFileDescription(char *name, char *description) {
|
||||
// get file description, ie the REAL filenam, ie the second line
|
||||
card.openFile(name, true);
|
||||
int i = 0;
|
||||
// skip the first line (which is the version line)
|
||||
while (true) {
|
||||
uint16_t readByte = card.get();
|
||||
if (readByte == '\n') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
// read the second line (which is the description line)
|
||||
while (true) {
|
||||
uint16_t readByte = card.get();
|
||||
if (i == 0) {
|
||||
// skip the first '^'
|
||||
readByte = card.get();
|
||||
}
|
||||
description[i] = readByte;
|
||||
i++;
|
||||
if (readByte == '\n') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
card.closefile();
|
||||
description[i-1] = 0;
|
||||
}
|
||||
*/
|
||||
|
||||
void lcd_sdcard_menu()
|
||||
{
|
||||
@ -6156,137 +6162,6 @@ void lcd_sdcard_menu()
|
||||
MENU_END();
|
||||
}
|
||||
|
||||
//char description [10] [31];
|
||||
|
||||
/*void get_description() {
|
||||
uint16_t fileCnt = card.getnrfilenames();
|
||||
for (uint16_t i = 0; i < fileCnt; i++)
|
||||
{
|
||||
card.getfilename(fileCnt - 1 - i);
|
||||
getFileDescription(card.filename, description[i]);
|
||||
}
|
||||
}*/
|
||||
|
||||
/*void lcd_farm_sdcard_menu()
|
||||
{
|
||||
static int i = 0;
|
||||
if (i == 0) {
|
||||
get_description();
|
||||
i++;
|
||||
}
|
||||
//int j;
|
||||
//char description[31];
|
||||
int tempScrool = 0;
|
||||
if (lcd_draw_update == 0 && LCD_CLICKED == 0)
|
||||
//delay(100);
|
||||
return; // nothing to do (so don't thrash the SD card)
|
||||
uint16_t fileCnt = card.getnrfilenames();
|
||||
|
||||
MENU_BEGIN();
|
||||
MENU_ITEM_BACK_P(_T(MSG_MAIN));
|
||||
card.getWorkDirName();
|
||||
if (card.filename[0] == '/')
|
||||
{
|
||||
#if SDCARDDETECT == -1
|
||||
MENU_ITEM_FUNCTION_P(_T(MSG_REFRESH), lcd_sd_refresh);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
MENU_ITEM_FUNCTION_P(PSTR(LCD_STR_FOLDER ".."), lcd_sd_updir);
|
||||
}
|
||||
|
||||
|
||||
|
||||
for (uint16_t i = 0; i < fileCnt; i++)
|
||||
{
|
||||
if (menu_item == menu_line)
|
||||
{
|
||||
#ifndef SDCARD_RATHERRECENTFIRST
|
||||
card.getfilename(i);
|
||||
#else
|
||||
card.getfilename(fileCnt - 1 - i);
|
||||
#endif
|
||||
if (card.filenameIsDir)
|
||||
{
|
||||
MENU_ITEM_SDDIR(_T(MSG_CARD_MENU), card.filename, card.longFilename);
|
||||
}
|
||||
else {
|
||||
|
||||
MENU_ITEM_SDFILE(_T(MSG_CARD_MENU), card.filename, description[i]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
MENU_ITEM_DUMMY();
|
||||
}
|
||||
}
|
||||
MENU_END();
|
||||
|
||||
}*/
|
||||
|
||||
#define menu_edit_type(_type, _name, _strFunc, scale) \
|
||||
void menu_edit_ ## _name () \
|
||||
{ \
|
||||
if ((int32_t)lcd_encoder < 0) lcd_encoder = 0; \
|
||||
if ((int32_t)lcd_encoder > menuData.editMenuParentState.maxEditValue) lcd_encoder = menuData.editMenuParentState.maxEditValue; \
|
||||
if (lcd_draw_update) \
|
||||
lcd_implementation_drawedit(menuData.editMenuParentState.editLabel, _strFunc(((_type)((int32_t)lcd_encoder + menuData.editMenuParentState.minEditValue)) / scale)); \
|
||||
if (LCD_CLICKED) \
|
||||
{ \
|
||||
*((_type*)menuData.editMenuParentState.editValue) = ((_type)((int32_t)lcd_encoder + menuData.editMenuParentState.minEditValue)) / scale; \
|
||||
menu_goto(menuData.editMenuParentState.prevMenu, menuData.editMenuParentState.prevEncoderPosition, true, false); \
|
||||
} \
|
||||
} \
|
||||
static void menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) \
|
||||
{ \
|
||||
asm("cli"); \
|
||||
menuData.editMenuParentState.prevMenu = menu_menu; \
|
||||
menuData.editMenuParentState.prevEncoderPosition = lcd_encoder; \
|
||||
asm("sei"); \
|
||||
\
|
||||
lcd_draw_update = 2; \
|
||||
menuData.editMenuParentState.editLabel = pstr; \
|
||||
menuData.editMenuParentState.editValue = ptr; \
|
||||
menuData.editMenuParentState.minEditValue = minValue * scale; \
|
||||
menuData.editMenuParentState.maxEditValue = maxValue * scale - menuData.editMenuParentState.minEditValue; \
|
||||
menu_goto(menu_edit_ ## _name, (*ptr) * scale - menuData.editMenuParentState.minEditValue, true, false); \
|
||||
\
|
||||
}\
|
||||
|
||||
#ifdef TMC2130
|
||||
extern char conv[8];
|
||||
// Convert tmc2130 mres to string
|
||||
char *mres_to_str3(const uint8_t &x)
|
||||
{
|
||||
return itostr3(256 >> x);
|
||||
}
|
||||
menu_edit_type(uint8_t, mres, mres_to_str3, 1)
|
||||
// Convert tmc2130 wfac to string
|
||||
char *wfac_to_str5(const uint8_t &x)
|
||||
{
|
||||
if (x >= TMC2130_WAVE_FAC1000_MIN)
|
||||
{
|
||||
conv[0] = '[';
|
||||
ftostr43(((float)((uint16_t)x + 1000) / 1000), 1);
|
||||
}
|
||||
else strncpy_P(conv, _i(" [off"), 6);////MSG_EXTRUDER_CORRECTION_OFF c=6 r=0
|
||||
conv[6] = ']';
|
||||
conv[7] = ' ';
|
||||
conv[8] = 0;
|
||||
return conv;
|
||||
}
|
||||
menu_edit_type(uint8_t, wfac, wfac_to_str5, 1)
|
||||
#endif //TMC2130
|
||||
|
||||
menu_edit_type(uint8_t, byte3, itostr3, 1)
|
||||
menu_edit_type(int, int3, itostr3, 1)
|
||||
menu_edit_type(float, float3, ftostr3, 1)
|
||||
menu_edit_type(float, float32, ftostr32, 100)
|
||||
menu_edit_type(float, float43, ftostr43, 1000)
|
||||
menu_edit_type(float, float5, ftostr5, 0.01)
|
||||
menu_edit_type(float, float51, ftostr51, 10)
|
||||
menu_edit_type(float, float52, ftostr52, 100)
|
||||
menu_edit_type(unsigned long, long5, ftostr5, 0.01)
|
||||
|
||||
static void lcd_selftest_v()
|
||||
{
|
||||
(void)lcd_selftest();
|
||||
@ -6880,7 +6755,7 @@ static bool lcd_selfcheck_check_heater(bool _isbed)
|
||||
}
|
||||
static void lcd_selftest_error(int _error_no, const char *_error_1, const char *_error_2)
|
||||
{
|
||||
lcd_implementation_quick_feedback();
|
||||
lcd_beeper_quick_feedback();
|
||||
|
||||
target_temperature[0] = 0;
|
||||
target_temperature_bed = 0;
|
||||
@ -6983,7 +6858,7 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char *
|
||||
}
|
||||
|
||||
delay(1000);
|
||||
lcd_implementation_quick_feedback();
|
||||
lcd_beeper_quick_feedback();
|
||||
|
||||
do {
|
||||
delay(100);
|
||||
@ -7289,7 +7164,7 @@ static bool check_file(const char* filename) {
|
||||
|
||||
}
|
||||
|
||||
static void menu_action_sdfile(const char* filename, char* longFilename)
|
||||
void menu_action_sdfile(const char* filename, char* longFilename)
|
||||
{
|
||||
loading_flag = false;
|
||||
char cmd[30];
|
||||
@ -7333,7 +7208,8 @@ static void menu_action_sdfile(const char* filename, char* longFilename)
|
||||
|
||||
lcd_return_to_status();
|
||||
}
|
||||
static void menu_action_sddirectory(const char* filename, char* longFilename)
|
||||
|
||||
void menu_action_sddirectory(const char* filename, char* longFilename)
|
||||
{
|
||||
uint8_t depth = (uint8_t)card.getWorkDirDepth();
|
||||
|
||||
@ -7342,10 +7218,6 @@ static void menu_action_sddirectory(const char* filename, char* longFilename)
|
||||
card.chdir(filename);
|
||||
lcd_encoder = 0;
|
||||
}
|
||||
static void menu_action_setting_edit_bool(const char* pstr, bool* ptr)
|
||||
{
|
||||
*ptr = !(*ptr);
|
||||
}
|
||||
|
||||
/** LCD API **/
|
||||
|
||||
@ -7402,9 +7274,9 @@ static void lcd_connect_printer() {
|
||||
int i = 0;
|
||||
int t = 0;
|
||||
lcd_set_custom_characters_progress();
|
||||
lcd_implementation_print_at(0, 0, "Connect printer to");
|
||||
lcd_implementation_print_at(0, 1, "monitoring or hold");
|
||||
lcd_implementation_print_at(0, 2, "the knob to continue");
|
||||
lcd_print_at(0, 0, "Connect printer to");
|
||||
lcd_print_at(0, 1, "monitoring or hold");
|
||||
lcd_print_at(0, 2, "the knob to continue");
|
||||
while (no_response) {
|
||||
i++;
|
||||
t++;
|
||||
@ -7416,9 +7288,9 @@ static void lcd_connect_printer() {
|
||||
}
|
||||
if (READ(BTN_ENC)) { //if button is not pressed
|
||||
i = 0;
|
||||
lcd_implementation_print_at(0, 3, " ");
|
||||
lcd_print_at(0, 3, " ");
|
||||
}
|
||||
if (i!=0) lcd_implementation_print_at((i * 20) / (NC_BUTTON_LONG_PRESS * 10), 3, "\x01");
|
||||
if (i!=0) lcd_print_at((i * 20) / (NC_BUTTON_LONG_PRESS * 10), 3, "\x01");
|
||||
if (i == NC_BUTTON_LONG_PRESS * 10) {
|
||||
no_response = false;
|
||||
}
|
||||
|
@ -155,14 +155,13 @@ char *ftostr52(const float &x);
|
||||
extern void lcd_implementation_clear();
|
||||
extern void lcd_printPGM(const char* str);
|
||||
extern void lcd_print_at_PGM(uint8_t x, uint8_t y, const char* str);
|
||||
extern void lcd_implementation_write(char c);
|
||||
extern void lcd_implementation_print(const char *str);
|
||||
extern void lcd_implementation_print(int8_t i);
|
||||
extern void lcd_implementation_print_at(uint8_t x, uint8_t y, int8_t i);
|
||||
extern void lcd_implementation_print(int i);
|
||||
extern void lcd_implementation_print_at(uint8_t x, uint8_t y, int i);
|
||||
extern void lcd_implementation_print(float f);
|
||||
extern void lcd_implementation_print_at(uint8_t x, uint8_t y, const char *str);
|
||||
extern void lcd_print(const char *str);
|
||||
extern void lcd_print(int8_t i);
|
||||
extern void lcd_print_at(uint8_t x, uint8_t y, int8_t i);
|
||||
extern void lcd_print(int i);
|
||||
extern void lcd_print_at(uint8_t x, uint8_t y, int i);
|
||||
extern void lcd_print(float f);
|
||||
extern void lcd_print_at(uint8_t x, uint8_t y, const char *str);
|
||||
|
||||
|
||||
void change_extr(int extr);
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "Configuration.h"
|
||||
|
||||
#include "lcd.h"
|
||||
#include "ultralcd.h"
|
||||
#include "language.h"
|
||||
#include "util.h"
|
||||
@ -292,7 +293,7 @@ bool show_upgrade_dialog_if_version_newer(const char *version_string)
|
||||
lcd_display_message_fullscreen_P(_i("New firmware version available:"));////MSG_NEW_FIRMWARE_AVAILABLE c=20 r=2
|
||||
lcd_print_at_PGM(0, 2, PSTR(""));
|
||||
for (const char *c = version_string; ! is_whitespace_or_nl_or_eol(*c); ++ c)
|
||||
lcd_implementation_write(*c);
|
||||
lcd_putc(*c);
|
||||
lcd_print_at_PGM(0, 3, _i("Please upgrade."));////MSG_NEW_FIRMWARE_PLEASE_UPGRADE c=20 r=0
|
||||
tone(BEEPER, 1000);
|
||||
delay_keep_alive(50);
|
||||
|
Loading…
Reference in New Issue
Block a user