3030
3131#include " MarlinCore.h"
3232
33+ #define DEBUG_OUT ENABLED (MARLIN_DEV_MODE)
34+ #include " core/debug_out.h"
35+
3336#include " HAL/shared/Delay.h"
3437#include " HAL/shared/esp_wifi.h"
3538#include " HAL/shared/cpu_exception/exception_hook.h"
7780 #endif
7881#endif
7982
83+ #if ENABLED(CREALITY_RTS)
84+ #include " lcd/rts/lcd_rts.h"
85+ #endif
86+
8087#if HAS_ETHERNET
8188 #include " feature/ethernet.h"
8289#endif
@@ -376,7 +383,11 @@ void startOrResumeJob() {
376383 TERN_ (POWER_LOSS_RECOVERY, recovery.purge ());
377384
378385 #ifdef EVENT_GCODE_SD_ABORT
379- queue.inject (F (EVENT_GCODE_SD_ABORT));
386+ DEBUG_ECHOLNPGM (" abortSDPrinting" );
387+ // queue.inject(F(EVENT_GCODE_SD_ABORT));
388+ queue.enqueue_now (F (EVENT_GCODE_SD_ABORT));
389+ report_current_position ();
390+ TERN_ (CREALITY_RTS, RTS_UpdatePosition ());
380391 #endif
381392
382393 TERN_ (PASSWORD_AFTER_SD_PRINT_ABORT, password.lock_machine ());
@@ -385,6 +396,9 @@ void startOrResumeJob() {
385396 inline void finishSDPrinting () {
386397 if (queue.enqueue_one (F (" M1001" ))) { // Keep trying until it gets queued
387398 marlin_state = MF_RUNNING; // Signal to stop trying
399+ #ifdef EVENT_GCODE_SD_DONE
400+ gcode.process_subcommands_now (F (EVENT_GCODE_SD_DONE));
401+ #endif
388402 TERN_ (PASSWORD_AFTER_SD_PRINT_END, password.lock_machine ());
389403 TERN_ (DGUS_LCD_UI_MKS, ScreenHandler.SDPrintingFinished ());
390404 }
@@ -422,7 +436,7 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) {
422436 SERIAL_ERROR_START ();
423437 SERIAL_ECHOPGM (STR_KILL_PRE);
424438 SERIAL_ECHOLNPGM (STR_KILL_INACTIVE_TIME, parser.command_ptr );
425- kill ();
439+ TERN (CREALITY_RTS, RTS_StepperTimeout (), kill () );
426440 }
427441
428442 const bool has_blocks = planner.has_blocks_queued (); // Any moves in the planner?
@@ -453,7 +467,7 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) {
453467 TERN_ (AUTO_BED_LEVELING_UBL, bedlevel.steppers_were_disabled ());
454468 }
455469 }
456- else
470+ else // if (!parked_or_ignoring && gcode.stepper_inactive_timeout() && !card.isPrinting() && !IS_SD_PAUSED()) // rock_20220815
457471 already_shutdown_steppers = false ;
458472 }
459473 #endif
@@ -827,7 +841,10 @@ void idle(bool no_stepper_sleep/*=false*/) {
827841 #endif
828842
829843 // Handle SD Card insert / remove
830- TERN_ (SDSUPPORT, card.manage_media ());
844+ #if ENABLED(SDSUPPORT)
845+ if (TERN1 (CREALITY_RTS, !home_flag && !G29_flag)) // Avoid the problem of leveling and returning to zero, plugging and unplugging the card will affect the probe and report error 203
846+ card.manage_media ();
847+ #endif
831848
832849 // Handle USB Flash Drive insert / remove
833850 TERN_ (USB_FLASH_DRIVE_SUPPORT, card.diskIODriver ()->idle ());
@@ -842,7 +859,17 @@ void idle(bool no_stepper_sleep/*=false*/) {
842859 TERN_ (HAS_BEEPER, buzzer.tick ());
843860
844861 // Handle UI input / draw events
845- TERN (DWIN_CREALITY_LCD, DWIN_Update (), ui.update ());
862+ #if ENABLED(DWIN_CREALITY_LCD)
863+ DWIN_Update ();
864+ #elif ENABLED(CREALITY_RTS)
865+ RTS_Update ();
866+ #else
867+ ui.update ();
868+ #endif
869+
870+ #if ENABLED(PROBE_ACTIVATION_SWITCH)
871+ endstops.enable_z_probe (TERN1 (CREALITY_RTS, (home_flag || G29_flag)) && (LOW == READ (PROBE_ACTIVATION_SWITCH_PIN)));
872+ #endif
846873
847874 // Run i2c Position Encoders
848875 #if ENABLED(I2C_POSITION_ENCODERS)
@@ -878,6 +905,24 @@ void idle(bool no_stepper_sleep/*=false*/) {
878905 // Direct Stepping
879906 TERN_ (DIRECT_STEPPING, page_manager.write_responses ());
880907
908+ #if ENABLED(MENU_RESET_WIFI)
909+ static uint32_t wifi_recordms = 0 ;
910+
911+ if (WIFI_STATE == PRESSED) {
912+ wifi_recordms = millis ();
913+ wifi_recordms += 7000 ;
914+ WIFI_STATE = RECORDTIME;
915+ }
916+
917+ if (WIFI_STATE == RECORDTIME) {
918+ if (wifi_recordms == millis ()) {
919+ OUT_WRITE (RESET_WIFI_PIN, HIGH);
920+ WIFI_STATE = INITIAL;
921+ SERIAL_ECHOPGM (" wifi is reset" );
922+ }
923+ }
924+ #endif
925+
881926 // Update the LVGL interface
882927 TERN_ (HAS_TFT_LVGL_UI, LV_TASK_HANDLER ());
883928
@@ -1281,13 +1326,14 @@ void setup() {
12811326
12821327 // Identify myself as Marlin x.x.x
12831328 SERIAL_ECHOLNPGM (" Marlin " SHORT_BUILD_VERSION);
1329+ SERIAL_EOL ();
12841330 #if defined(STRING_DISTRIBUTION_DATE) && defined(STRING_CONFIG_H_AUTHOR)
12851331 SERIAL_ECHO_MSG (
12861332 " Last Updated: " STRING_DISTRIBUTION_DATE
12871333 " | Author: " STRING_CONFIG_H_AUTHOR
12881334 );
12891335 #endif
1290- SERIAL_ECHO_MSG (" Compiled: " __DATE__);
1336+ SERIAL_ECHO_MSG (" Compiled: " __DATE__ " " __TIME__ );
12911337 SERIAL_ECHO_MSG (STR_FREE_MEMORY, hal.freeMemory (), STR_PLANNER_BUFFER_BYTES, sizeof (block_t ) * (BLOCK_BUFFER_SIZE));
12921338
12931339 // Some HAL need precise delay adjustment
@@ -1596,6 +1642,8 @@ void setup() {
15961642
15971643 #if HAS_DWIN_E3V2_BASIC
15981644 SETUP_RUN (DWIN_InitScreen ());
1645+ #elif ENABLED(CREALITY_RTS)
1646+ SETUP_RUN (rtscheck.RTS_Init ());
15991647 #endif
16001648
16011649 #if HAS_SERVICE_INTERVALS && !HAS_DWIN_E3V2_BASIC
@@ -1688,3 +1736,13 @@ void loop() {
16881736
16891737 } while (ENABLED (__AVR__)); // Loop forever on slower (AVR) boards
16901738}
1739+
1740+ // void HardFault_Handler(void) {
1741+ // SERIAL_ECHO_MSG("HardFault_Handler");
1742+ // OUT_WRITE(E0_AUTO_FAN_PIN, LOW);
1743+ // OUT_WRITE(FAN_PIN, LOW);
1744+ // for (int i = 0; i < 0xFFFF; i++) OUT_WRITE(FAN_PIN, HIGH);
1745+ // OUT_WRITE(E0_AUTO_FAN_PIN, HIGH);
1746+ // OUT_WRITE(FAN_PIN, HIGH);
1747+ // while(1);
1748+ // }
0 commit comments