From 12545edfc76b63d600cdc1bf97db58274f315ba4 Mon Sep 17 00:00:00 2001 From: Knutwurst <36196269+knutwurst@users.noreply.github.com> Date: Sun, 9 Jan 2022 14:34:15 +0100 Subject: [PATCH] Add Anycubic 0.0.2 debug feature --- Marlin/src/gcode/anycubic_tft_debug/M9999.cpp | 40 +++++++++++++++++++ Marlin/src/gcode/feature/pause/M600.cpp | 2 +- Marlin/src/gcode/gcode.cpp | 4 ++ Marlin/src/gcode/gcode.h | 4 ++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 Marlin/src/gcode/anycubic_tft_debug/M9999.cpp diff --git a/Marlin/src/gcode/anycubic_tft_debug/M9999.cpp b/Marlin/src/gcode/anycubic_tft_debug/M9999.cpp new file mode 100644 index 00000000..c75d9cfa --- /dev/null +++ b/Marlin/src/gcode/anycubic_tft_debug/M9999.cpp @@ -0,0 +1,40 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfig.h" + +#if BOTH(ANYCUBIC_TFT_DEBUG, KNUTWURST_DGUS2_TFT) + +#include "../../lcd/anycubic_touchscreen.h" +#include "../gcode.h" + +void GcodeSuite::M9999() { + size_t len = strlen(parser.string_arg); + if (len > 2 && parser.string_arg[0] == 34) { + char cmd[30]; + strncpy(cmd, parser.string_arg + 1, min(len - 2, 30)); + cmd[len - 2] = 0; + AnycubicTouchscreen.Command(cmd); + } +} + +#endif diff --git a/Marlin/src/gcode/feature/pause/M600.cpp b/Marlin/src/gcode/feature/pause/M600.cpp index 19ffacd4..f3356d09 100755 --- a/Marlin/src/gcode/feature/pause/M600.cpp +++ b/Marlin/src/gcode/feature/pause/M600.cpp @@ -76,7 +76,7 @@ void GcodeSuite::M600() { if (AnycubicTouchscreen.ai3m_pause_state < 2) { AnycubicTouchscreen.ai3m_pause_state = 2; #ifdef ANYCUBIC_TFT_DEBUG - SERIAL_ECHOPAIR(" DEBUG: M600 - AI3M Pause State set to: ", AnycubicTouchscreen.ai3m_pause_state); + SERIAL_ECHOPGM(" DEBUG: M600 - AI3M Pause State set to: ", AnycubicTouchscreen.ai3m_pause_state); SERIAL_EOL(); #endif } diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 888dbe70..73496665 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -1040,6 +1040,10 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { case 7219: M7219(); break; // M7219: Set LEDs, columns, and rows #endif + #if BOTH(ANYCUBIC_TFT_DEBUG, KNUTWURST_DGUS2_TFT) + case 9999: M9999(); break; + #endif + default: parser.unknown_command_warning(); break; } break; diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index 4a3c865a..57664787 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -1187,6 +1187,10 @@ private: static void M710_report(const bool forReplay=true); #endif + #if BOTH(ANYCUBIC_TFT_DEBUG, KNUTWURST_DGUS2_TFT) + static void M9999(); + #endif + static void T(const int8_t tool_index); };