diff --git a/Marlin/src/lcd/anycubic_touchscreen.cpp b/Marlin/src/lcd/anycubic_touchscreen.cpp index cd158f64..23805d9d 100755 --- a/Marlin/src/lcd/anycubic_touchscreen.cpp +++ b/Marlin/src/lcd/anycubic_touchscreen.cpp @@ -123,6 +123,8 @@ void AnycubicTouchscreenClass::Setup() #endif pinMode(FILAMENT_RUNOUT_PIN, INPUT); WRITE(FILAMENT_RUNOUT_PIN, HIGH); + +/* #if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR) if ((READ(FILAMENT_RUNOUT_PIN) == true) && FilamentSensorEnabled) { @@ -133,13 +135,16 @@ void AnycubicTouchscreenClass::Setup() #endif } #endif +*/ currentTouchscreenSelection[0] = 0; currentFileOrDirectory[0] = '\0'; SpecialMenu = false; MMLMenu = false; + FlowMenu = false; FilamentSensorEnabled = true; MyFileNrCnt = 0; + currentFlowRate = 100; #ifdef STARTUP_CHIME buzzer.tone(100, 554); @@ -488,12 +493,16 @@ void AnycubicTouchscreenClass::HandleSpecialMenu() } #if DISABLED(KNUTWURST_BLTOUCH) + else if ((strcasestr(currentTouchscreenSelection, SM_MESH_MENU_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_MESH_MENU_S) != NULL)) + { + MMLMenu = true; + } 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")); - MMLMenu = true; } else if ((strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_L) != NULL) || (strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_S) != NULL)) @@ -588,6 +597,45 @@ void AnycubicTouchscreenClass::HandleSpecialMenu() || (strcasestr(currentTouchscreenSelection, SM_BACK_S) != NULL)) { MMLMenu = false; + } + else if ((strcasestr(currentTouchscreenSelection, SM_FLOWMENU_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_FLOWMENU_S) != NULL)) + { + SERIAL_ECHOLNPGM("Special Menu: Enter Flow Menu"); + FlowMenu = true; + } + else if ((strcasestr(currentTouchscreenSelection, SM_FLOW_UP_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_FLOW_UP_S) != NULL)) + { + SERIAL_ECHOLNPGM("Special Menu: Flow UP"); + currentFlowRate = currentFlowRate + 5; + + if(currentFlowRate > 800) + currentFlowRate = 800; + + char value[30]; + sprintf_P(value, PSTR("M221 S%i"), currentFlowRate); + queue.enqueue_one_now(value); + + } + else if ((strcasestr(currentTouchscreenSelection, SM_FLOW_DN_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_FLOW_DN_S) != NULL)) + { + SERIAL_ECHOLNPGM("Special Menu: Flow Down"); + currentFlowRate = currentFlowRate - 5; + + if(currentFlowRate < 5) + currentFlowRate = 5; + + char value[30]; + sprintf_P(value, PSTR("M221 S%i"), currentFlowRate); + queue.enqueue_one_now(value); + } + else if ((strcasestr(currentTouchscreenSelection, SM_FLOW_EXIT_L) != NULL) + || (strcasestr(currentTouchscreenSelection, SM_FLOW_EXIT_S) != NULL)) + { + SERIAL_ECHOLNPGM("Special Menu: Exit Flow Menu"); + FlowMenu = false; } } @@ -599,23 +647,30 @@ void AnycubicTouchscreenClass::PrintList() switch (filenumber) { case 0: // Page 1 + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_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); 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); break; case 4: // Page 2 + 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); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_L); + break; + + case 8: // Page 2 + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BACK_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BACK_L); break; @@ -624,13 +679,35 @@ void AnycubicTouchscreenClass::PrintList() break; } } + else if(FlowMenu) + { + String blah = SM_FLOW_DISP_L; + blah.replace("XXX", String(currentFlowRate)); + + switch (filenumber) + { + case 0: // Page 1 + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_FLOW_DISP_S); + HARDWARE_SERIAL_PROTOCOLLN(blah); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_FLOW_UP_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_FLOW_UP_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_FLOW_DN_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_FLOW_DN_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_FLOW_EXIT_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_FLOW_EXIT_L); + break; + + default: + break; + } + } else if (SpecialMenu) { switch (filenumber) { case 0: // Page 1 - HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S); - HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_FLOWMENU_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_FLOWMENU_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PREHEAT_BED_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PREHEAT_BED_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PAUSE_S); @@ -641,8 +718,8 @@ void AnycubicTouchscreenClass::PrintList() #if DISABLED(KNUTWURST_BLTOUCH) case 4: // Page 2 - HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_S); - HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_L); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_MENU_S); + HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_MENU_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S); diff --git a/Marlin/src/lcd/anycubic_touchscreen.h b/Marlin/src/lcd/anycubic_touchscreen.h index db7e3424..7cd7faac 100755 --- a/Marlin/src/lcd/anycubic_touchscreen.h +++ b/Marlin/src/lcd/anycubic_touchscreen.h @@ -61,6 +61,8 @@ char *ftostr32(const float &); #define SM_LOAD_DEFAULTS_S "" #define SM_PREHEAT_BED_L "" #define SM_PREHEAT_BED_S "" +#define SM_MESH_MENU_L "" +#define SM_MESH_MENU_S "" #define SM_MESH_START_L "" #define SM_MESH_START_S "" #define SM_MESH_NEXT_L "" @@ -89,8 +91,20 @@ char *ftostr32(const float &); #define SM_EN_FILSENS_S "" #define SM_EXIT_L "" #define SM_EXIT_S "" + #define SM_BACK_L "" #define SM_BACK_S "" + +#define SM_FLOWMENU_L "" +#define SM_FLOWMENU_S "" +#define SM_FLOW_DISP_L "" +#define SM_FLOW_DISP_S "" +#define SM_FLOW_UP_L "" +#define SM_FLOW_UP_S "" +#define SM_FLOW_DN_L "" +#define SM_FLOW_DN_S "" +#define SM_FLOW_EXIT_L "" +#define SM_FLOW_EXIT_S "" #endif #if ENABLED(KNUTWURST_DGUS2_TFT) @@ -108,7 +122,9 @@ char *ftostr32(const float &); #define SM_LOAD_DEFAULTS_S " .gcode" #define SM_PREHEAT_BED_S " .gcode" +#define SM_MESH_MENU_L " .gcode" +#define SM_MESH_MENU_S ".gcode" #define SM_MESH_START_S " .gcode" #define SM_MESH_NEXT_S " .gcode" #define SM_EXIT_S " .gcode" #define SM_BACK_S " .gcode" +#define SM_FLOWMENU_S " .gcode" +#define SM_FLOW_DISP_S " .gcode" +#define SM_FLOW_UP_S " .gcode" +#define SM_FLOW_DN_S " .gcode" +#define SM_FLOW_EXIT_S "