Merge pull request #8122 from Bob-the-Kuhn/2.0.x-restore-Re-ARM-RepRap-Discount-Full-Graphics-fix-(partial-solution)
2.0.x - Restore fix for garbaged display on Re-ARM with RepRap Full Graphics Smart Controller
This commit is contained in:
commit
6e5f13a5c2
|
@ -3775,7 +3775,9 @@ void kill_screen(const char* lcd_msg) {
|
|||
void lcd_sdcard_menu() {
|
||||
ENCODER_DIRECTION_MENUS();
|
||||
|
||||
const uint16_t fileCnt = card.getnrfilenames();
|
||||
const uint16_t fileCnt = card.get_num_Files(); // Only access SD card if sort not active
|
||||
// This minimizes garbage on RepRap Discount Full Graphics Smart Controller
|
||||
// when using the Re-ARM card.
|
||||
START_MENU();
|
||||
MENU_BACK(MSG_MAIN);
|
||||
card.getWorkDirName();
|
||||
|
|
|
@ -112,6 +112,25 @@
|
|||
#define ENET_TXD0 P1_0
|
||||
#define ENET_TXD1 P1_1
|
||||
|
||||
|
||||
#if (ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) && !defined(SDCARD_SORT_ALPHA)) // needed because of shared SPI
|
||||
#define SDCARD_SORT_ALPHA // Using SORT feature to keep one directory level in RAM
|
||||
// When going up/down directory levels the SD card is
|
||||
// accessed but the garbage/lines are removed when the
|
||||
// LCD updates
|
||||
|
||||
#define SDSORT_LIMIT 256 // Maximum number of sorted items (10-256). Costs 27 bytes each.
|
||||
#define FOLDER_SORTING -1 // -1=above 0=none 1=below
|
||||
#define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M34 g-code.
|
||||
#define SDSORT_USES_RAM true // Pre-allocate a static array for faster pre-sorting.
|
||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||
#define SDSORT_CACHE_NAMES true // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||
#define SDSORT_CACHE_VFATS 2 // Maximum number of 13-byte VFAT entries to use for sorting.
|
||||
// Note: Only affects SCROLL_LONG_FILENAMES with SDSORT_CACHE_NAMES but not SDSORT_DYNAMIC_RAM.
|
||||
#define MAX_VFAT_ENTRIES SDSORT_CACHE_VFATS
|
||||
#endif
|
||||
|
||||
/**
|
||||
* PWMs
|
||||
*
|
||||
|
|
|
@ -174,6 +174,25 @@
|
|||
#define ENET_TXD0 P1_0 // J12-11
|
||||
#define ENET_TXD1 P1_1 // J12-12
|
||||
|
||||
|
||||
#if (ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) && !defined(SDCARD_SORT_ALPHA)) // needed because of shared SPI
|
||||
#define SDCARD_SORT_ALPHA // Using SORT feature to keep one directory level in RAM
|
||||
// When going up/down directory levels the SD card is
|
||||
// accessed but the garbage/lines are removed when the
|
||||
// LCD updates
|
||||
|
||||
#define SDSORT_LIMIT 256 // Maximum number of sorted items (10-256). Costs 27 bytes each.
|
||||
#define FOLDER_SORTING -1 // -1=above 0=none 1=below
|
||||
#define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M34 g-code.
|
||||
#define SDSORT_USES_RAM true // Pre-allocate a static array for faster pre-sorting.
|
||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||
#define SDSORT_CACHE_NAMES true // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||
#define SDSORT_CACHE_VFATS 2 // Maximum number of 13-byte VFAT entries to use for sorting.
|
||||
// Note: Only affects SCROLL_LONG_FILENAMES with SDSORT_CACHE_NAMES but not SDSORT_DYNAMIC_RAM.
|
||||
#define MAX_VFAT_ENTRIES SDSORT_CACHE_VFATS
|
||||
#endif
|
||||
|
||||
/**
|
||||
* PWMs
|
||||
*
|
||||
|
|
|
@ -259,6 +259,24 @@
|
|||
//#define SHIFT_EN P1_22 // J5-4 & AUX-4
|
||||
#endif
|
||||
|
||||
#if (ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) && !defined(SDCARD_SORT_ALPHA)) // needed because of shared SPI
|
||||
#define SDCARD_SORT_ALPHA // Using SORT feature to keep one directory level in RAM
|
||||
// When going up/down directory levels the SD card is
|
||||
// accessed but the garbage/lines are removed when the
|
||||
// LCD updates
|
||||
|
||||
#define SDSORT_LIMIT 256 // Maximum number of sorted items (10-256). Costs 27 bytes each.
|
||||
#define FOLDER_SORTING -1 // -1=above 0=none 1=below
|
||||
#define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M34 g-code.
|
||||
#define SDSORT_USES_RAM true // Pre-allocate a static array for faster pre-sorting.
|
||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||
#define SDSORT_CACHE_NAMES true // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||
#define SDSORT_CACHE_VFATS 2 // Maximum number of 13-byte VFAT entries to use for sorting.
|
||||
// Note: Only affects SCROLL_LONG_FILENAMES with SDSORT_CACHE_NAMES but not SDSORT_DYNAMIC_RAM.
|
||||
#define MAX_VFAT_ENTRIES SDSORT_CACHE_VFATS
|
||||
#endif
|
||||
|
||||
#if ENABLED(VIKI2) || ENABLED(miniVIKI)
|
||||
// #define LCD_SCREEN_ROT_180
|
||||
|
||||
|
|
|
@ -134,6 +134,9 @@
|
|||
#define FILENAME_LENGTH 13 // Number of UTF-16 characters per entry
|
||||
|
||||
// Number of VFAT entries used. Each entry has 13 UTF-16 characters
|
||||
#ifdef MAX_VFAT_ENTRIES
|
||||
#undef MAX_VFAT_ENTRIES
|
||||
#endif
|
||||
#if ENABLED(SCROLL_LONG_FILENAMES)
|
||||
#define MAX_VFAT_ENTRIES (5)
|
||||
#else
|
||||
|
|
|
@ -747,7 +747,7 @@ void CardReader::updir() {
|
|||
strncpy(sortnames[i], LONGEST_FILENAME, SORTED_LONGNAME_MAXLEN);
|
||||
sortnames[i][SORTED_LONGNAME_MAXLEN - 1] = '\0';
|
||||
#else
|
||||
strcpy(sortnames[i], SORTED_LONGNAME_MAXLEN);
|
||||
strncpy(sortnames[i], LONGEST_FILENAME, SORTED_LONGNAME_MAXLEN);
|
||||
#endif
|
||||
#if ENABLED(SDSORT_CACHE_NAMES)
|
||||
strcpy(sortshort[i], filename);
|
||||
|
@ -849,7 +849,7 @@ void CardReader::updir() {
|
|||
strncpy(sortnames[0], LONGEST_FILENAME, SORTED_LONGNAME_MAXLEN);
|
||||
sortnames[0][SORTED_LONGNAME_MAXLEN - 1] = '\0';
|
||||
#else
|
||||
strcpy(sortnames[0], SORTED_LONGNAME_MAXLEN);
|
||||
strncpy(sortnames[0], LONGEST_FILENAME, SORTED_LONGNAME_MAXLEN);
|
||||
#endif
|
||||
#if ENABLED(SDSORT_CACHE_NAMES)
|
||||
strcpy(sortshort[0], filename);
|
||||
|
|
Loading…
Reference in a new issue