Browse Source
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
pull/1/head
Bob-the-Kuhn
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with
64 additions and
3 deletions
-
Marlin/src/lcd/ultralcd.cpp
-
Marlin/src/pins/pins_AZSMZ_MINI.h
-
Marlin/src/pins/pins_MKS_SBASE.h
-
Marlin/src/pins/pins_RAMPS_RE_ARM.h
-
Marlin/src/sd/SdFatConfig.h
-
Marlin/src/sd/cardreader.cpp
|
|
@ -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); |
|
|
|