From 6665f7ebc9110b667ac4d2d50d4c202ada34513b Mon Sep 17 00:00:00 2001 From: X-Ryl669 Date: Mon, 1 Feb 2021 00:06:13 +0100 Subject: [PATCH 1/4] Fix AutoReported not building --- Marlin/src/libs/autoreport.h | 12 +++++++++--- Marlin/src/module/temperature.cpp | 2 +- Marlin/src/module/temperature.h | 2 +- Marlin/src/sd/cardreader.cpp | 3 +-- Marlin/src/sd/cardreader.h | 7 +------ 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Marlin/src/libs/autoreport.h b/Marlin/src/libs/autoreport.h index 9bde9f29fb35..a7fe90a08ebc 100644 --- a/Marlin/src/libs/autoreport.h +++ b/Marlin/src/libs/autoreport.h @@ -23,14 +23,20 @@ #include "../inc/MarlinConfig.h" -template +template class AutoReporter { public: millis_t next_report_ms; uint8_t report_interval; + #if HAS_MULTI_SERIAL + serial_index_t report_port_mask; + inline set_port_mask(serial_index_t port) { report_port_mask = port; } + + AutoReporter() : report_port_mask(SERIAL_ALL) {} + #endif // Override this method - inline void auto_report() { } + inline void auto_report() { static_cast(this)->report(); } inline void set_interval(uint8_t seconds, const uint8_t limit=60) { report_interval = _MIN(seconds, limit); @@ -42,7 +48,7 @@ class AutoReporter { 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); + TERN_(HAS_MULTI_SERIAL, PORT_REDIRECT(report_port_mask)); auto_report(); } } diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index e1fd00dcd667..c64993f6fb6d 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -3124,7 +3124,7 @@ void Temperature::tick() { #if ENABLED(AUTO_REPORT_TEMPERATURES) Temperature::AutoReportTemp Temperature::auto_reporter; - void Temperature::AutoReportTemp::auto_report() { + 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 1401e0d35400..9634ed2c2981 100644 --- a/Marlin/src/module/temperature.h +++ b/Marlin/src/module/temperature.h @@ -798,7 +798,7 @@ class Temperature { #endif ); #if ENABLED(AUTO_REPORT_TEMPERATURES) - class AutoReportTemp : public AutoReporter { void auto_report(); }; + struct AutoReportTemp : public AutoReporter { void report(); }; static AutoReportTemp auto_reporter; #endif #endif diff --git a/Marlin/src/sd/cardreader.cpp b/Marlin/src/sd/cardreader.cpp index e3732e5ef88b..c4b1859cb40e 100644 --- a/Marlin/src/sd/cardreader.cpp +++ b/Marlin/src/sd/cardreader.cpp @@ -1226,9 +1226,8 @@ 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(); } + void CardReader::AutoReportSD::report() { report_status(); } #endif #if ENABLED(POWER_LOSS_RECOVERY) diff --git a/Marlin/src/sd/cardreader.h b/Marlin/src/sd/cardreader.h index b10a5acd0d54..392a266e2cc4 100644 --- a/Marlin/src/sd/cardreader.h +++ b/Marlin/src/sd/cardreader.h @@ -179,12 +179,7 @@ class CardReader { // // 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(); }; + struct AutoReportSD : public AutoReporter { void report(); }; static AutoReportSD auto_reporter; #endif From 9086e1cd81ae2104f1e053c27c0da2dcea4ed835 Mon Sep 17 00:00:00 2001 From: X-Ryl669 Date: Mon, 1 Feb 2021 00:18:31 +0100 Subject: [PATCH 2/4] Fix building bug --- Marlin/src/libs/autoreport.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Marlin/src/libs/autoreport.h b/Marlin/src/libs/autoreport.h index a7fe90a08ebc..b6b7d6fb8d9b 100644 --- a/Marlin/src/libs/autoreport.h +++ b/Marlin/src/libs/autoreport.h @@ -24,14 +24,11 @@ #include "../inc/MarlinConfig.h" template -class AutoReporter { -public: +struct AutoReporter { millis_t next_report_ms; uint8_t report_interval; #if HAS_MULTI_SERIAL serial_index_t report_port_mask; - inline set_port_mask(serial_index_t port) { report_port_mask = port; } - AutoReporter() : report_port_mask(SERIAL_ALL) {} #endif From f7ee348d6c4e548c728f8ceff23d3bb660504e20 Mon Sep 17 00:00:00 2001 From: X-Ryl669 Date: Mon, 1 Feb 2021 00:57:20 +0100 Subject: [PATCH 3/4] Remove inheritance on both reporter, since they don't need to access the base class --- Marlin/src/libs/autoreport.h | 2 +- Marlin/src/module/temperature.cpp | 2 +- Marlin/src/module/temperature.h | 4 ++-- Marlin/src/sd/cardreader.cpp | 2 +- Marlin/src/sd/cardreader.h | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Marlin/src/libs/autoreport.h b/Marlin/src/libs/autoreport.h index b6b7d6fb8d9b..04fe041ab216 100644 --- a/Marlin/src/libs/autoreport.h +++ b/Marlin/src/libs/autoreport.h @@ -33,7 +33,7 @@ struct AutoReporter { #endif // Override this method - inline void auto_report() { static_cast(this)->report(); } + inline void auto_report() { Child::report(); } inline void set_interval(uint8_t seconds, const uint8_t limit=60) { report_interval = _MIN(seconds, limit); diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index c64993f6fb6d..b5380eea43a0 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -3123,7 +3123,7 @@ void Temperature::tick() { } #if ENABLED(AUTO_REPORT_TEMPERATURES) - Temperature::AutoReportTemp Temperature::auto_reporter; + 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 9634ed2c2981..002e1cbf71f5 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) - struct AutoReportTemp : public AutoReporter { void 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 c4b1859cb40e..16c00c2feb11 100644 --- a/Marlin/src/sd/cardreader.cpp +++ b/Marlin/src/sd/cardreader.cpp @@ -1226,7 +1226,7 @@ void CardReader::fileHasFinished() { } #if ENABLED(AUTO_REPORT_SD_STATUS) - CardReader::AutoReportSD CardReader::auto_reporter; + AutoReporter CardReader::auto_reporter; void CardReader::AutoReportSD::report() { report_status(); } #endif diff --git a/Marlin/src/sd/cardreader.h b/Marlin/src/sd/cardreader.h index 392a266e2cc4..e7ce0c8b15b0 100644 --- a/Marlin/src/sd/cardreader.h +++ b/Marlin/src/sd/cardreader.h @@ -179,8 +179,8 @@ class CardReader { // // SD Auto Reporting // - struct AutoReportSD : public AutoReporter { void report(); }; - static AutoReportSD auto_reporter; + struct AutoReportSD { static void report(); }; + static AutoReporter auto_reporter; #endif private: From 20ccb3f45a762e16b9fc306f7b246fabb578e860 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 31 Jan 2021 18:01:48 -0600 Subject: [PATCH 4/4] Use a helper object --- Marlin/src/libs/autoreport.h | 7 ++----- Marlin/src/sd/cardreader.cpp | 1 - Marlin/src/sd/cardreader.h | 2 +- buildroot/tests/LPC1768-tests | 5 +++-- buildroot/tests/mega2560-tests | 2 +- 5 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Marlin/src/libs/autoreport.h b/Marlin/src/libs/autoreport.h index 04fe041ab216..2c0a043fbf7b 100644 --- a/Marlin/src/libs/autoreport.h +++ b/Marlin/src/libs/autoreport.h @@ -23,7 +23,7 @@ #include "../inc/MarlinConfig.h" -template +template struct AutoReporter { millis_t next_report_ms; uint8_t report_interval; @@ -32,9 +32,6 @@ struct AutoReporter { AutoReporter() : report_port_mask(SERIAL_ALL) {} #endif - // Override this method - inline void auto_report() { Child::report(); } - inline void set_interval(uint8_t seconds, const uint8_t limit=60) { report_interval = _MIN(seconds, limit); next_report_ms = millis() + SEC_TO_MS(seconds); @@ -46,7 +43,7 @@ struct AutoReporter { if (ELAPSED(ms, next_report_ms)) { next_report_ms = ms + SEC_TO_MS(report_interval); TERN_(HAS_MULTI_SERIAL, PORT_REDIRECT(report_port_mask)); - auto_report(); + Helper::report(); } } }; diff --git a/Marlin/src/sd/cardreader.cpp b/Marlin/src/sd/cardreader.cpp index 16c00c2feb11..647e3f3e219b 100644 --- a/Marlin/src/sd/cardreader.cpp +++ b/Marlin/src/sd/cardreader.cpp @@ -1227,7 +1227,6 @@ void CardReader::fileHasFinished() { #if ENABLED(AUTO_REPORT_SD_STATUS) AutoReporter CardReader::auto_reporter; - void CardReader::AutoReportSD::report() { report_status(); } #endif #if ENABLED(POWER_LOSS_RECOVERY) diff --git a/Marlin/src/sd/cardreader.h b/Marlin/src/sd/cardreader.h index e7ce0c8b15b0..0a89bbba789b 100644 --- a/Marlin/src/sd/cardreader.h +++ b/Marlin/src/sd/cardreader.h @@ -179,7 +179,7 @@ class CardReader { // // SD Auto Reporting // - struct AutoReportSD { static void report(); }; + struct AutoReportSD { static void report() { report_status(); } }; static AutoReporter auto_reporter; #endif diff --git a/buildroot/tests/LPC1768-tests b/buildroot/tests/LPC1768-tests index 72d794634f95..27d2fbf3ff6f 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 105258d402b5..e603ea2496c5 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 \