From 9188ce1a8d48c4ee01dd58f9b8cdaf462eff7c9d Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 3 Oct 2019 18:48:31 -0500 Subject: [PATCH] Add JOIN for simple append --- Marlin/src/core/macros.h | 3 +++ Marlin/src/lcd/menu/menu_filament.cpp | 26 +++++++--------------- buildroot/share/tests/megaatmega2560-tests | 10 +++++---- buildroot/share/tests/teensy31-tests | 4 ++-- 4 files changed, 19 insertions(+), 24 deletions(-) diff --git a/Marlin/src/core/macros.h b/Marlin/src/core/macros.h index c13b342600..24c97be9cc 100644 --- a/Marlin/src/core/macros.h +++ b/Marlin/src/core/macros.h @@ -227,6 +227,9 @@ #define LIST_N(N,V...) _LIST_N(N,V) #define ARRAY_N(N,V...) { _LIST_N(N,V) } +#define _JOIN_1(O) (O) +#define JOIN_N(N,C,V...) (DO(JOIN,C,LIST_N(N,V))) + // Macros for adding #define INC_0 1 #define INC_1 2 diff --git a/Marlin/src/lcd/menu/menu_filament.cpp b/Marlin/src/lcd/menu/menu_filament.cpp index ac84215105..90d88dbbaf 100644 --- a/Marlin/src/lcd/menu/menu_filament.cpp +++ b/Marlin/src/lcd/menu/menu_filament.cpp @@ -253,24 +253,14 @@ void _menu_temp_filament_op(const PauseMode inMode, const int8_t extruder) { SUBMENU(MSG_FILAMENTUNLOAD, menu_temp_e0_filament_unload); #else #if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS) - if (thermalManager.targetHotEnoughToExtrude(0) - #if E_STEPPERS > 1 - && thermalManager.targetHotEnoughToExtrude(1) - #if E_STEPPERS > 2 - && thermalManager.targetHotEnoughToExtrude(2) - #if E_STEPPERS > 3 - && thermalManager.targetHotEnoughToExtrude(3) - #if E_STEPPERS > 4 - && thermalManager.targetHotEnoughToExtrude(4) - #if E_STEPPERS > 5 - && thermalManager.targetHotEnoughToExtrude(5) - #endif // E_STEPPERS > 5 - #endif // E_STEPPERS > 4 - #endif // E_STEPPERS > 3 - #endif // E_STEPPERS > 2 - #endif // E_STEPPERS > 1 - ) - GCODES_ITEM(MSG_FILAMENTUNLOAD_ALL, PSTR("M702")); + if (JOIN_N(E_STEPPERS, &&, + thermalManager.targetHotEnoughToExtrude(0), + thermalManager.targetHotEnoughToExtrude(1), + thermalManager.targetHotEnoughToExtrude(2), + thermalManager.targetHotEnoughToExtrude(3), + thermalManager.targetHotEnoughToExtrude(4), + thermalManager.targetHotEnoughToExtrude(5)) + ) GCODES_ITEM(MSG_FILAMENTUNLOAD_ALL, PSTR("M702")); else SUBMENU(MSG_FILAMENTUNLOAD_ALL, menu_unload_filament_all_temp); #endif diff --git a/buildroot/share/tests/megaatmega2560-tests b/buildroot/share/tests/megaatmega2560-tests index bcd3e497f8..94d315cb9c 100755 --- a/buildroot/share/tests/megaatmega2560-tests +++ b/buildroot/share/tests/megaatmega2560-tests @@ -31,17 +31,19 @@ opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER LCD_PROGRESS_BAR LCD_PROGRESS_BAR_TE EEPROM_SETTINGS SDSUPPORT SD_REPRINT_LAST_SELECTED_FILE BINARY_FILE_TRANSFER \ BLINKM PCA9632 RGB_LED RGB_LED_R_PIN RGB_LED_G_PIN RGB_LED_B_PIN LED_CONTROL_MENU \ NEOPIXEL_LED CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CASE_LIGHT_MENU \ - NOZZLE_PARK_FEATURE ADVANCED_PAUSE_FEATURE FILAMENT_RUNOUT_DISTANCE_MM FILAMENT_RUNOUT_SENSOR \ - AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \ + PID_PARAMS_PER_HOTEND PID_AUTOTUNE_MENU PID_EDIT_MENU \ + NOZZLE_PARK_FEATURE FILAMENT_RUNOUT_SENSOR FILAMENT_RUNOUT_DISTANCE_MM \ + ADVANCED_PAUSE_FEATURE FILAMENT_LOAD_UNLOAD_GCODES FILAMENT_UNLOAD_ALL_EXTRUDERS \ + AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST \ SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE \ BACKLASH_COMPENSATION BACKLASH_GCODE BAUD_RATE_GCODE BEZIER_CURVE_SUPPORT \ FWRETRACT ARC_P_CIRCLES CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS \ PSU_CONTROL AUTO_POWER_CONTROL POWER_LOSS_RECOVERY POWER_LOSS_PIN POWER_LOSS_STATE \ - SLOW_PWM_HEATERS THERMAL_PROTECTION_CHAMBER \ + SLOW_PWM_HEATERS THERMAL_PROTECTION_CHAMBER LIN_ADVANCE \ PINS_DEBUGGING MAX7219_DEBUG M114_DETAIL opt_set TEMP_SENSOR_CHAMBER 3 opt_set HEATER_CHAMBER_PIN 45 -exec_test $1 $2 "RAMPS with 2 extruders, RepRap LCD, Linear ABL, LEDs, and many options" +exec_test $1 $2 "RAMPS, 2 extruders, LCD/SD, Probe, ABL-Linear, PLR, LEDs, many options" # # Test a probeless build of AUTO_BED_LEVELING_UBL, with lots of extruders diff --git a/buildroot/share/tests/teensy31-tests b/buildroot/share/tests/teensy31-tests index a89002257d..a847d6f572 100755 --- a/buildroot/share/tests/teensy31-tests +++ b/buildroot/share/tests/teensy31-tests @@ -13,14 +13,14 @@ opt_set MOTHERBOARD BOARD_TEENSY31_32 exec_test $1 $2 "Teensy3.1 with default config" # -# Test as many features together as possible +# Test many features together # restore_configs opt_set MOTHERBOARD BOARD_TEENSY31_32 opt_set TEMP_SENSOR_0 1 opt_set TEMP_SENSOR_BED 1 opt_enable EEPROM_SETTINGS FILAMENT_WIDTH_SENSOR CALIBRATION_GCODE BAUD_RATE_GCODE \ - FIX_MOUNTED_PROBE Z_SAFE_HOMING AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \ + FIX_MOUNTED_PROBE Z_SAFE_HOMING AUTO_BED_LEVELING_BILINEAR DEBUG_LEVELING_FEATURE Z_MIN_PROBE_REPEATABILITY_TEST \ BABYSTEPPING BABYSTEP_XY BABYSTEP_ZPROBE_OFFSET PRINTCOUNTER SLOW_PWM_HEATERS PIDTEMPBED \ INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT M100_FREE_MEMORY_WATCHER \ NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE PARK_HEAD_ON_PAUSE \