diff --git a/Marlin/src/libs/autoreport.h b/Marlin/src/libs/autoreport.h index 9bde9f29fb..2c0a043fbf 100644 --- a/Marlin/src/libs/autoreport.h +++ b/Marlin/src/libs/autoreport.h @@ -23,14 +23,14 @@ #include "../inc/MarlinConfig.h" -template -class AutoReporter { -public: +template +struct AutoReporter { millis_t next_report_ms; uint8_t report_interval; - - // Override this method - inline void auto_report() { } + #if HAS_MULTI_SERIAL + serial_index_t report_port_mask; + AutoReporter() : report_port_mask(SERIAL_ALL) {} + #endif inline void set_interval(uint8_t seconds, const uint8_t limit=60) { report_interval = _MIN(seconds, limit); @@ -42,8 +42,8 @@ public: const millis_t ms = millis(); if (ELAPSED(ms, next_report_ms)) { next_report_ms = ms + SEC_TO_MS(report_interval); - PORT_REDIRECT(AR_PORT_INDEX); - auto_report(); + TERN_(HAS_MULTI_SERIAL, PORT_REDIRECT(report_port_mask)); + Helper::report(); } } }; diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index c6ed3d3a48..b5820e17bf 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -3123,8 +3123,8 @@ void Temperature::tick() { } #if ENABLED(AUTO_REPORT_TEMPERATURES) - Temperature::AutoReportTemp Temperature::auto_reporter; - void Temperature::AutoReportTemp::auto_report() { + AutoReporter Temperature::auto_reporter; + void Temperature::AutoReportTemp::report() { print_heater_states(active_extruder); SERIAL_EOL(); } diff --git a/Marlin/src/module/temperature.h b/Marlin/src/module/temperature.h index 1401e0d354..002e1cbf71 100644 --- a/Marlin/src/module/temperature.h +++ b/Marlin/src/module/temperature.h @@ -798,8 +798,8 @@ class Temperature { #endif ); #if ENABLED(AUTO_REPORT_TEMPERATURES) - class AutoReportTemp : public AutoReporter { void auto_report(); }; - static AutoReportTemp auto_reporter; + struct AutoReportTemp { static void report(); }; + static AutoReporter auto_reporter; #endif #endif diff --git a/Marlin/src/sd/cardreader.cpp b/Marlin/src/sd/cardreader.cpp index e3732e5ef8..647e3f3e21 100644 --- a/Marlin/src/sd/cardreader.cpp +++ b/Marlin/src/sd/cardreader.cpp @@ -1226,9 +1226,7 @@ void CardReader::fileHasFinished() { } #if ENABLED(AUTO_REPORT_SD_STATUS) - TERN_(HAS_MULTI_SERIAL, serial_index_t CardReader::auto_report_port); - CardReader::AutoReportSD CardReader::auto_reporter; - void CardReader::AutoReportSD::auto_report() { report_status(); } + AutoReporter CardReader::auto_reporter; #endif #if ENABLED(POWER_LOSS_RECOVERY) diff --git a/Marlin/src/sd/cardreader.h b/Marlin/src/sd/cardreader.h index b10a5acd0d..0a89bbba78 100644 --- a/Marlin/src/sd/cardreader.h +++ b/Marlin/src/sd/cardreader.h @@ -179,13 +179,8 @@ public: // // SD Auto Reporting // - #if HAS_MULTI_SERIAL - static serial_index_t auto_report_port; - #else - static constexpr serial_index_t auto_report_port = 0; - #endif - class AutoReportSD : public AutoReporter { void auto_report(); }; - static AutoReportSD auto_reporter; + struct AutoReportSD { static void report() { report_status(); } }; + static AutoReporter auto_reporter; #endif private: diff --git a/buildroot/tests/LPC1768-tests b/buildroot/tests/LPC1768-tests index 72d794634f..27d2fbf3ff 100755 --- a/buildroot/tests/LPC1768-tests +++ b/buildroot/tests/LPC1768-tests @@ -37,14 +37,15 @@ opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EEB opt_set EXTRUDERS 2 opt_set TEMP_SENSOR_1 -1 opt_set TEMP_SENSOR_BED 5 -opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \ +opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \ FILAMENT_WIDTH_SENSOR FILAMENT_LCD_DISPLAY PID_EXTRUSION_SCALING SOUND_MENU_ITEM \ NOZZLE_AS_PROBE AUTO_BED_LEVELING_BILINEAR PREHEAT_BEFORE_LEVELING G29_RETRY_AND_RECOVER Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \ BABYSTEPPING BABYSTEP_XY BABYSTEP_ZPROBE_OFFSET BABYSTEP_ZPROBE_GFX_OVERLAY \ PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT \ Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \ HOST_KEEPALIVE_FEATURE HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT \ - LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER + LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES \ + SDSUPPORT SDCARD_SORT_ALPHA AUTO_REPORT_SD_STATUS EMERGENCY_PARSER opt_set GRID_MAX_POINTS_X 16 opt_set NOZZLE_TO_PROBE_OFFSET "{ 0, 0, 0 }" opt_set NOZZLE_CLEAN_MIN_TEMP 170 diff --git a/buildroot/tests/mega2560-tests b/buildroot/tests/mega2560-tests index 105258d402..e603ea2496 100755 --- a/buildroot/tests/mega2560-tests +++ b/buildroot/tests/mega2560-tests @@ -27,7 +27,7 @@ opt_set TEMP_SENSOR_4 1000 opt_set TEMP_SENSOR_BED 1 opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 DEBUG_LEVELING_FEATURE G26_MESH_VALIDATION ENABLE_LEVELING_FADE_HEIGHT SKEW_CORRECTION \ REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER LIGHTWEIGHT_UI STATUS_MESSAGE_SCROLLING BOOT_MARLIN_LOGO_SMALL \ - SDSUPPORT SDCARD_SORT_ALPHA USB_FLASH_DRIVE_SUPPORT SCROLL_LONG_FILENAMES CANCEL_OBJECTS SOUND_MENU_ITEM \ + SDSUPPORT SDCARD_SORT_ALPHA USB_FLASH_DRIVE_SUPPORT AUTO_REPORT_SD_STATUS SCROLL_LONG_FILENAMES CANCEL_OBJECTS SOUND_MENU_ITEM \ EEPROM_SETTINGS EEPROM_CHITCHAT GCODE_MACROS CUSTOM_USER_MENUS \ MULTI_NOZZLE_DUPLICATION CLASSIC_JERK LIN_ADVANCE EXTRA_LIN_ADVANCE_K QUICK_HOME \ LCD_SET_PROGRESS_MANUALLY PRINT_PROGRESS_SHOW_DECIMALS SHOW_REMAINING_TIME \