25 Commits

Author SHA1 Message Date
Knutwurst
c77aacbbd9 Set build version for next release 2023-06-07 21:59:21 +02:00
Knutwurst
4206e3c4e8 Invert setSoftEndstopState logic on print stop 2023-06-07 21:39:14 +02:00
Knutwurst
dfc9cbe8b1 Change Chiron and 4MAX filament load length. 2023-06-07 18:55:48 +02:00
Knutwurst
9c7e330363 Fix AutoPowerOff menu selection. 2023-06-07 18:02:01 +02:00
Knutwurst
580d56bd37 Fix PowerOffFlag handling. 2023-06-07 16:16:06 +02:00
Knutwurst
588f703684 Add Special Menu BLTouch HighSpeed Mode selection 2023-06-07 12:39:56 +02:00
Knutwurst
c48395f801 Fix 4MAX build 2023-06-07 09:09:14 +02:00
Knutwurst
f7060d5524 Add more TFT debugging messages. 2023-06-07 09:03:20 +02:00
Knutwurst
acee1592c9 Add setSoftEndstopState to TFT print and stop functions. 2023-06-07 08:49:56 +02:00
Knutwurst
442f66c145 Disable soft endstops while printing, so that mesh points below 0 can be reached. 2023-06-07 08:48:05 +02:00
Knutwurst
b5b3da41f5 Disable software endstops when manual or auto leveling is activated, so the nozzle can be set to a lower point than the endstop. 2023-06-07 08:35:43 +02:00
Knutwurst
38edd9375b Revert "Disable automatic mesh adjustment when Z offset is altered."
This reverts commit fb7a29ce8e.
2023-06-07 08:14:28 +02:00
Knutwurst
fb7a29ce8e Disable automatic mesh adjustment when Z offset is altered. 2023-06-06 21:44:08 +02:00
Knutwurst
056dd71494 Substitute LCD_SERIAL.println() with LCD_SERIAL.print(,2) to ensure display compatibility. 2023-06-06 19:06:50 +02:00
Knutwurst
09b448773f Revert define, because it breaks the build. 2023-06-06 17:01:43 +02:00
Knutwurst
223df2956a Fix display of single mesh points 2023-06-06 17:01:06 +02:00
Knutwurst
9376b95148 Fix live Z offset. 2023-06-06 16:46:09 +02:00
Knutwurst
fbd1b7b9bf Fix PowerOff. 2023-06-03 21:15:52 +02:00
Knutwurst
61fba37678 Reenable auto power off on 4MAX Pro 2.0 2023-06-03 19:45:48 +02:00
Knutwurst
7b0aa6ec6a Code cleanup. 2023-06-03 19:45:21 +02:00
Knutwurst
70ccd6a957 Refactor Chiron A31 Adjust all Probe Points routine 2023-06-03 19:29:59 +02:00
Knutwurst
6bc410a0e3 Unify special menu defines for both display types. Also fix NoSD message and error, when no SD card is present. 2023-06-03 18:51:02 +02:00
Knutwurst
011752e02a Improve file list rendering speed. 2023-06-03 09:20:54 +02:00
Knutwurst
471d7f47a0 Remove unnecessary code from get-sd-list routine. 2023-06-03 00:20:25 +02:00
Knutwurst
0670fb9253 Revert from const char* to char* because it breaks Anycubic 1.0 without SD card. 2023-06-02 22:57:16 +02:00
4 changed files with 158 additions and 159 deletions

View File

@@ -2673,7 +2673,7 @@
// 0 to disable start loading and skip to fast load only // 0 to disable start loading and skip to fast load only
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30 // (mm/s) Load filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 5 // (mm) Load length of filament, from extruder gear to nozzle. #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 10 // (mm) Load length of filament, from extruder gear to nozzle.
// For Bowden, the full length of the tube and nozzle. // For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle. // For direct drive, the full length of the nozzle.
#endif #endif
@@ -2693,7 +2693,7 @@
// 0 to disable start loading and skip to fast load only // 0 to disable start loading and skip to fast load only
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30 // (mm/s) Load filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 5 // (mm) Load length of filament, from extruder gear to nozzle. #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 550 // (mm) Load length of filament, from extruder gear to nozzle.
// For Bowden, the full length of the tube and nozzle. // For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle. // For direct drive, the full length of the nozzle.
#endif #endif

View File

@@ -41,10 +41,10 @@
* here we define this default string as the date where the latest release * here we define this default string as the date where the latest release
* version was tagged. * version was tagged.
*/ */
#define CUSTOM_BUILD_VERSION "1.5.0-RC1" #define CUSTOM_BUILD_VERSION "1.5.0"
#ifndef STRING_DISTRIBUTION_DATE #ifndef STRING_DISTRIBUTION_DATE
#define STRING_DISTRIBUTION_DATE "2023-06-02" #define STRING_DISTRIBUTION_DATE "2023-06-07"
#endif #endif
/** /**

View File

@@ -121,6 +121,7 @@
CaseLight = false; CaseLight = false;
currentFlowRate = 100; currentFlowRate = 100;
flowRateBuffer = SM_FLOW_DISP_L; flowRateBuffer = SM_FLOW_DISP_L;
live_Zoffset = 0.0;
#if BOTH(SDSUPPORT, HAS_SD_DETECT) #if BOTH(SDSUPPORT, HAS_SD_DETECT)
SET_INPUT_PULLUP(SD_DETECT_PIN); SET_INPUT_PULLUP(SD_DETECT_PIN);
@@ -196,6 +197,7 @@
SERIAL_ECHOPGM(" "); SERIAL_ECHOPGM(" ");
SERIAL_ECHOLN(currentFileOrDirectory); SERIAL_ECHOLN(currentFileOrDirectory);
#endif #endif
setSoftEndstopState(false);
mediaPrintingState = AMPRINTSTATE_PRINTING; mediaPrintingState = AMPRINTSTATE_PRINTING;
mediaPauseState = AMPAUSESTATE_NOT_PAUSED; mediaPauseState = AMPAUSESTATE_NOT_PAUSED;
printFile(currentFileOrDirectory); printFile(currentFileOrDirectory);
@@ -218,6 +220,7 @@
inline void AnycubicTouchscreenClass::StopPrint() { inline void AnycubicTouchscreenClass::StopPrint() {
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
setSoftEndstopState(true);
mediaPrintingState = AMPRINTSTATE_STOP_REQUESTED; mediaPrintingState = AMPRINTSTATE_STOP_REQUESTED;
mediaPauseState = AMPAUSESTATE_NOT_PAUSED; mediaPauseState = AMPAUSESTATE_NOT_PAUSED;
SENDLINE_DBG_PGM("J16", "TFT Serial Debug: SD print stop called... J16"); SENDLINE_DBG_PGM("J16", "TFT Serial Debug: SD print stop called... J16");
@@ -355,6 +358,8 @@
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_MESH_MENU_S)) != NULL) || (strcasestr_P(currentTouchscreenSelection, PSTR(SM_MESH_MENU_S)) != NULL)
) { ) {
MMLMenu = true; MMLMenu = true;
SERIAL_ECHOLNPGM("Special Menu: Manual Med Leveling + disable soft endstops");
setSoftEndstopState(false);
} }
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_MESH_START_L)) != NULL) else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_MESH_START_L)) != NULL)
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_MESH_START_S)) != NULL) || (strcasestr_P(currentTouchscreenSelection, PSTR(SM_MESH_START_S)) != NULL)
@@ -445,8 +450,7 @@
) { ) {
SERIAL_ECHOLNPGM("Special Menu: Disable Filament Sensor"); SERIAL_ECHOLNPGM("Special Menu: Disable Filament Sensor");
injectCommands(F("M412 H0 S0\nM500")); injectCommands(F("M412 H0 S0\nM500"));
BUZZ(105, 1108); BUZZ(210, 1661);
BUZZ(105, 1108);
BUZZ(105, 1108); BUZZ(105, 1108);
} }
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_EN_FILSENS_L)) != NULL) else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_EN_FILSENS_L)) != NULL)
@@ -455,7 +459,7 @@
SERIAL_ECHOLNPGM("Special Menu: Enable Filament Sensor"); SERIAL_ECHOLNPGM("Special Menu: Enable Filament Sensor");
injectCommands(F("M412 H0 S1\nM500")); injectCommands(F("M412 H0 S1\nM500"));
BUZZ(105, 1108); BUZZ(105, 1108);
BUZZ(105, 1108); BUZZ(210, 1661);
} }
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_EXIT_L)) != NULL) else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_EXIT_L)) != NULL)
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EXIT_S)) != NULL) || (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EXIT_S)) != NULL)
@@ -465,6 +469,8 @@
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BACK_L)) != NULL) else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BACK_L)) != NULL)
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BACK_S)) != NULL) || (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BACK_S)) != NULL)
) { ) {
SERIAL_ECHOLNPGM("Special Menu: Exit Manual Med Leveling + enable soft endstops");
setSoftEndstopState(true);
MMLMenu = false; MMLMenu = false;
} }
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_FLOWMENU_L)) != NULL) else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_FLOWMENU_L)) != NULL)
@@ -513,6 +519,7 @@
) { ) {
SERIAL_ECHOLNPGM("Special Menu: Enter BLTouch Menu"); SERIAL_ECHOLNPGM("Special Menu: Enter BLTouch Menu");
BLTouchMenu = true; BLTouchMenu = true;
setSoftEndstopState(false);
} }
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_UP_L)) != NULL) else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_UP_L)) != NULL)
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_UP_S)) != NULL) || (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_UP_S)) != NULL)
@@ -526,15 +533,34 @@
SERIAL_ECHOLNPGM("Special Menu: Offset Down"); SERIAL_ECHOLNPGM("Special Menu: Offset Down");
probe.offset.z -= 0.01F; probe.offset.z -= 0.01F;
} }
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_HS_ENABLE_L)) != NULL)
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_HS_ENABLE_S)) != NULL)
) {
SERIAL_ECHOLNPGM("Special Menu: HighSpeed Mode ENABLED");
injectCommands(F("M401 S1\nM500"));
BUZZ(105, 1108);
BUZZ(210, 1661);
}
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_HS_DISABLE_L)) != NULL)
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_HS_DISABLE_S)) != NULL)
) {
SERIAL_ECHOLNPGM("Special Menu: HighSpeed Mode DISABLED!");
injectCommands(F("M401 S0\nM500"));
BUZZ(210, 1661);
BUZZ(105, 1108);
}
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_EXIT_L)) != NULL) else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_EXIT_L)) != NULL)
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_EXIT_S)) != NULL) || (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_EXIT_S)) != NULL)
) { ) {
SERIAL_ECHOLNPGM("Special Menu: Exit BLTouch Menu & Save EEPROM"); SERIAL_ECHOLNPGM("Special Menu: Exit BLTouch Menu & Save EEPROM");
setSoftEndstopState(true);
injectCommands(F("M500")); injectCommands(F("M500"));
BUZZ(105, 1108); BUZZ(105, 1108);
BUZZ(210, 1661); BUZZ(210, 1661);
BLTouchMenu = false; BLTouchMenu = false;
} }
#endif #endif
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_MENU_L)) != NULL) else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_MENU_L)) != NULL)
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_MENU_S)) != NULL) || (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_MENU_S)) != NULL)
@@ -621,24 +647,21 @@
void AnycubicTouchscreenClass::RenderCurrentFileList() { void AnycubicTouchscreenClass::RenderCurrentFileList() {
uint16_t selectedNumber = 0;
FileList currentFileList;
currentFileOrDirectory[0] = 0; currentFileOrDirectory[0] = 0;
if (SpecialMenu == false) { if (SpecialMenu == false) {
currentTouchscreenSelection[0] = 0; currentTouchscreenSelection[0] = 0;
} }
SENDLINE_PGM("FN "); // Filelist start SENDLINE_PGM("FN "); // Filelist start
if (!isMediaInserted() && !SpecialMenu) { if (!isMediaInserted() && !SpecialMenu) {
SENDLINE_DBG_PGM("J02", "TFT Serial Debug: No SD Card mounted to render Current File List... J02");
SENDLINE_PGM(SM_SPECIAL_MENU_S); SENDLINE_PGM(SM_SPECIAL_MENU_S);
SENDLINE_PGM(SM_SPECIAL_MENU_L); SENDLINE_PGM(SM_SPECIAL_MENU_L);
} } else {
else { uint16_t selectedNumber = 0;
FileList currentFileList;
if (CodeSeen('S')) { if (CodeSeen('S')) {
selectedNumber = CodeValue(); selectedNumber = CodeValue();
} }
@@ -732,6 +755,10 @@ void AnycubicTouchscreenClass::RenderSpecialMenu(uint16_t selectedNumber) {
break; break;
case 4: // Page 2 case 4: // Page 2
SENDLINE_PGM(SM_HS_ENABLE_S);
SENDLINE_PGM(SM_HS_ENABLE_L);
SENDLINE_PGM(SM_HS_DISABLE_S);
SENDLINE_PGM(SM_HS_DISABLE_L);
SENDLINE_PGM(SM_BLTZ_EXIT_S); SENDLINE_PGM(SM_BLTZ_EXIT_S);
SENDLINE_PGM(SM_BLTZ_EXIT_L); SENDLINE_PGM(SM_BLTZ_EXIT_L);
break; break;
@@ -885,7 +912,7 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
#endif #endif
// The longname may not be filed, so we use the built-in fallback here. // The longname may not be filed, so we use the built-in fallback here.
const char* fileName = currentFileList.filename(); char* fileName = strdup(currentFileList.filename());
int fileNameLen = strlen(fileName); int fileNameLen = strlen(fileName);
// Cut off too long filenames. // Cut off too long filenames.
@@ -1170,19 +1197,8 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
case 8: // A8 GET SD LIST case 8: // A8 GET SD LIST
#ifdef SDSUPPORT #ifdef SDSUPPORT
if (SpecialMenu == false) if (SpecialMenu == false) currentTouchscreenSelection[0] = 0;
currentTouchscreenSelection[0] = 0;
#if DISABLED(KNUTWURST_SPECIAL_MENU_WO_SD)
if (!IS_SD_INSERTED()) {
SENDLINE_DBG_PGM("J02", "TFT Serial Debug: No SD Card mounted to render Current File List... J02");
}
else
#endif
{
if (CodeSeen('S')) filenumber = CodeValue();
RenderCurrentFileList(); RenderCurrentFileList();
}
#endif #endif
break; break;
@@ -1508,7 +1524,7 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
#if ENABLED(ANYCUBIC_TFT_DEBUG) #if ENABLED(ANYCUBIC_TFT_DEBUG)
SERIAL_ECHOLNPGM("Moving to mesh point at x: ", pos.x, " y: ", pos.y, " z: ", pos_z); SERIAL_ECHOLNPGM("Moving to mesh point at x: ", pos.x, " y: ", pos.y, " z: ", pos_z);
#endif #endif
setAxisPosition_mm(3.0,Z); setAxisPosition_mm(5.0,Z);
setAxisPosition_mm(17 + (93 * pos.x), X); setAxisPosition_mm(17 + (93 * pos.x), X);
setAxisPosition_mm(20 + (93 * pos.y), Y); setAxisPosition_mm(20 + (93 * pos.y), Y);
setAxisPosition_mm(0.0, Z); setAxisPosition_mm(0.0, Z);
@@ -1529,17 +1545,16 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
SENDLINE_DBG_PGM("J24", "TFT Serial Debug: Forbid auto leveling... J24"); SENDLINE_DBG_PGM("J24", "TFT Serial Debug: Forbid auto leveling... J24");
} else { } else {
SENDLINE_DBG_PGM("J26", "TFT Serial Debug: Start auto leveling... J26"); SENDLINE_DBG_PGM("J26", "TFT Serial Debug: Start auto leveling... J26");
injectCommands(F("G28\nG29")); //injectCommands(F("G28\nG29"));
injectCommands(F("G28\nG29\nG90\nM300 S440 P200\nM300 S660 P250\nM300 S880 P300\nG1 Z30 F4000\nG1 X5 F4000\nG91\nM84\nM420 S1"));
mediaPrintingState = AMPRINTSTATE_PROBING; mediaPrintingState = AMPRINTSTATE_PROBING;
} }
} else { } else {
SENDLINE_DBG_PGM("J26", "TFT Serial Debug: Start auto leveling... J26"); SENDLINE_DBG_PGM("J26", "TFT Serial Debug: Enable level menu... J26");
} }
break; break;
case 31: // A31 z-offset case 31: // A31 z-offset
// The tokens can occur in different places on the new panel so we need to find it.
if (CodeSeen('C')) { // Restore and apply original offsets if (CodeSeen('C')) { // Restore and apply original offsets
if (!isPrinting()) { if (!isPrinting()) {
injectCommands(F("M501\nM420 S1")); injectCommands(F("M501\nM420 S1"));
@@ -1550,7 +1565,7 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
else if (CodeSeen('D')) { // Save Z Offset tables and restore leveling state else if (CodeSeen('D')) { // Save Z Offset tables and restore leveling state
if (!isPrinting()) { if (!isPrinting()) {
setAxisPosition_mm(1.0,Z); // Lift nozzle before any further movements are made setAxisPosition_mm(5.0,Z); // Lift nozzle before any further movements are made
injectCommands(F("M500")); injectCommands(F("M500"));
#if ENABLED(ANYCUBIC_TFT_DEBUG) #if ENABLED(ANYCUBIC_TFT_DEBUG)
SERIAL_ECHOLNF(F("Mesh changes saved.")); SERIAL_ECHOLNF(F("Mesh changes saved."));
@@ -1560,13 +1575,14 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
} }
else if (CodeSeen('G')) { // Get current offset else if (CodeSeen('G')) { // Get current offset
SENDLINE_PGM("A31V "); if (isPrinting()) {
// When printing use the live z Offset position SEND_PGM("A31V ");
// we will use babystepping to move the print head LCD_SERIAL.print(live_Zoffset, 2);
if (isPrinting()) SENDLINE_PGM("");
LCD_SERIAL.println(live_Zoffset); } else {
else { SEND_PGM("A31V ");
LCD_SERIAL.println(getZOffset_mm()); LCD_SERIAL.print(getZOffset_mm(), 2);
SENDLINE_PGM("");
selectedmeshpoint.x = selectedmeshpoint.y = 99; selectedmeshpoint.x = selectedmeshpoint.y = 99;
} }
} }
@@ -1584,7 +1600,6 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
const float currZpos = getAxisPosition_mm(Z); const float currZpos = getAxisPosition_mm(Z);
SERIAL_ECHOLNPGM("Nudge Z pos from ", currZpos, " to ", currZpos + constrain(Zshift, -0.05, 0.05)); SERIAL_ECHOLNPGM("Nudge Z pos from ", currZpos, " to ", currZpos + constrain(Zshift, -0.05, 0.05));
#endif #endif
// Use babystepping to adjust the head position
int16_t steps = mmToWholeSteps(constrain(Zshift,-0.05,0.05), Z); int16_t steps = mmToWholeSteps(constrain(Zshift,-0.05,0.05), Z);
#if ENABLED(ANYCUBIC_TFT_DEBUG) #if ENABLED(ANYCUBIC_TFT_DEBUG)
SERIAL_ECHOLNPGM("Steps to move Z: ", steps); SERIAL_ECHOLNPGM("Steps to move Z: ", steps);
@@ -1592,8 +1607,10 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
babystepAxis_steps(steps, Z); babystepAxis_steps(steps, Z);
live_Zoffset += Zshift; live_Zoffset += Zshift;
} }
SENDLINE_PGM("A31V ");
LCD_SERIAL.println(live_Zoffset); SEND_PGM("A31V ");
LCD_SERIAL.print(live_Zoffset, 2);
SENDLINE_PGM("");
} }
else { else {
GRID_LOOP(x, y) { GRID_LOOP(x, y) {
@@ -1610,8 +1627,10 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
#endif #endif
setZOffset_mm(currZOffset + Zshift); setZOffset_mm(currZOffset + Zshift);
SENDLINE_PGM("A31V ");
LCD_SERIAL.println(getZOffset_mm()); SEND_PGM("A31V ");
LCD_SERIAL.print(getZOffset_mm(), 2);
SENDLINE_PGM("");
if (isAxisPositionKnown(Z)) { if (isAxisPositionKnown(Z)) {
const float currZpos = getAxisPosition_mm(Z); const float currZpos = getAxisPosition_mm(Z);
@@ -1688,17 +1707,32 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
case 41: case 41:
if (CodeSeen('O')) { if (CodeSeen('O')) {
PrintdoneAndPowerOFF = true; PrintdoneAndPowerOFF = true;
#if ENABLED(ANYCUBIC_TFT_DEBUG)
SERIAL_ECHOLNPGM("TFT Serial Debug: PrintdoneAndPowerOFF is set!");
#endif
break; break;
} }
else if (CodeSeen('C')) { else if (CodeSeen('C')) {
PrintdoneAndPowerOFF = false; PrintdoneAndPowerOFF = false;
#if ENABLED(ANYCUBIC_TFT_DEBUG)
SERIAL_ECHOLNPGM("TFT Serial Debug: PrintdoneAndPowerOFF is disabled!");
#endif
break; break;
} }
if (CodeSeen('S')) { if (CodeSeen('S')) {
if (PrintdoneAndPowerOFF) if (PrintdoneAndPowerOFF) {
SENDLINE_PGM("J35 "); #if ENABLED(ANYCUBIC_TFT_DEBUG)
else SERIAL_ECHOLNPGM("TFT Serial Debug: Sending J35 because PrintdoneAndPowerOFF = true");
SENDLINE_PGM("J34 "); #endif
SEND_PGM("J35 ");
SENDLINE_PGM("");
} else {
#if ENABLED(ANYCUBIC_TFT_DEBUG)
SERIAL_ECHOLNPGM("TFT Serial Debug: Sending J34 because PrintdoneAndPowerOFF = false");
#endif
SEND_PGM("J34 ");
SENDLINE_PGM("");
}
} }
break; break;
@@ -1906,6 +1940,9 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
#if ENABLED(KNUTWURST_4MAXP2) #if ENABLED(KNUTWURST_4MAXP2)
void PowerDown() { void PowerDown() {
#if ENABLED(ANYCUBIC_TFT_DEBUG)
SERIAL_ECHOLNPGM("TFT Serial Debug: PowerDown is called!");
#endif
for (unsigned char i = 0; i < 3; i++) { for (unsigned char i = 0; i < 3; i++) {
WRITE(POWER_OFF_PIN, LOW); WRITE(POWER_OFF_PIN, LOW);
delay(10); delay(10);
@@ -1934,6 +1971,13 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
} }
} }
#if ENABLED(KNUTWURST_4MAXP2)
if (PrintdoneAndPowerOFF && powerOFFflag && (thermalManager.degHotend(0) < 50 )) {
powerOFFflag = 0;
PowerDown();
}
#endif
if (TFTbuflen < (TFTBUFSIZE - 1)) if (TFTbuflen < (TFTBUFSIZE - 1))
GetCommandFromTFT(); GetCommandFromTFT();
@@ -1945,9 +1989,12 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
void AnycubicTouchscreenClass::OnPrintTimerStarted() { void AnycubicTouchscreenClass::OnPrintTimerStarted() {
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
if (mediaPrintingState == AMPRINTSTATE_PRINTING) if (mediaPrintingState == AMPRINTSTATE_PRINTING) {
SENDLINE_DBG_PGM("J04", "TFT Serial Debug: Starting SD Print... J04"); // J04 Starting Print SENDLINE_DBG_PGM("J04", "TFT Serial Debug: Starting SD Print... soft endstops disabled J04"); // J04 Starting Print
setSoftEndstopState(false);
live_Zoffset = 0.0;
powerOFFflag = 0;
}
#endif #endif
} }
@@ -1965,7 +2012,9 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
if (mediaPrintingState == AMPRINTSTATE_PRINTING) { if (mediaPrintingState == AMPRINTSTATE_PRINTING) {
mediaPrintingState = AMPRINTSTATE_NOT_PRINTING; mediaPrintingState = AMPRINTSTATE_NOT_PRINTING;
mediaPauseState = AMPAUSESTATE_NOT_PAUSED; mediaPauseState = AMPAUSESTATE_NOT_PAUSED;
SENDLINE_DBG_PGM("J14", "TFT Serial Debug: SD Print Completed... J14"); setSoftEndstopState(true);
powerOFFflag = 1;
SENDLINE_DBG_PGM("J14", "TFT Serial Debug: SD Print Completed... soft endstops enabled J14");
} }
// otherwise it was stopped by the printer so don't send print completed signal to TFT // otherwise it was stopped by the printer so don't send print completed signal to TFT
#endif #endif

View File

@@ -57,178 +57,139 @@ enum AnycubicMediaPauseState {
AMPAUSESTATE_PAUSED AMPAUSESTATE_PAUSED
}; };
#define SM_DIR_UP_S "DIR_UP~1.GCO"
#define SM_SPECIAL_MENU_S "<SPECI~1.GCO"
#define SM_PID_HOTEND_S "<PIDTU~1.GCO"
#define SM_PID_BED_S "<PIDTU~2.GCO"
#define SM_SAVE_EEPROM_S "<SAVEE~1.GCO"
#define SM_LOAD_DEFAULTS_S "<LOADF~1.GCO"
#define SM_PREHEAT_BED_S "<PREHE~1.GCO"
#define SM_MESH_MENU_S "<MESHL~1.GCO"
#define SM_MESH_START_S "<START~1.GCO"
#define SM_MESH_NEXT_S "<NEXTM~1.GCO"
#define SM_Z_UP_01_S "<ZUP01~1.GCO"
#define SM_Z_DN_01_S "<ZDOWN~1.GCO"
#define SM_Z_UP_002_S "<ZUP00~1.GCO"
#define SM_Z_DN_002_S "<ZDOWN~2.GCO"
#define SM_Z_UP_001_S "<ZUP00~2.GCO"
#define SM_Z_DN_001_S "<ZDOWN~3.GCO"
#define SM_BLTOUCH_S "<BLTOU~1.GCO"
#define SM_RESETLV_S "<RSTLV~1.GCO"
#define SM_PAUSE_S "<FILCH~2.GCO"
#define SM_RESUME_S "<FILCH~1.GCO"
#define SM_DIS_FILSENS_S "<DISAB~1.GCO"
#define SM_EN_FILSENS_S "<ENABL~1.GCO"
#define SM_EXIT_S "<EXIT_~1.GCO"
#define SM_BACK_S "<BACK_~1.GCO"
#define SM_FLOWMENU_S "<SETFLO1.GCO"
#define SM_FLOW_DISP_S "<FLDISPL.GCO"
#define SM_FLOW_UP_S "<UPFLOW1.GCO"
#define SM_FLOW_DN_S "<DWNFLOW.GCO"
#define SM_FLOW_EXIT_S "<EXTFLW1.GCO"
#define SM_EZLVL_MENU_S "<EZLVLM1.GCO"
#define SM_EZLVL_P1_S "<EZLPA01.GCO"
#define SM_EZLVL_P2_S "<EZLPB01.GCO"
#define SM_EZLVL_P3_S "<EZLPC01.GCO"
#define SM_EZLVL_P4_S "<EZLPD01.GCO"
#define SM_EZLVL_EXIT_S "<EZLEXT1.GCO"
#define SM_BLTZMENU_S "<SETOFZ0.GCO"
#define SM_BLTZ_DISP_S "<OFZDSP0.GCO"
#define SM_BLTZ_UP_S "<UPOFFZ0.GCO"
#define SM_BLTZ_DN_S "<DOWNOFZ.GCO"
#define SM_BLTZ_EXIT_S "<EXTABLM.GCO"
#define SM_HS_DISABLE_S "<HSDISAB.GCO"
#define SM_HS_ENABLE_S "<HSENABL.GCO"
#if DISABLED(KNUTWURST_DGUS2_TFT) #if DISABLED(KNUTWURST_DGUS2_TFT)
#define SM_DIR_UP_L "/.." #define SM_DIR_UP_L "/.."
#define SM_DIR_UP_S ".."
#define SM_SPECIAL_MENU_L "<Special Menu>" #define SM_SPECIAL_MENU_L "<Special Menu>"
#define SM_SPECIAL_MENU_S "<SPECM>"
#define SM_PID_HOTEND_L "<PID Tune Hotend>" #define SM_PID_HOTEND_L "<PID Tune Hotend>"
#define SM_PID_HOTEND_S "<PIDHE>"
#define SM_PID_BED_L "<PID Tune Ultrabase>" #define SM_PID_BED_L "<PID Tune Ultrabase>"
#define SM_PID_BED_S "<PIDUB>"
#define SM_SAVE_EEPROM_L "<Save EEPROM>" #define SM_SAVE_EEPROM_L "<Save EEPROM>"
#define SM_SAVE_EEPROM_S "<SAVEE>"
#define SM_LOAD_DEFAULTS_L "<Load FW Defaults>" #define SM_LOAD_DEFAULTS_L "<Load FW Defaults>"
#define SM_LOAD_DEFAULTS_S "<LDDEF>"
#define SM_PREHEAT_BED_L "<Preheat Ultrabase>" #define SM_PREHEAT_BED_L "<Preheat Ultrabase>"
#define SM_PREHEAT_BED_S "<PREHE>"
#define SM_MESH_MENU_L "<Mesh Leveling>" #define SM_MESH_MENU_L "<Mesh Leveling>"
#define SM_MESH_MENU_S "<MESHL>"
#define SM_MESH_START_L "<Start Mesh Leveling>" #define SM_MESH_START_L "<Start Mesh Leveling>"
#define SM_MESH_START_S "<SMESH>"
#define SM_MESH_NEXT_L "<Next Mesh Point>" #define SM_MESH_NEXT_L "<Next Mesh Point>"
#define SM_MESH_NEXT_S "<NEXTM>"
#define SM_Z_UP_01_L "<Z Up 0.1>" #define SM_Z_UP_01_L "<Z Up 0.1>"
#define SM_Z_UP_01_S "<ZUP01>"
#define SM_Z_DN_01_L "<Z Down 0.1>" #define SM_Z_DN_01_L "<Z Down 0.1>"
#define SM_Z_DN_01_S "<ZDN01>"
#define SM_Z_UP_002_L "<Z Up 0.02>" #define SM_Z_UP_002_L "<Z Up 0.02>"
#define SM_Z_UP_002_S "<ZUP002>"
#define SM_Z_DN_002_L "<Z Down 0.02>" #define SM_Z_DN_002_L "<Z Down 0.02>"
#define SM_Z_DN_002_S "<ZDN002>"
#define SM_Z_UP_001_L "<Z Up 0.01>" #define SM_Z_UP_001_L "<Z Up 0.01>"
#define SM_Z_UP_001_S "<ZUP001>"
#define SM_Z_DN_001_L "<Z Down 0.01>" #define SM_Z_DN_001_L "<Z Down 0.01>"
#define SM_Z_DN_001_S "<ZDN001>"
#define SM_BLTOUCH_L "<Start Auto Leveling>" #define SM_BLTOUCH_L "<Start Auto Leveling>"
#define SM_BLTOUCH_S "<BLTCH>"
#define SM_RESETLV_L "<Reset Level Grid>" #define SM_RESETLV_L "<Reset Level Grid>"
#define SM_RESETLV_S "<RSTLV>"
#define SM_PAUSE_L "<Fil. Change Pause>" #define SM_PAUSE_L "<Fil. Change Pause>"
#define SM_PAUSE_S "<PAUSE>"
#define SM_RESUME_L "<Fil. Change Resume>" #define SM_RESUME_L "<Fil. Change Resume>"
#define SM_RESUME_S "<RESUM>"
#define SM_DIS_FILSENS_L "<Disable Fil. Sensor>" #define SM_DIS_FILSENS_L "<Disable Fil. Sensor>"
#define SM_DIS_FILSENS_S "<DISSEN>"
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>" #define SM_EN_FILSENS_L "<Enable Fil. Sensor>"
#define SM_EN_FILSENS_S "<ENSEN>"
#define SM_EXIT_L "<Exit>" #define SM_EXIT_L "<Exit>"
#define SM_EXIT_S "<SMEXIT>"
#define SM_BACK_L "<End Mesh Leveling>" #define SM_BACK_L "<End Mesh Leveling>"
#define SM_BACK_S "<BACK>"
#define SM_FLOWMENU_L "<Set Flowrate>" #define SM_FLOWMENU_L "<Set Flowrate>"
#define SM_FLOWMENU_S "<SETFLO>"
#define SM_FLOW_DISP_L "<Flow is XXX>" #define SM_FLOW_DISP_L "<Flow is XXX>"
#define SM_FLOW_DISP_S "<FLDISP>"
#define SM_FLOW_UP_L "<Up>" #define SM_FLOW_UP_L "<Up>"
#define SM_FLOW_UP_S "<FLUP>"
#define SM_FLOW_DN_L "<Down>" #define SM_FLOW_DN_L "<Down>"
#define SM_FLOW_DN_S "<FLDN>"
#define SM_FLOW_EXIT_L "<Exit Flow Settings>" #define SM_FLOW_EXIT_L "<Exit Flow Settings>"
#define SM_FLOW_EXIT_S "<EXTFLW>"
#define SM_EZLVL_MENU_L "<Easy 4 Point Level>" #define SM_EZLVL_MENU_L "<Easy 4 Point Level>"
#define SM_EZLVL_MENU_S "<EZLVLM>"
#define SM_EZLVL_P1_L "<Point A>" #define SM_EZLVL_P1_L "<Point A>"
#define SM_EZLVL_P1_S "<EZLPA>"
#define SM_EZLVL_P2_L "<Point B>" #define SM_EZLVL_P2_L "<Point B>"
#define SM_EZLVL_P2_S "<EZLPB>"
#define SM_EZLVL_P3_L "<Point C>" #define SM_EZLVL_P3_L "<Point C>"
#define SM_EZLVL_P3_S "<EZLPC>"
#define SM_EZLVL_P4_L "<Point D>" #define SM_EZLVL_P4_L "<Point D>"
#define SM_EZLVL_P4_S "<EZLPD>"
#define SM_EZLVL_EXIT_L "<Exit Easy Level>" #define SM_EZLVL_EXIT_L "<Exit Easy Level>"
#define SM_EZLVL_EXIT_S "<EZLEXT>"
#define SM_BLTZMENU_L "<Auto Leveling>" #define SM_BLTZMENU_L "<Auto Leveling>"
#define SM_BLTZMENU_S "<SETOFZ>"
#define SM_BLTZ_DISP_L "<Z Offset: XXXXX>" #define SM_BLTZ_DISP_L "<Z Offset: XXXXX>"
#define SM_BLTZ_DISP_S "<OFZDSP>"
#define SM_BLTZ_UP_L "<Up>" #define SM_BLTZ_UP_L "<Up>"
#define SM_BLTZ_UP_S "<UPOFFZ0>"
#define SM_BLTZ_DN_L "<Down>" #define SM_BLTZ_DN_L "<Down>"
#define SM_BLTZ_DN_S "<DNOFFZ0>"
#define SM_BLTZ_EXIT_L "<SAVE and EXIT>" #define SM_BLTZ_EXIT_L "<SAVE and EXIT>"
#define SM_BLTZ_EXIT_S "<EXTABLM>" #define SM_HS_DISABLE_L "<Disable HiSpeed Mode>"
#define SM_HS_ENABLE_L "<Enable HiSpeed Mode>"
#endif // !KNUTWURST_DGUS2_TFT #endif // !KNUTWURST_DGUS2_TFT
#if ENABLED(KNUTWURST_DGUS2_TFT) #if ENABLED(KNUTWURST_DGUS2_TFT)
#define SM_DIR_UP_L "/.. .gcode" #define SM_DIR_UP_L "/.. .gcode"
#define SM_DIR_UP_S "DIR_UP~1.GCO"
#define SM_SPECIAL_MENU_L "<Special Menu> .gcode" #define SM_SPECIAL_MENU_L "<Special Menu> .gcode"
#define SM_SPECIAL_MENU_S "<SPECI~1.GCO"
#define SM_PID_HOTEND_L "<PID Tune Hotend> .gcode" #define SM_PID_HOTEND_L "<PID Tune Hotend> .gcode"
#define SM_PID_HOTEND_S "<PIDTU~1.GCO"
#define SM_PID_BED_L "<PID Tune Ultrabase>.gcode" #define SM_PID_BED_L "<PID Tune Ultrabase>.gcode"
#define SM_PID_BED_S "<PIDTU~2.GCO"
#define SM_SAVE_EEPROM_L "<Save EEPROM> .gcode" #define SM_SAVE_EEPROM_L "<Save EEPROM> .gcode"
#define SM_SAVE_EEPROM_S "<SAVEE~1.GCO"
#define SM_LOAD_DEFAULTS_L "<Load FW Defaults> .gcode" #define SM_LOAD_DEFAULTS_L "<Load FW Defaults> .gcode"
#define SM_LOAD_DEFAULTS_S "<LOADF~1.GCO"
#define SM_PREHEAT_BED_L "<Preheat Ultrabase> .gcode" #define SM_PREHEAT_BED_L "<Preheat Ultrabase> .gcode"
#define SM_PREHEAT_BED_S "<PREHE~1.GCO"
#define SM_MESH_MENU_L "<Mesh Leveling> .gcode" #define SM_MESH_MENU_L "<Mesh Leveling> .gcode"
#define SM_MESH_MENU_S "<MESHL~1.GCO"
#define SM_MESH_START_L "<Start MeshLeveling>.gcode" #define SM_MESH_START_L "<Start MeshLeveling>.gcode"
#define SM_MESH_START_S "<START~1.GCO"
#define SM_MESH_NEXT_L "<Next Mesh Point> .gcode" #define SM_MESH_NEXT_L "<Next Mesh Point> .gcode"
#define SM_MESH_NEXT_S "<NEXTM~1.GCO"
#define SM_Z_UP_01_L "<Z Up 0.1> .gcode" #define SM_Z_UP_01_L "<Z Up 0.1> .gcode"
#define SM_Z_UP_01_S "<ZUP01~1.GCO"
#define SM_Z_DN_01_L "<Z Down 0.1> .gcode" #define SM_Z_DN_01_L "<Z Down 0.1> .gcode"
#define SM_Z_DN_01_S "<ZDOWN~1.GCO"
#define SM_Z_UP_002_L "<Z Up 0.02> .gcode" #define SM_Z_UP_002_L "<Z Up 0.02> .gcode"
#define SM_Z_UP_002_S "<ZUP00~1.GCO"
#define SM_Z_DN_002_L "<Z Down 0.02> .gcode" #define SM_Z_DN_002_L "<Z Down 0.02> .gcode"
#define SM_Z_DN_002_S "<ZDOWN~2.GCO"
#define SM_Z_UP_001_L "<Z Up 0.01> .gcode" #define SM_Z_UP_001_L "<Z Up 0.01> .gcode"
#define SM_Z_UP_001_S "<ZUP00~2.GCO"
#define SM_Z_DN_001_L "<Z Down 0.01> .gcode" #define SM_Z_DN_001_L "<Z Down 0.01> .gcode"
#define SM_Z_DN_001_S "<ZDOWN~3.GCO"
#define SM_BLTOUCH_L "<Start AutoLeveling>.gcode" #define SM_BLTOUCH_L "<Start AutoLeveling>.gcode"
#define SM_BLTOUCH_S "<BLTOU~1.GCO"
#define SM_RESETLV_L "<Reset Level Grid> .gcode" #define SM_RESETLV_L "<Reset Level Grid> .gcode"
#define SM_RESETLV_S "<RSTLV~1.GCO>"
#define SM_PAUSE_L "<Fil. Change Pause> .gcode" #define SM_PAUSE_L "<Fil. Change Pause> .gcode"
#define SM_PAUSE_S "<FILCH~2.GCO"
#define SM_RESUME_L "<Fil. Change Resume>.gcode" #define SM_RESUME_L "<Fil. Change Resume>.gcode"
#define SM_RESUME_S "<FILCH~1.GCO"
#define SM_DIS_FILSENS_L "<Disable Fil.Sensor>.gcode" #define SM_DIS_FILSENS_L "<Disable Fil.Sensor>.gcode"
#define SM_DIS_FILSENS_S "<DISAB~1.GCO"
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>.gcode" #define SM_EN_FILSENS_L "<Enable Fil. Sensor>.gcode"
#define SM_EN_FILSENS_S "<ENABL~1.GCO"
#define SM_EXIT_L "<Exit> .gcode" #define SM_EXIT_L "<Exit> .gcode"
#define SM_EXIT_S "<EXIT_~1.GCO"
#define SM_BACK_L "<End Mesh Leveling> .gcode" #define SM_BACK_L "<End Mesh Leveling> .gcode"
#define SM_BACK_S "<BACK_~1.GCO"
#define SM_FLOWMENU_L "<Set Flowrate> .gcode" #define SM_FLOWMENU_L "<Set Flowrate> .gcode"
#define SM_FLOWMENU_S "<SETFLO1.GCO"
#define SM_FLOW_DISP_L "<Flow is XXX%> .gcode" #define SM_FLOW_DISP_L "<Flow is XXX%> .gcode"
#define SM_FLOW_DISP_S "<FLDISPL.GCO"
#define SM_FLOW_UP_L "<Up> .gcode" #define SM_FLOW_UP_L "<Up> .gcode"
#define SM_FLOW_UP_S "<UPFLOW1.GCO"
#define SM_FLOW_DN_L "<Down> .gcode" #define SM_FLOW_DN_L "<Down> .gcode"
#define SM_FLOW_DN_S "<DWNFLOW.GCO"
#define SM_FLOW_EXIT_L "<Exit Flow Settings>.gcode" #define SM_FLOW_EXIT_L "<Exit Flow Settings>.gcode"
#define SM_FLOW_EXIT_S "<EXTFLW1.GCO"
#define SM_EZLVL_MENU_L "<Easy 4 Point Level>.gcode" #define SM_EZLVL_MENU_L "<Easy 4 Point Level>.gcode"
#define SM_EZLVL_MENU_S "<EZLVLM1.GCO"
#define SM_EZLVL_P1_L "<Point A> .gcode" #define SM_EZLVL_P1_L "<Point A> .gcode"
#define SM_EZLVL_P1_S "<EZLPA01.GCO"
#define SM_EZLVL_P2_L "<Point B> .gcode" #define SM_EZLVL_P2_L "<Point B> .gcode"
#define SM_EZLVL_P2_S "<EZLPB01.GCO"
#define SM_EZLVL_P3_L "<Point C> .gcode" #define SM_EZLVL_P3_L "<Point C> .gcode"
#define SM_EZLVL_P3_S "<EZLPC01.GCO"
#define SM_EZLVL_P4_L "<Point D> .gcode" #define SM_EZLVL_P4_L "<Point D> .gcode"
#define SM_EZLVL_P4_S "<EZLPD01.GCO"
#define SM_EZLVL_EXIT_L "<Exit Easy Leveling>.gcode" #define SM_EZLVL_EXIT_L "<Exit Easy Leveling>.gcode"
#define SM_EZLVL_EXIT_S "<EZLEXT1.GCO"
#define SM_BLTZMENU_L "<Auto Leveling> .gcode" #define SM_BLTZMENU_L "<Auto Leveling> .gcode"
#define SM_BLTZMENU_S "<SETOFZ0.GCO"
#define SM_BLTZ_DISP_L "<Z Offset: XXXXX> .gcode" #define SM_BLTZ_DISP_L "<Z Offset: XXXXX> .gcode"
#define SM_BLTZ_DISP_S "<OFZDSP0.GCO"
#define SM_BLTZ_UP_L "<Up> .gcode" #define SM_BLTZ_UP_L "<Up> .gcode"
#define SM_BLTZ_UP_S "<UPOFFZ0.GCO"
#define SM_BLTZ_DN_L "<Down> .gcode" #define SM_BLTZ_DN_L "<Down> .gcode"
#define SM_BLTZ_DN_S "<DOWNOFZ.GCO"
#define SM_BLTZ_EXIT_L "<SAVE and EXIT> .gcode" #define SM_BLTZ_EXIT_L "<SAVE and EXIT> .gcode"
#define SM_BLTZ_EXIT_S "<EXTABLM.GCO" #define SM_HS_DISABLE_L "<Disable HiSpeed> .gcode"
#define SM_HS_ENABLE_L "<Enable HiSpeed> .gcode"
#endif // KNUTWURST_DGUS2_TFT #endif // KNUTWURST_DGUS2_TFT
class AnycubicTouchscreenClass { class AnycubicTouchscreenClass {
@@ -244,9 +205,9 @@ void UserConfirmRequired(const char *);
void SDCardStateChange(bool); void SDCardStateChange(bool);
void SDCardError(); void SDCardError();
void KillTFT(); void KillTFT();
static void OnPrintTimerStarted(); void OnPrintTimerStarted();
static void OnPrintTimerPaused(); void OnPrintTimerPaused();
static void OnPrintTimerStopped(); void OnPrintTimerStopped();
#if BOTH(ANYCUBIC_TFT_DEBUG, KNUTWURST_DGUS2_TFT) #if BOTH(ANYCUBIC_TFT_DEBUG, KNUTWURST_DGUS2_TFT)
void Command(const char * const command); void Command(const char * const command);
@@ -266,20 +227,13 @@ int serial3_count = 0;
char *TFTstrchr_pointer; char *TFTstrchr_pointer;
char FlagResumFromOutage = 0; char FlagResumFromOutage = 0;
int filenumber = 0; int filenumber = 0;
unsigned long starttime = 0;
unsigned long stoptime = 0;
uint8_t tmp_extruder = 0; uint8_t tmp_extruder = 0;
char LastSDstatus = 0;
uint16_t HeaterCheckCount = 0; uint16_t HeaterCheckCount = 0;
bool IsParked = false;
int currentFlowRate = 0; int currentFlowRate = 0;
bool PrintdoneAndPowerOFF = true; bool PrintdoneAndPowerOFF = true;
bool powerOFFflag = 0; bool powerOFFflag = 0;
xy_uint8_t selectedmeshpoint;
#if ENABLED(KNUTWURST_TFT_LEVELING) float live_Zoffset;
xy_uint8_t selectedmeshpoint;
float live_Zoffset;
#endif
static AnycubicMediaPrintState mediaPrintingState; static AnycubicMediaPrintState mediaPrintingState;
static AnycubicMediaPauseState mediaPauseState; static AnycubicMediaPauseState mediaPauseState;
@@ -301,16 +255,13 @@ float CodeValue();
bool CodeSeen(char); bool CodeSeen(char);
void StartPrint(); void StartPrint();
void PausePrint(); void PausePrint();
void ResumePrint();
void StopPrint(); void StopPrint();
void StateHandler();
void GetCommandFromTFT(); void GetCommandFromTFT();
void CheckSDCardChange(); void CheckSDCardChange();
void CheckHeaterError(); void CheckHeaterError();
void HandleSpecialMenu();
void FilamentChangePause(); void FilamentChangePause();
void ResumePrint(); void HandleSpecialMenu();
void ReheatNozzle();
void ParkAfterStop();
void RenderCurrentFileList(); void RenderCurrentFileList();
void RenderSpecialMenu(uint16_t); void RenderSpecialMenu(uint16_t);
void RenderCurrentFolder(uint16_t); void RenderCurrentFolder(uint16_t);
@@ -319,7 +270,6 @@ char currentTouchscreenSelection[64];
char currentFileOrDirectory[64]; char currentFileOrDirectory[64];
String flowRateBuffer; String flowRateBuffer;
String zOffsetBuffer; String zOffsetBuffer;
uint8_t FilamentSensorEnabled = true;
uint8_t SpecialMenu = false; uint8_t SpecialMenu = false;
uint8_t MMLMenu = false; uint8_t MMLMenu = false;