diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index add097af..2f495abb 100755 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1839,7 +1839,7 @@ // // Short 2KHz beep when endstops are hit // -#define ENDSTOP_BEEP +//#define ENDSTOP_BEEP // // The duration and frequency for the UI feedback sound. diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index ad38ba4e..ccc16210 100755 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -38,7 +38,7 @@ * Defines the version of the Marlin build. Not to be confused with * Marlin's own build number, e.g. 2.0.x. */ - #define CUSTOM_BUILD_VERSION "1.0.5" + #define CUSTOM_BUILD_VERSION "1.0.6" #ifndef STRING_DISTRIBUTION_DATE #define STRING_DISTRIBUTION_DATE "2020-03-31" diff --git a/Marlin/src/lcd/anycubic_touchscreen.cpp b/Marlin/src/lcd/anycubic_touchscreen.cpp index fa4d5dd1..6cfdd312 100755 --- a/Marlin/src/lcd/anycubic_touchscreen.cpp +++ b/Marlin/src/lcd/anycubic_touchscreen.cpp @@ -136,7 +136,7 @@ void AnycubicTouchscreenClass::Setup() } #endif - SelectedDirectory[0] = 0; + currentTouchscreenSelection[0] = 0; SpecialMenu = false; FilamentSensorEnabled = true; @@ -302,19 +302,21 @@ void AnycubicTouchscreenClass::PausePrint() TFTstate = ANYCUBIC_TFT_STATE_SDPAUSE_REQ; } -void AnycubicTouchscreenClass::StopPrint() +inline void AnycubicTouchscreenClass::StopPrint() { // stop print, disable heaters wait_for_user = false; wait_for_heatup = false; - card.endFilePrint(); - card.closefile(); -#ifdef ANYCUBIC_TFT_DEBUGANYCUBIC_TFT_STATE_SDSTOP_REQ + IsParked = false; + if(card.isFileOpen) { + card.endFilePrint(); + card.closefile(); + } +#ifdef ANYCUBIC_TFT_DEBUG SERIAL_ECHOLNPGM("DEBUG: Stopped and cleared"); #endif print_job_timer.stop(); thermalManager.disable_all_heaters(); - IsParked = false; ai3m_pause_state = 0; #ifdef ANYCUBIC_TFT_DEBUG SERIAL_ECHOPAIR(" DEBUG: AI3M Pause State: ", ai3m_pause_state); @@ -410,8 +412,8 @@ void AnycubicTouchscreenClass::ParkAfterStop() SERIAL_ECHOLNPGM("DEBUG: SDSTOP: Park XY"); #endif } - queue.inject_P(PSTR("M84")); // disable stepper motors - queue.inject_P(PSTR("M27")); // force report of SD status + queue.enqueue_now_P(PSTR("M84")); // disable stepper motors + queue.enqueue_now_P(PSTR("M27")); // force report of SD status ai3m_pause_state = 0; #ifdef ANYCUBIC_TFT_DEBUG SERIAL_ECHOPAIR(" DEBUG: AI3M Pause State: ", ai3m_pause_state); @@ -432,90 +434,94 @@ bool AnycubicTouchscreenClass::CodeSeen(char code) void AnycubicTouchscreenClass::HandleSpecialMenu() { - if (strcmp(SelectedDirectory, "") == 0) +#ifdef ANYCUBIC_TFT_DEBUG + SERIAL_ECHOPAIR(" DEBUG: Special Menu Selection: ", currentTouchscreenSelection); + SERIAL_EOL(); +#endif + if (strcasestr(currentTouchscreenSelection, "") != NULL) { SpecialMenu = true; } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: PID Tune Hotend"); queue.inject_P(PSTR("M106 S204\nM303 E0 S210 C15 U1")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: PID Tune Ultrabase"); queue.inject_P(PSTR("M303 E-1 S60 C6 U1")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Save EEPROM"); queue.inject_P(PSTR("M500")); buzzer.tone(105, 1108); buzzer.tone(210, 1661); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Load FW Defaults"); queue.inject_P(PSTR("M502")); buzzer.tone(105, 1661); buzzer.tone(210, 1108); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Preheat Ultrabase"); queue.inject_P(PSTR("M140 S60")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Start Mesh Leveling"); queue.inject_P(PSTR("G29 S1")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Next Mesh Point"); queue.inject_P(PSTR("G29 S2")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Z Up 0.1"); queue.inject_P(PSTR("G91\nG1 Z+0.1\nG90")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Z Down 0.1"); queue.inject_P(PSTR("G91\nG1 Z-0.1\nG90")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Z Up 0.02"); queue.inject_P(PSTR("G91\nG1 Z+0.02\nG90")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Z Down 0.02"); queue.inject_P(PSTR("G91\nG1 Z-0.02\nG90")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Z Up 0.01"); queue.inject_P(PSTR("G91\nG1 Z+0.01\nG90")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Z Down 0.01"); queue.inject_P(PSTR("G91\nG1 Z-0.01\nG90")); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Fil. Change Pause"); FilamentChangePause(); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Fil. Change Resume"); FilamentChangeResume(); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Disable Filament Sensor"); FilamentSensorEnabled = false; @@ -523,14 +529,14 @@ void AnycubicTouchscreenClass::HandleSpecialMenu() buzzer.tone(105, 1108); buzzer.tone(105, 1108); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SERIAL_ECHOLNPGM("Special Menu: Enable Filament Sensor"); FilamentSensorEnabled = true; buzzer.tone(105, 1108); buzzer.tone(105, 1108); } - else if (strcmp(SelectedDirectory, "") == 0) + else if (strcasestr(currentTouchscreenSelection, "") != NULL) { SpecialMenu = false; } @@ -543,56 +549,56 @@ void AnycubicTouchscreenClass::AnycubicTouchscreen() switch (filenumber) { case 0: // Page 1 - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); break; case 4: // Page 2 - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); break; case 8: // Page 3 - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); break; case 12: // Page 4 - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); break; case 16: // Page 5 - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); break; default: @@ -623,15 +629,15 @@ void AnycubicTouchscreenClass::AnycubicTouchscreen() { if (strcmp(card.getWorkDirName(), "/") == 0) { - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); + HARDWARE_SERIAL_PROTOCOLLN(""); + HARDWARE_SERIAL_PROTOCOLLN(""); SERIAL_ECHO(count); SERIAL_ECHOLNPGM(""); } else { - HARDWARE_SERIAL_PROTOCOLLNPGM("/.."); - HARDWARE_SERIAL_PROTOCOLLNPGM("/.."); + HARDWARE_SERIAL_PROTOCOLLN("/.."); + HARDWARE_SERIAL_PROTOCOLLN("/.."); SERIAL_ECHO(count); SERIAL_ECHOLNPGM("/.."); } @@ -684,8 +690,7 @@ void AnycubicTouchscreenClass::AnycubicTouchscreen() #endif else { - HARDWARE_SERIAL_PROTOCOLLNPGM(""); - HARDWARE_SERIAL_PROTOCOLLNPGM(""); + // Do nothing? } } @@ -851,7 +856,7 @@ void AnycubicTouchscreenClass::StateHandler() // did we park the hotend already? if ((!IsParked) && (!card.isPrinting()) && (!planner.movesplanned())) { - queue.inject_P(PSTR("G91\nG1 E-1 F1800\nG90")); //retract + queue.enqueue_now_P(PSTR("G91\nG1 E-1 F1800\nG90")); //retract ParkAfterStop(); IsParked = true; } @@ -1057,7 +1062,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT() } case 8: // A8 GET SD LIST #ifdef SDSUPPORT - SelectedDirectory[0] = 0; + currentTouchscreenSelection[0] = 0; if (!IS_SD_INSERTED()) { HARDWARE_SERIAL_PROTOCOLPGM("J02"); @@ -1139,15 +1144,15 @@ void AnycubicTouchscreenClass::GetCommandFromTFT() starpos = (strchr(TFTstrchr_pointer + 4, '*')); if (TFTstrchr_pointer[4] == '/') { - strcpy(SelectedDirectory, TFTstrchr_pointer + 5); + strcpy(currentTouchscreenSelection, TFTstrchr_pointer + 5); } else if (TFTstrchr_pointer[4] == '<') { - strcpy(SelectedDirectory, TFTstrchr_pointer + 4); + strcpy(currentTouchscreenSelection, TFTstrchr_pointer + 4); } else { - SelectedDirectory[0] = 0; + currentTouchscreenSelection[0] = 0; if (starpos != NULL) *(starpos - 1) = '\0'; @@ -1408,30 +1413,30 @@ void AnycubicTouchscreenClass::GetCommandFromTFT() break; case 26: // A26 refresh SD #ifdef SDSUPPORT - if (SelectedDirectory[0] == 0) + if (currentTouchscreenSelection[0] == 0) { card.mount(); } else { - if ((SelectedDirectory[0] == '.') && (SelectedDirectory[1] == '.')) + if ((currentTouchscreenSelection[0] == '.') && (currentTouchscreenSelection[1] == '.')) { card.cdup(); } else { - if (SelectedDirectory[0] == '<') + if (currentTouchscreenSelection[0] == '<') { HandleSpecialMenu(); } else { - card.cd(SelectedDirectory); + card.cd(currentTouchscreenSelection); } } } - SelectedDirectory[0] = 0; + currentTouchscreenSelection[0] = 0; if (!IS_SD_INSERTED()) { diff --git a/Marlin/src/lcd/anycubic_touchscreen.h b/Marlin/src/lcd/anycubic_touchscreen.h index 27924df7..935dfe50 100755 --- a/Marlin/src/lcd/anycubic_touchscreen.h +++ b/Marlin/src/lcd/anycubic_touchscreen.h @@ -115,7 +115,7 @@ private: void ReheatNozzle(); void ParkAfterStop(); - char SelectedDirectory[30]; + char currentTouchscreenSelection[30]; uint8_t SpecialMenu = false; uint8_t FilamentSensorEnabled = true;