From 3c2d6f79651227ed1d6b7d013e6027445ff60dd5 Mon Sep 17 00:00:00 2001 From: Knutwurst <36196269+knutwurst@users.noreply.github.com> Date: Sat, 25 Jul 2020 12:27:34 +0200 Subject: [PATCH] Fix long filenames --- Marlin/src/lcd/anycubic_touchscreen.cpp | 238 +++++++++++------------- Marlin/src/lcd/anycubic_touchscreen.h | 6 +- 2 files changed, 111 insertions(+), 133 deletions(-) diff --git a/Marlin/src/lcd/anycubic_touchscreen.cpp b/Marlin/src/lcd/anycubic_touchscreen.cpp index 7d3aec72..c44f11a3 100755 --- a/Marlin/src/lcd/anycubic_touchscreen.cpp +++ b/Marlin/src/lcd/anycubic_touchscreen.cpp @@ -54,9 +54,6 @@ int Temp_Buf_Bed_Temperature = 0; unsigned char ResumingFlag = 0; #endif -//#define MAX_PRINTABLE_FILENAME_LEN 21 -#define MAX_PRINTABLE_FILENAME_LEN 30 - void setup_OutageTestPin() { #ifdef POWER_OUTAGE_TEST @@ -441,92 +438,92 @@ void AnycubicTouchscreenClass::HandleSpecialMenu() SERIAL_ECHOPAIR(" DEBUG: Special Menu Selection: ", currentTouchscreenSelection); SERIAL_EOL(); #endif - if ((strcasestr(currentTouchscreenSelection, "Special Menu") != NULL) - || (strcasestr(currentTouchscreenSelection, "_SPECI~1.GCO") != NULL)) + if ((strcasestr(currentTouchscreenSelection, SM_SPECIAL_MENU_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_SPECIAL_MENU_S) != NULL)) { SpecialMenu = true; } - else if ((strcasestr(currentTouchscreenSelection, "PID Tune Hotend") != NULL) - || (strcasestr(currentTouchscreenSelection, "_PIDTU~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_PID_HOTEND_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_PID_HOTEND_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: PID Tune Hotend"); queue.inject_P(PSTR("M106 S204\nM303 E0 S210 C15 U1")); } - else if ((strcasestr(currentTouchscreenSelection, "PID Tune Ultrabase") != NULL) - || (strcasestr(currentTouchscreenSelection, "_PIDTU~2.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_PID_BED_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_PID_BED_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: PID Tune Ultrabase"); queue.inject_P(PSTR("M303 E-1 S60 C6 U1")); } - else if ((strcasestr(currentTouchscreenSelection, "Save EEPROM") != NULL) - || (strcasestr(currentTouchscreenSelection, "_SAVEE~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_SAVE_EEPROM_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_SAVE_EEPROM_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Save EEPROM"); queue.inject_P(PSTR("M500")); buzzer.tone(105, 1108); buzzer.tone(210, 1661); } - else if ((strcasestr(currentTouchscreenSelection, "Load FW Defaults") != NULL) - || (strcasestr(currentTouchscreenSelection, "_LOADF~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_LOAD_DEFAULTS_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_LOAD_DEFAULTS_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Load FW Defaults"); queue.inject_P(PSTR("M502")); buzzer.tone(105, 1661); buzzer.tone(210, 1108); } - else if ((strcasestr(currentTouchscreenSelection, "Preheat Ultrabase") != NULL) - || (strcasestr(currentTouchscreenSelection, "_PREHE~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_PREHEAT_BED_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_PREHEAT_BED_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Preheat Ultrabase"); queue.inject_P(PSTR("M140 S60")); } #if DISABLED(KNUTWURST_BLTOUCH) - else if ((strcasestr(currentTouchscreenSelection, "Start Mesh Leveling") != NULL) - || (strcasestr(currentTouchscreenSelection, "_START~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_MESH_START_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_MESH_START_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Start Mesh Leveling"); queue.inject_P(PSTR("G29 S1")); } - else if ((strcasestr(currentTouchscreenSelection, "Next Mesh Point") != NULL) - || (strcasestr(currentTouchscreenSelection, "_NEXTM~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Next Mesh Point"); queue.inject_P(PSTR("G29 S2")); } - else if ((strcasestr(currentTouchscreenSelection, "Z Up 0.1") != NULL) - || (strcasestr(currentTouchscreenSelection, "_ZUP01~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_Z_UP_01_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_Z_UP_01_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Z Up 0.1"); queue.inject_P(PSTR("G91\nG1 Z+0.1\nG90")); } - else if ((strcasestr(currentTouchscreenSelection, "Z Down 0.1") != NULL) - || (strcasestr(currentTouchscreenSelection, "_ZDOWN~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_Z_DN_01_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_Z_DN_01_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Z Down 0.1"); queue.inject_P(PSTR("G91\nG1 Z-0.1\nG90")); } - else if ((strcasestr(currentTouchscreenSelection, "Z Up 0.02") != NULL) - || (strcasestr(currentTouchscreenSelection, "_ZUP00~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_Z_UP_002_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_Z_UP_002_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Z Up 0.02"); queue.inject_P(PSTR("G91\nG1 Z+0.02\nG90")); } - else if ((strcasestr(currentTouchscreenSelection, "Z Down 0.02") != NULL) - || (strcasestr(currentTouchscreenSelection, "_ZDOWN~2.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_Z_DN_002_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_Z_DN_002_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Z Down 0.02"); queue.inject_P(PSTR("G91\nG1 Z-0.02\nG90")); } - else if ((strcasestr(currentTouchscreenSelection, "Z Up 0.01") != NULL) - || (strcasestr(currentTouchscreenSelection, "_ZUP00~2.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_Z_UP_001_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_Z_UP_001_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Z Up 0.01"); queue.enqueue_now_P(PSTR("G91\nG1 Z+0.03\nG90")); queue.enqueue_now_P(PSTR("G91\nG1 Z-0.02\nG90")); } - else if ((strcasestr(currentTouchscreenSelection, "Z Down 0.01") != NULL) - || (strcasestr(currentTouchscreenSelection, "_ZDOWN~3.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_Z_DN_001_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_Z_DN_001_L) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Z Down 0.01"); queue.enqueue_now_P(PSTR("G91\nG1 Z+0.02\nG90")); @@ -535,27 +532,28 @@ void AnycubicTouchscreenClass::HandleSpecialMenu() #endif #if ENABLED(KNUTWURST_BLTOUCH) - else if (strcasestr(currentTouchscreenSelection, "BLTouch Leveling") != NULL) + else if ((strcasestr(currentTouchscreenSelection, SM_BLTOUCH_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_BLTOUCH_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: BLTouch Leveling"); queue.inject_P(PSTR("G28\nG29")); } #endif - else if ((strcasestr(currentTouchscreenSelection, "Fil. Change Pause") != NULL) - || (strcasestr(currentTouchscreenSelection, "_FILCH~2.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_PAUSE_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_PAUSE_L) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Fil. Change Pause"); FilamentChangePause(); } - else if ((strcasestr(currentTouchscreenSelection, "Fil. Change Resume") != NULL) - || (strcasestr(currentTouchscreenSelection, "_FILCH~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_RESUME_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_RESUME_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Fil. Change Resume"); FilamentChangeResume(); } - else if ((strcasestr(currentTouchscreenSelection, "Disable Fil. Sensor") != NULL) - || (strcasestr(currentTouchscreenSelection, "_DISAB~1") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_DIS_FILSENS_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_DIS_FILSENS_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Disable Filament Sensor"); FilamentSensorEnabled = false; @@ -563,33 +561,21 @@ void AnycubicTouchscreenClass::HandleSpecialMenu() buzzer.tone(105, 1108); buzzer.tone(105, 1108); } - else if ((strcasestr(currentTouchscreenSelection, "Enable Fil. Sensor") != NULL) - || (strcasestr(currentTouchscreenSelection, "_ENABL~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_EN_FILSENS_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_EN_FILSENS_S) != NULL)) { SERIAL_ECHOLNPGM("Special Menu: Enable Filament Sensor"); FilamentSensorEnabled = true; buzzer.tone(105, 1108); buzzer.tone(105, 1108); } - else if ((strcasestr(currentTouchscreenSelection, "Exit") != NULL) - || (strcasestr(currentTouchscreenSelection, "_EXIT_~1.GCO") != NULL)) + else if ((strcasestr(currentTouchscreenSelection, SM_EXIT_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_EXIT_S) != NULL)) { SpecialMenu = false; } } -uint16_t AnycubicTouchscreenClass::MyGetFileNr() -{ - if(card.isMounted) - { - MyFileNrCnt=0; - //ReadMyfileNrFlag=true; - delay(10); - //card.Myls(); - MyFileNrCnt = card.countFilesInWorkDir(); - } - return MyFileNrCnt; -} void AnycubicTouchscreenClass::PrintList() { @@ -598,80 +584,80 @@ void AnycubicTouchscreenClass::PrintList() switch (filenumber) { case 0: // Page 1 - HARDWARE_SERIAL_PROTOCOLLNPGM("_EXIT_~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Exit].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_PREHE~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Preheat Ultrabase].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_FILCH~2.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Fil. Change Pause].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_FILCH~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Fil. Change Resume].gcode"); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PREHEAT_BED_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PREHEAT_BED_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PAUSE_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PAUSE_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESUME_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESUME_L); break; #if DISABLED(KNUTWURST_BLTOUCH) case 4: // Page 2 - HARDWARE_SERIAL_PROTOCOLLNPGM("_START~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Start Mesh Leveling].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_NEXTM~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Next Mesh Point].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_ZUP01~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Z Up 0.1].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_ZDOWN~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Z Down 0.1].gcode"); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_01_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_01_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_01_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_01_L); break; case 8: // Page 3 - HARDWARE_SERIAL_PROTOCOLLNPGM("_ZUP00~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Z Up 0.02].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_ZDOWN~2.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Z Down 0.02].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_ZUP00~2.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Z Up 0.01].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_ZDOWN~3.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Z Down 0.01].gcode"); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_002_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_002_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_002_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_002_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_001_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_001_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_001_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_001_L); break; case 12: // Page 4 - HARDWARE_SERIAL_PROTOCOLLNPGM("_PIDTU~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[PID Tune Hotend].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_PIDTU~2.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[PID Tune Ultrabase].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_SAVEE~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Save EEPROM].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_LOADF~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Load FW Defaults].gcode"); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_L); break; case 16: // Page 5 - HARDWARE_SERIAL_PROTOCOLLNPGM("_DISAB~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Disable Fil. Sensor].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_ENABL~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Enable Fil. Sensor].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_EXIT_~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Exit].gcode"); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L); break; #endif #if ENABLED(KNUTWURST_BLTOUCH) case 4: // Page 2 - HARDWARE_SERIAL_PROTOCOLLNPGM("_BLTOU~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[BLTouch Leveling].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_PIDTU~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[PID Tune Hotend].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_PIDTU~2.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[PID Tune Ultrabase].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_DISAB~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Disable Fil. Sensor].gcode"); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_L); break; case 8: // Page 3 - HARDWARE_SERIAL_PROTOCOLLNPGM("_ENABL~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Enable Fil. Sensor].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_SAVEE~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Save EEPROM].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_LOADF~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Load FW Defaults].gcode"); - HARDWARE_SERIAL_PROTOCOLLNPGM("_EXIT_~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Exit].gcode"); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L); break; #endif @@ -684,7 +670,7 @@ void AnycubicTouchscreenClass::PrintList() { uint16_t count = filenumber; uint16_t max_files; - //uint16_t MyFileNrCnt = card.countFilesInWorkDir(); + uint16_t MyFileNrCnt = card.countFilesInWorkDir(); // What is this shit? What if there are exactely 3 files+folders? // TODO: find something better than this crap. @@ -710,24 +696,25 @@ void AnycubicTouchscreenClass::PrintList() { if (strcmp(card.getWorkDirName(), "/") == 0) { - HARDWARE_SERIAL_PROTOCOLLNPGM("_SPECI~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("[Special Menu].gcode"); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SPECIAL_MENU_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SPECIAL_MENU_L); SERIAL_ECHO(count); - SERIAL_ECHOLNPGM(": [Special Menu].gcode"); + SERIAL_ECHO(": "); + SERIAL_ECHOLNPGM(SM_SPECIAL_MENU_L); } else { - HARDWARE_SERIAL_PROTOCOLLNPGM("DIR_UP~1.GCO"); - HARDWARE_SERIAL_PROTOCOLLNPGM("DIR_UP.gcode"); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIR_UP_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIR_UP_L); SERIAL_ECHO(count); - SERIAL_ECHOLNPGM(": DIR_UP.gcode"); + SERIAL_ECHO(": "); + SERIAL_ECHOLNPGM(SM_DIR_UP_L); } } else { card.selectFileByIndex(count - 1); - // Bugfix for non-printable special characters // which are now replaced by underscores. int fileNameLen = strlen(card.longFilename); @@ -762,18 +749,18 @@ void AnycubicTouchscreenClass::PrintList() HARDWARE_SERIAL_PROTOCOL("/"); HARDWARE_SERIAL_PROTOCOLLN(card.filename); HARDWARE_SERIAL_PROTOCOL("/"); - HARDWARE_SERIAL_PROTOCOLLN(card.longFilename); + HARDWARE_SERIAL_PROTOCOLLN(outputString); SERIAL_ECHO(count); SERIAL_ECHOPGM(": /"); - SERIAL_ECHOLN(card.longFilename); + SERIAL_ECHOLN(outputString); } else { HARDWARE_SERIAL_PROTOCOLLN(card.filename); - HARDWARE_SERIAL_PROTOCOLLN(card.longFilename); + HARDWARE_SERIAL_PROTOCOLLN(outputString); SERIAL_ECHO(count); SERIAL_ECHOPGM(": "); - SERIAL_ECHOLN(card.longFilename); + SERIAL_ECHOLN(outputString); } } } @@ -1213,12 +1200,9 @@ void AnycubicTouchscreenClass::GetCommandFromTFT() } else { - MyGetFileNr(); - if (CodeSeen('S')) filenumber = CodeValue(); - HARDWARE_SERIAL_PROTOCOLPGM("FN "); // Filelist start HARDWARE_SERIAL_ENTER(); PrintList(); @@ -1303,16 +1287,10 @@ void AnycubicTouchscreenClass::GetCommandFromTFT() || (TFTstrchr_pointer[4] == '_')) { strcpy(currentTouchscreenSelection, TFTstrchr_pointer + 4); - -#ifdef ANYCUBIC_TFT_DEBUG - SERIAL_ECHOPAIR(" TFT Serial Debug: currentTouchscreenSelection: ",currentTouchscreenSelection); - SERIAL_EOL(); -#endif } - else { - currentTouchscreenSelection[0] = 0; + //currentTouchscreenSelection[0] = 0; #ifdef ANYCUBIC_TFT_DEBUG SERIAL_ECHOLNPGM("TFT Serial Debug: Normal file open path"); diff --git a/Marlin/src/lcd/anycubic_touchscreen.h b/Marlin/src/lcd/anycubic_touchscreen.h index ed5e88b8..0dcd36ec 100755 --- a/Marlin/src/lcd/anycubic_touchscreen.h +++ b/Marlin/src/lcd/anycubic_touchscreen.h @@ -34,6 +34,7 @@ char *ftostr32(const float &); #define TFTBUFSIZE 4 #define TFT_MAX_CMD_SIZE 96 #define MSG_MY_VERSION "Knutwurst-1.0.7" +#define MAX_PRINTABLE_FILENAME_LEN 64 #define ANYCUBIC_TFT_STATE_IDLE 0 #define ANYCUBIC_TFT_STATE_SDPRINT 1 @@ -158,10 +159,9 @@ private: void FilamentChangeResume(); void ReheatNozzle(); void ParkAfterStop(); - uint16_t MyGetFileNr(); - char currentTouchscreenSelection[30]; - char currentFileOrDirectory[30]; + char currentTouchscreenSelection[64]; + char currentFileOrDirectory[64]; uint16_t MyFileNrCnt = 0; uint8_t SpecialMenu = false; uint8_t FilamentSensorEnabled = true;