Apply composite tests

This commit is contained in:
Scott Lahteine 2020-04-23 21:42:38 -05:00
parent 55d66fb897
commit ab2b98e425
53 changed files with 103 additions and 107 deletions

View File

@ -304,7 +304,7 @@
static constexpr bool XONOFF = false;
static constexpr bool EMERGENCYPARSER = false;
static constexpr bool DROPPED_RX = false;
static constexpr bool RX_OVERRUNS = HAS_DGUS_LCD && ENABLED(DGUS_SERIAL_STATS_RX_BUFFER_OVERRUNS);
static constexpr bool RX_OVERRUNS = BOTH(HAS_DGUS_LCD, DGUS_SERIAL_STATS_RX_BUFFER_OVERRUNS);
static constexpr bool RX_FRAMING_ERRORS = false;
static constexpr bool MAX_RX_QUEUED = false;
};

View File

@ -46,10 +46,10 @@
/**
* The Trinamic library includes SoftwareSerial.h, leading to a compile error.
*/
#if HAS_TRINAMIC_CONFIG && ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
#if BOTH(HAS_TRINAMIC_CONFIG, ENDSTOP_INTERRUPTS_FEATURE)
#error "TMCStepper includes SoftwareSerial.h which is incompatible with ENDSTOP_INTERRUPTS_FEATURE. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
#if HAS_TMC_SW_SERIAL && ENABLED(MONITOR_DRIVER_STATUS)
#if BOTH(HAS_TMC_SW_SERIAL, MONITOR_DRIVER_STATUS)
#error "MONITOR_DRIVER_STATUS causes performance issues when used with SoftwareSerial-connected drivers. Disable MONITOR_DRIVER_STATUS or use hardware serial to continue."
#endif

View File

@ -24,7 +24,7 @@
#include "../../core/macros.h"
#include "../../inc/MarlinConfigPre.h"
#if HAS_GRAPHICAL_LCD && ENABLED(SDSUPPORT) && (LCD_PINS_D4 == SCK_PIN || LCD_PINS_ENABLE == MOSI_PIN || DOGLCD_SCK == SCK_PIN || DOGLCD_MOSI == MOSI_PIN)
#if BOTH(HAS_GRAPHICAL_LCD, SDSUPPORT) && (LCD_PINS_D4 == SCK_PIN || LCD_PINS_ENABLE == MOSI_PIN || DOGLCD_SCK == SCK_PIN || DOGLCD_MOSI == MOSI_PIN)
#define LPC_SOFTWARE_SPI // If the SD card and LCD adapter share the same SPI pins, then software SPI is currently
// needed due to the speed and mode required for communicating with each device being different.
// This requirement can be removed if the SPI access to these devices is updated to use

View File

@ -23,7 +23,7 @@
#include "../../core/macros.h"
#if ENABLED(SDSUPPORT) && HAS_GRAPHICAL_LCD && (LCD_PINS_D4 == SCK_PIN || LCD_PINS_ENABLE == MOSI_PIN || DOGLCD_SCK == SCK_PIN || DOGLCD_MOSI == MOSI_PIN)
#if BOTH(SDSUPPORT, HAS_GRAPHICAL_LCD) && (LCD_PINS_D4 == SCK_PIN || LCD_PINS_ENABLE == MOSI_PIN || DOGLCD_SCK == SCK_PIN || DOGLCD_MOSI == MOSI_PIN)
#define LPC_SOFTWARE_SPI // If the SD card and LCD adapter share the same SPI pins, then software SPI is currently
// needed due to the speed and mode required for communicating with each device being different.
// This requirement can be removed if the SPI access to these devices is updated to use

View File

@ -20,7 +20,7 @@
#include "../../../inc/MarlinConfig.h"
#if HAS_GRAPHICAL_LCD && ENABLED(FORCE_SOFT_SPI)
#if BOTH(HAS_GRAPHICAL_LCD, FORCE_SOFT_SPI)
#include "../HAL.h"
#include <U8glib.h>

View File

@ -27,7 +27,7 @@
* (bypassing U8G), it will allow the LIGHTWEIGHT_UI to operate.
*/
#if HAS_GRAPHICAL_LCD && ENABLED(LIGHTWEIGHT_UI)
#if BOTH(HAS_GRAPHICAL_LCD, LIGHTWEIGHT_UI)
void ST7920_cs();
void ST7920_ncs();
void ST7920_set_cmd();

View File

@ -466,7 +466,7 @@ inline void manage_inactivity(const bool ignore_stepper_queue=false) {
if (ENABLED(DISABLE_INACTIVE_Y)) DISABLE_AXIS_Y();
if (ENABLED(DISABLE_INACTIVE_Z)) DISABLE_AXIS_Z();
if (ENABLED(DISABLE_INACTIVE_E)) disable_e_steppers();
#if HAS_LCD_MENU && ENABLED(AUTO_BED_LEVELING_UBL)
#if BOTH(HAS_LCD_MENU, AUTO_BED_LEVELING_UBL)
if (ubl.lcd_map_control) {
ubl.lcd_map_control = false;
ui.defer_status_screen(false);
@ -943,7 +943,7 @@ void setup() {
SETUP_RUN(ui.init());
SETUP_RUN(ui.reset_status()); // Load welcome message early. (Retained if no errors exist.)
#if HAS_SPI_LCD && ENABLED(SHOW_BOOTSCREEN)
#if BOTH(HAS_SPI_LCD, SHOW_BOOTSCREEN)
SETUP_RUN(ui.show_bootscreen());
#endif

View File

@ -136,14 +136,14 @@ void host_action(const char * const pstr, const bool eol) {
switch (response) {
case 0: // "Purge More" button
#if HAS_LCD_MENU && ENABLED(ADVANCED_PAUSE_FEATURE)
#if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE)
pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE; // Simulate menu selection (menu exits, doesn't extrude more)
#endif
filament_load_host_prompt(); // Initiate another host prompt. (NOTE: The loop in load_filament may also do this!)
break;
case 1: // "Continue" / "Disable Runout" button
#if HAS_LCD_MENU && ENABLED(ADVANCED_PAUSE_FEATURE)
#if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE)
pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT; // Simulate menu selection
#endif
#if HAS_FILAMENT_SENSOR

View File

@ -99,7 +99,7 @@ int16_t MMU2::version = -1, MMU2::buildnr = -1;
millis_t MMU2::last_request, MMU2::next_P0_request;
char MMU2::rx_buffer[MMU_RX_SIZE], MMU2::tx_buffer[MMU_TX_SIZE];
#if HAS_LCD_MENU && ENABLED(MMU2_MENUS)
#if BOTH(HAS_LCD_MENU, MMU2_MENUS)
struct E_Step {
float extrude; //!< extrude distance in mm
@ -632,7 +632,7 @@ void MMU2::filament_runout() {
planner.synchronize();
}
#if HAS_LCD_MENU && ENABLED(MMU2_MENUS)
#if BOTH(HAS_LCD_MENU, MMU2_MENUS)
// Load filament into MMU2
void MMU2::load_filament(uint8_t index) {

View File

@ -49,7 +49,7 @@ public:
static uint8_t get_current_tool();
static void set_filament_type(uint8_t index, uint8_t type);
#if HAS_LCD_MENU && ENABLED(MMU2_MENUS)
#if BOTH(HAS_LCD_MENU, MMU2_MENUS)
static bool unload();
static void load_filament(uint8_t);
static void load_all();
@ -72,7 +72,7 @@ private:
static bool get_response();
static void manage_response(const bool move_axes, const bool turn_off_nozzle);
#if HAS_LCD_MENU && ENABLED(MMU2_MENUS)
#if BOTH(HAS_LCD_MENU, MMU2_MENUS)
static void load_to_nozzle();
static void filament_ramming();
static void execute_extruder_sequence(const E_Step * sequence, int steps);

View File

@ -223,7 +223,7 @@ G29_TYPE GcodeSuite::G29() {
ABL_VAR int abl_probe_index;
#endif
#if HAS_SOFTWARE_ENDSTOPS && ENABLED(PROBE_MANUALLY)
#if BOTH(HAS_SOFTWARE_ENDSTOPS, PROBE_MANUALLY)
ABL_VAR bool saved_soft_endstops_state = true;
#endif

View File

@ -378,7 +378,7 @@ void GcodeSuite::G34() {
// Restore the active tool after homing
TERN_(HAS_MULTI_HOTEND, tool_change(old_tool_index, DISABLED(PARKING_EXTRUDER))); // Fetch previous tool for parking extruder
#if HAS_LEVELING && ENABLED(RESTORE_LEVELING_AFTER_G34)
#if BOTH(HAS_LEVELING, RESTORE_LEVELING_AFTER_G34)
set_bed_leveling_enabled(leveling_was_active);
#endif

View File

@ -63,7 +63,7 @@ void GcodeSuite::M18_M84() {
else
planner.finish_and_disable();
#if HAS_LCD_MENU && ENABLED(AUTO_BED_LEVELING_UBL)
#if BOTH(HAS_LCD_MENU, AUTO_BED_LEVELING_UBL)
if (ubl.lcd_map_control) {
ubl.lcd_map_control = false;
ui.defer_status_screen(false);

View File

@ -22,7 +22,7 @@
#include "../../../inc/MarlinConfig.h"
#if HAS_DIGIPOTSS || HAS_MOTOR_CURRENT_PWM || HAS_I2C_DIGIPOT || ENABLED(DAC_STEPPER_CURRENT)
#if ANY(HAS_DIGIPOTSS, HAS_MOTOR_CURRENT_PWM, HAS_I2C_DIGIPOT, DAC_STEPPER_CURRENT)
#include "../../gcode.h"
@ -80,7 +80,7 @@ void GcodeSuite::M907() {
#endif
}
#if HAS_DIGIPOTSS || ENABLED(DAC_STEPPER_CURRENT)
#if EITHER(HAS_DIGIPOTSS, DAC_STEPPER_CURRENT)
/**
* M908: Control digital trimpot directly (M908 P<pin> S<current>)

View File

@ -70,7 +70,7 @@ uint8_t GcodeSuite::axis_relative = (
| (ar_init.e ? _BV(REL_E) : 0)
);
#if HAS_AUTO_REPORTING || ENABLED(HOST_KEEPALIVE_FEATURE)
#if EITHER(HAS_AUTO_REPORTING, HOST_KEEPALIVE_FEATURE)
bool GcodeSuite::autoreport_paused; // = false
#endif
@ -202,7 +202,7 @@ void GcodeSuite::dwell(millis_t time) {
* When G29_RETRY_AND_RECOVER is enabled, call G29() in
* a loop with recovery and retry handling.
*/
#if HAS_LEVELING && ENABLED(G29_RETRY_AND_RECOVER)
#if BOTH(HAS_LEVELING, G29_RETRY_AND_RECOVER)
#ifndef G29_MAX_RETRIES
#define G29_MAX_RETRIES 0
@ -504,7 +504,7 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
case 191: M191(); break; // M191: Wait for chamber temperature to reach target
#endif
#if ENABLED(AUTO_REPORT_TEMPERATURES) && HAS_TEMP_SENSOR
#if BOTH(AUTO_REPORT_TEMPERATURES, HAS_TEMP_SENSOR)
case 155: M155(); break; // M155: Set temperature auto-report interval
#endif
@ -792,9 +792,9 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
case 900: M900(); break; // M900: Set advance K factor.
#endif
#if HAS_DIGIPOTSS || HAS_MOTOR_CURRENT_PWM || HAS_I2C_DIGIPOT || ENABLED(DAC_STEPPER_CURRENT)
#if ANY(HAS_DIGIPOTSS, HAS_MOTOR_CURRENT_PWM, HAS_I2C_DIGIPOT, DAC_STEPPER_CURRENT)
case 907: M907(); break; // M907: Set digital trimpot motor current using axis codes.
#if HAS_DIGIPOTSS || ENABLED(DAC_STEPPER_CURRENT)
#if EITHER(HAS_DIGIPOTSS, DAC_STEPPER_CURRENT)
case 908: M908(); break; // M908: Control digital trimpot directly.
#if ENABLED(DAC_STEPPER_CURRENT)
case 909: M909(); break; // M909: Print digipot/DAC current value

View File

@ -351,7 +351,7 @@ public:
process_subcommands_now_P(G28_STR);
}
#if HAS_AUTO_REPORTING || ENABLED(HOST_KEEPALIVE_FEATURE)
#if EITHER(HAS_AUTO_REPORTING, HOST_KEEPALIVE_FEATURE)
static bool autoreport_paused;
static inline bool set_autoreport_paused(const bool p) {
const bool was = autoreport_paused;
@ -610,7 +610,7 @@ private:
TERN_(HAS_COLOR_LEDS, static void M150());
#if ENABLED(AUTO_REPORT_TEMPERATURES) && HAS_TEMP_SENSOR
#if BOTH(AUTO_REPORT_TEMPERATURES, HAS_TEMP_SENSOR)
static void M155();
#endif
@ -812,9 +812,9 @@ private:
static void M918();
#endif
#if HAS_DIGIPOTSS || HAS_MOTOR_CURRENT_PWM || HAS_I2C_DIGIPOT || ENABLED(DAC_STEPPER_CURRENT)
#if ANY(HAS_DIGIPOTSS, HAS_MOTOR_CURRENT_PWM, HAS_I2C_DIGIPOT, DAC_STEPPER_CURRENT)
static void M907();
#if HAS_DIGIPOTSS || ENABLED(DAC_STEPPER_CURRENT)
#if EITHER(HAS_DIGIPOTSS, DAC_STEPPER_CURRENT)
static void M908();
#if ENABLED(DAC_STEPPER_CURRENT)
static void M909();

View File

@ -22,7 +22,7 @@
#include "../../inc/MarlinConfig.h"
#if ENABLED(AUTO_REPORT_TEMPERATURES) && HAS_TEMP_SENSOR
#if BOTH(AUTO_REPORT_TEMPERATURES, HAS_TEMP_SENSOR)
#include "../gcode.h"
#include "../../module/temperature.h"

View File

@ -31,7 +31,7 @@
#endif
// Linear advance uses Jerk since E is an isolated axis
#if HAS_JUNCTION_DEVIATION && ENABLED(LIN_ADVANCE)
#if BOTH(HAS_JUNCTION_DEVIATION, LIN_ADVANCE)
#define HAS_LINEAR_E_JERK 1
#endif
@ -1653,7 +1653,7 @@
#define HAS_TEMP_ADC_CHAMBER 1
#endif
#if HOTENDS && (HAS_TEMP_ADC_0 || ENABLED(HEATER_0_USES_MAX6675))
#if HOTENDS && EITHER(HAS_TEMP_ADC_0, HEATER_0_USES_MAX6675)
#define HAS_TEMP_HOTEND 1
#endif
#define HAS_TEMP_BED HAS_TEMP_ADC_BED
@ -1730,7 +1730,7 @@
#endif
// Thermal protection
#if HAS_HEATED_BED && ENABLED(THERMAL_PROTECTION_BED)
#if BOTH(HAS_HEATED_BED, THERMAL_PROTECTION_BED)
#define HAS_THERMALLY_PROTECTED_BED 1
#endif
#if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0
@ -1739,7 +1739,7 @@
#if HAS_THERMALLY_PROTECTED_BED && WATCH_BED_TEMP_PERIOD > 0
#define WATCH_BED 1
#endif
#if HAS_HEATED_CHAMBER && ENABLED(THERMAL_PROTECTION_CHAMBER) && WATCH_CHAMBER_TEMP_PERIOD > 0
#if BOTH(HAS_HEATED_CHAMBER, THERMAL_PROTECTION_CHAMBER) && WATCH_CHAMBER_TEMP_PERIOD > 0
#define WATCH_CHAMBER 1
#endif
#if (ENABLED(THERMAL_PROTECTION_HOTENDS) || !EXTRUDERS) \
@ -2142,7 +2142,7 @@
* Bed Probe dependencies
*/
#if HAS_BED_PROBE
#if ENABLED(ENDSTOPPULLUPS) && HAS_Z_MIN_PROBE_PIN
#if BOTH(ENDSTOPPULLUPS, HAS_Z_MIN_PROBE_PIN)
#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
#ifndef Z_PROBE_OFFSET_RANGE_MIN

View File

@ -662,7 +662,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
#elif PROGRESS_MSG_EXPIRE < 0
#error "PROGRESS_MSG_EXPIRE must be greater than or equal to 0."
#endif
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && !HAS_GRAPHICAL_LCD && DISABLED(EXTENSIBLE_UI)
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && NONE(HAS_GRAPHICAL_LCD, EXTENSIBLE_UI)
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Graphical LCD, or EXTENSIBLE_UI."
#endif
@ -673,7 +673,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
/**
* Custom Boot and Status screens
*/
#if ENABLED(SHOW_CUSTOM_BOOTSCREEN) && !(HAS_GRAPHICAL_LCD || ENABLED(TOUCH_UI_FTDI_EVE))
#if ENABLED(SHOW_CUSTOM_BOOTSCREEN) && NONE(HAS_GRAPHICAL_LCD, TOUCH_UI_FTDI_EVE)
#error "SHOW_CUSTOM_BOOTSCREEN requires Graphical LCD or TOUCH_UI_FTDI_EVE."
#elif ENABLED(CUSTOM_STATUS_SCREEN_IMAGE) && !HAS_GRAPHICAL_LCD
#error "CUSTOM_STATUS_SCREEN_IMAGE requires a Graphical LCD."
@ -1391,7 +1391,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
#error "G26_MESH_VALIDATION requires MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, or AUTO_BED_LEVELING_UBL."
#endif
#if ENABLED(MESH_EDIT_GFX_OVERLAY) && !(ENABLED(AUTO_BED_LEVELING_UBL) && HAS_GRAPHICAL_LCD)
#if ENABLED(MESH_EDIT_GFX_OVERLAY) && !BOTH(AUTO_BED_LEVELING_UBL, HAS_GRAPHICAL_LCD)
#error "MESH_EDIT_GFX_OVERLAY requires AUTO_BED_LEVELING_UBL and a Graphical LCD."
#endif
@ -1599,7 +1599,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
#error "MAX6675_SS_PIN (required for TEMP_SENSOR_0) not defined for this board."
#elif HOTENDS && !HAS_TEMP_HOTEND
#error "TEMP_0_PIN (required for TEMP_SENSOR_0) not defined for this board."
#elif (HAS_MULTI_HOTEND || ENABLED(HEATERS_PARALLEL)) && !HAS_HEATER_1
#elif EITHER(HAS_MULTI_HOTEND, HEATERS_PARALLEL) && !HAS_HEATER_1
#error "HEATER_1_PIN not defined for this board."
#endif

View File

@ -275,7 +275,7 @@ void MarlinUI::set_custom_characters(const HD44780CharSet screen_charset/*=CHARS
#endif // LCD_PROGRESS_BAR
#if ENABLED(SDSUPPORT) && HAS_LCD_MENU
#if BOTH(SDSUPPORT, HAS_LCD_MENU)
// CHARSET_MENU
const static PROGMEM byte refresh[8] = {
@ -325,7 +325,7 @@ void MarlinUI::set_custom_characters(const HD44780CharSet screen_charset/*=CHARS
#endif
{
createChar_P(LCD_STR_UPLEVEL[0], uplevel);
#if ENABLED(SDSUPPORT) && HAS_LCD_MENU
#if BOTH(SDSUPPORT, HAS_LCD_MENU)
// SD Card sub-menu special characters
createChar_P(LCD_STR_REFRESH[0], refresh);
createChar_P(LCD_STR_FOLDER[0], folder);

View File

@ -865,7 +865,7 @@
// Can also be overridden in Configuration_adv.h
// If you can afford it, try the 3-frame fan animation!
// Don't compile in the fan animation with no fan
#if !HAS_FAN0 || (HOTENDS == 5 || (HOTENDS == 4 && BED_OR_CHAMBER) || (ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_CHAMBER))
#if !HAS_FAN0 || (HOTENDS == 5 || (HOTENDS == 4 && BED_OR_CHAMBER) || BOTH(STATUS_COMBINE_HEATERS, HAS_HEATED_CHAMBER))
#undef STATUS_FAN_FRAMES
#elif !STATUS_FAN_FRAMES
#define STATUS_FAN_FRAMES 2
@ -1393,7 +1393,7 @@
((STATUS_CHAMBER_WIDTH || STATUS_FAN_WIDTH || STATUS_BED_WIDTH) && STATUS_HOTEND_BITMAPS == 4)
#define STATUS_HEATERS_X 5
#else
#if ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_BED && HOTENDS <= 4
#if BOTH(STATUS_COMBINE_HEATERS, HAS_HEATED_BED) && HOTENDS <= 4
#define STATUS_HEATERS_X 5
#else
#define STATUS_HEATERS_X 8 // Like the included bitmaps
@ -1752,13 +1752,13 @@
#if HOTENDS && ENABLED(STATUS_HOTEND_ANIM)
#define ANIM_HOTEND 1
#endif
#if DO_DRAW_BED && ENABLED(STATUS_BED_ANIM)
#if BOTH(DO_DRAW_BED, STATUS_BED_ANIM)
#define ANIM_BED 1
#endif
#if DO_DRAW_CHAMBER && ENABLED(STATUS_CHAMBER_ANIM)
#if BOTH(DO_DRAW_CHAMBER, STATUS_CHAMBER_ANIM)
#define ANIM_CHAMBER 1
#endif
#if DO_DRAW_CUTTER && ENABLED(STATUS_CUTTER_ANIM)
#if BOTH(DO_DRAW_CUTTER, STATUS_CUTTER_ANIM)
#define ANIM_CUTTER 1
#endif
#if ANIM_HOTEND || ANIM_BED || ANIM_CHAMBER || ANIM_CUTTER

View File

@ -142,7 +142,7 @@ FORCE_INLINE void _draw_centered_temp(const int16_t temp, const uint8_t tx, cons
#elif ANIM_HOTEND && DISABLED(STATUS_HOTEND_INVERTED) && ENABLED(STATUS_HOTEND_NUMBERLESS)
#define OFF_BMP(N) status_hotend_a_bmp
#define ON_BMP(N) status_hotend_b_bmp
#elif ANIM_HOTEND && ENABLED(STATUS_HOTEND_INVERTED)
#elif BOTH(ANIM_HOTEND, STATUS_HOTEND_INVERTED)
#define OFF_BMP(N) status_hotend##N##_b_bmp
#define ON_BMP(N) status_hotend##N##_a_bmp
#else

View File

@ -38,7 +38,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
}
#ifdef TOUCH_UI_PORTRAIT
#if HAS_CASE_LIGHT || ENABLED(SENSORLESS_HOMING)
#if EITHER(HAS_CASE_LIGHT, SENSORLESS_HOMING)
#define GRID_ROWS 9
#else
#define GRID_ROWS 8
@ -59,7 +59,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
#define BACKLASH_POS BTN_POS(2,7), BTN_SIZE(1,1)
#define CASE_LIGHT_POS BTN_POS(1,8), BTN_SIZE(1,1)
#define TMC_HOMING_THRS_POS BTN_POS(2,8), BTN_SIZE(1,1)
#if HAS_CASE_LIGHT || ENABLED(SENSORLESS_HOMING)
#if EITHER(HAS_CASE_LIGHT, SENSORLESS_HOMING)
#define BACK_POS BTN_POS(1,9), BTN_SIZE(2,1)
#else
#define BACK_POS BTN_POS(1,8), BTN_SIZE(2,1)

View File

@ -21,7 +21,7 @@
#include "../config.h"
#if ENABLED(TOUCH_UI_FTDI_EVE) && HAS_MESH
#if BOTH(TOUCH_UI_FTDI_EVE, HAS_MESH)
#include "screens.h"
#include "screen_data.h"
@ -298,4 +298,4 @@ void BedMeshScreen::onMeshUpdate(const int8_t x, const int8_t y, const ExtUI::pr
BedMeshScreen::onMeshUpdate(x, y, 0);
}
#endif // TOUCH_UI_FTDI_EVE
#endif // TOUCH_UI_FTDI_EVE && HAS_MESH

View File

@ -22,7 +22,7 @@
#include "../config.h"
#if ENABLED(TOUCH_UI_FTDI_EVE) && HAS_JUNCTION_DEVIATION
#if BOTH(TOUCH_UI_FTDI_EVE, HAS_JUNCTION_DEVIATION)
#include "screens.h"

View File

@ -137,7 +137,7 @@ bool MainMenu::onTouchEnd(uint8_t tag) {
case 4: GOTO_SCREEN(MoveAxisScreen); break;
case 5: injectCommands_P(PSTR("M84")); break;
case 6: GOTO_SCREEN(TemperatureScreen); break;
#if ENABLED(TOUCH_UI_COCOA_PRESS) && HAS_CASE_LIGHT
#if BOTH(TOUCH_UI_COCOA_PRESS, HAS_CASE_LIGHT)
case 7: GOTO_SCREEN(CaseLightScreen); break;
#else
case 7: GOTO_SCREEN(ChangeFilamentScreen); break;

View File

@ -22,7 +22,7 @@
#include "../config.h"
#if ENABLED(TOUCH_UI_FTDI_EVE) && HAS_MULTI_HOTEND
#if BOTH(TOUCH_UI_FTDI_EVE, HAS_MULTI_HOTEND)
#include "screens.h"

View File

@ -22,7 +22,7 @@
#include "../config.h"
#if ENABLED(TOUCH_UI_FTDI_EVE) && HAS_TRINAMIC_CONFIG
#if BOTH(TOUCH_UI_FTDI_EVE, HAS_TRINAMIC_CONFIG)
#include "screens.h"

View File

@ -22,7 +22,7 @@
#include "../config.h"
#if ENABLED(TOUCH_UI_FTDI_EVE) && HAS_TRINAMIC_CONFIG
#if BOTH(TOUCH_UI_FTDI_EVE, HAS_TRINAMIC_CONFIG)
#include "screens.h"

View File

@ -22,7 +22,7 @@
#include "../config.h"
#if ENABLED(TOUCH_UI_FTDI_EVE) && HAS_BED_PROBE
#if BOTH(TOUCH_UI_FTDI_EVE, HAS_BED_PROBE)
#include "screens.h"

View File

@ -235,12 +235,14 @@ void menu_cancelobject();
#if HAS_HOTEND
DEFINE_PIDTEMP_FUNCS(0);
#if HAS_MULTI_HOTEND && ENABLED(PID_PARAMS_PER_HOTEND)
#if BOTH(HAS_MULTI_HOTEND, PID_PARAMS_PER_HOTEND)
REPEAT_S(1, HOTENDS, DEFINE_PIDTEMP_FUNCS)
#endif
#endif
#define SHOW_MENU_ADVANCED_TEMPERATURE ((ENABLED(AUTOTEMP) && HAS_TEMP_HOTEND) || EITHER(PID_AUTOTUNE_MENU, PID_EDIT_MENU))
#if BOTH(AUTOTEMP, HAS_TEMP_HOTEND) || EITHER(PID_AUTOTUNE_MENU, PID_EDIT_MENU)
#define SHOW_MENU_ADVANCED_TEMPERATURE 1
#endif
//
// Advanced Settings > Temperature
@ -253,7 +255,7 @@ void menu_cancelobject();
//
// Autotemp, Min, Max, Fact
//
#if ENABLED(AUTOTEMP) && HAS_TEMP_HOTEND
#if BOTH(AUTOTEMP, HAS_TEMP_HOTEND)
EDIT_ITEM(bool, MSG_AUTOTEMP, &planner.autotemp_enabled);
EDIT_ITEM(float3, MSG_MIN, &planner.autotemp_min, 0, float(HEATER_0_MAXTEMP) - 15);
EDIT_ITEM(float3, MSG_MAX, &planner.autotemp_max, 0, float(HEATER_0_MAXTEMP) - 15);
@ -308,7 +310,7 @@ void menu_cancelobject();
#endif
PID_EDIT_MENU_ITEMS(0);
#if HAS_MULTI_HOTEND && ENABLED(PID_PARAMS_PER_HOTEND)
#if BOTH(HAS_MULTI_HOTEND, PID_PARAMS_PER_HOTEND)
REPEAT_S(1, HOTENDS, PID_EDIT_MENU_ITEMS)
#endif

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(BACKLASH_GCODE)
#if BOTH(HAS_LCD_MENU, BACKLASH_GCODE)
#include "menu.h"

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(LEVEL_BED_CORNERS)
#if BOTH(HAS_LCD_MENU, LEVEL_BED_CORNERS)
#include "menu.h"
#include "../../module/motion.h"

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(CANCEL_OBJECTS)
#if BOTH(HAS_LCD_MENU, CANCEL_OBJECTS)
#include "menu.h"
#include "menu_addon.h"

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(CUSTOM_USER_MENUS)
#if BOTH(HAS_LCD_MENU, CUSTOM_USER_MENUS)
#include "menu.h"
#include "../../gcode/queue.h"
@ -39,9 +39,7 @@
void _lcd_user_gcode(PGM_P const cmd) {
queue.inject_P(cmd);
#if ENABLED(USER_SCRIPT_AUDIBLE_FEEDBACK) && HAS_BUZZER
ui.completion_feedback();
#endif
TERN_(USER_SCRIPT_AUDIBLE_FEEDBACK, ui.completion_feedback());
TERN_(USER_SCRIPT_RETURN, ui.return_to_status());
}

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(ADVANCED_PAUSE_FEATURE)
#if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE)
#include "menu.h"
#include "../../module/temperature.h"

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(LCD_INFO_MENU)
#if BOTH(HAS_LCD_MENU, LCD_INFO_MENU)
#include "menu.h"

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(POWER_LOSS_RECOVERY)
#if BOTH(HAS_LCD_MENU, POWER_LOSS_RECOVERY)
#include "menu.h"
#include "../../gcode/queue.h"

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(LED_CONTROL_MENU)
#if BOTH(HAS_LCD_MENU, LED_CONTROL_MENU)
#include "menu.h"
#include "../../feature/leds/leds.h"

View File

@ -203,7 +203,7 @@ void menu_main() {
GCODES_ITEM(MSG_SWITCH_PS_ON, PSTR("M80"));
#endif
#if HAS_ENCODER_WHEEL && ENABLED(SDSUPPORT)
#if BOTH(HAS_ENCODER_WHEEL, SDSUPPORT)
// *** IF THIS SECTION IS CHANGED, REPRODUCE ABOVE ***

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(SDSUPPORT)
#if BOTH(HAS_LCD_MENU, SDSUPPORT)
#include "menu.h"
#include "../../sd/cardreader.h"

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(MIXING_EXTRUDER)
#if BOTH(HAS_LCD_MENU, MIXING_EXTRUDER)
#include "menu.h"
#include "menu_addon.h"

View File

@ -22,7 +22,7 @@
#include "../../inc/MarlinConfig.h"
#if HAS_LCD_MENU && ENABLED(MMU2_MENUS)
#if BOTH(HAS_LCD_MENU, MMU2_MENUS)
#include "../../feature/mmu2/mmu2.h"
#include "menu_mmu2.h"
@ -171,4 +171,4 @@ uint8_t mmu2_choose_filament() {
return currentTool;
}
#endif // HAS_LCD_MENU && ENABLED(PRUSA_MMU2_MENUS)
#endif // HAS_LCD_MENU && MMU2_MENUS

View File

@ -257,7 +257,7 @@ void menu_move() {
START_MENU();
BACK_ITEM(MSG_MOTION);
#if HAS_SOFTWARE_ENDSTOPS && ENABLED(SOFT_ENDSTOPS_MENU_ITEM)
#if BOTH(HAS_SOFTWARE_ENDSTOPS, SOFT_ENDSTOPS_MENU_ITEM)
EDIT_ITEM(bool, MSG_LCD_SOFT_ENDSTOPS, &soft_endstops_enabled);
#endif

View File

@ -26,7 +26,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_LCD_MENU && ENABLED(AUTO_BED_LEVELING_UBL)
#if BOTH(HAS_LCD_MENU, AUTO_BED_LEVELING_UBL)
#include "menu.h"
#include "../../gcode/gcode.h"

View File

@ -60,7 +60,7 @@ MarlinUI ui;
constexpr uint8_t MAX_MESSAGE_LENGTH = 63;
#endif
#if HAS_SPI_LCD || ENABLED(EXTENSIBLE_UI)
#if EITHER(HAS_SPI_LCD, EXTENSIBLE_UI)
uint8_t MarlinUI::alert_level; // = 0
char MarlinUI::status_message[MAX_MESSAGE_LENGTH + 1];
#endif
@ -366,7 +366,7 @@ bool MarlinUI::get_blink() {
///////////// Keypad Handling //////////////
////////////////////////////////////////////
#if ENABLED(REPRAPWORLD_KEYPAD) && HAS_ENCODER_ACTION
#if BOTH(REPRAPWORLD_KEYPAD, HAS_ENCODER_ACTION)
volatile uint8_t MarlinUI::keypad_buttons;
@ -566,7 +566,7 @@ void MarlinUI::status_screen() {
if (old_frm != new_frm) {
feedrate_percentage = new_frm;
encoderPosition = 0;
#if HAS_BUZZER && ENABLED(BEEP_ON_FEEDRATE_CHANGE)
#if BOTH(HAS_BUZZER, BEEP_ON_FEEDRATE_CHANGE)
static millis_t next_beep;
#ifndef GOT_MS
const millis_t ms = millis();
@ -827,7 +827,7 @@ void MarlinUI::update() {
if (encoderPastThreshold || lcd_clicked) {
if (encoderPastThreshold) {
#if HAS_LCD_MENU && ENABLED(ENCODER_RATE_MULTIPLIER)
#if BOTH(HAS_LCD_MENU, ENCODER_RATE_MULTIPLIER)
int32_t encoderMultiplier = 1;
@ -888,7 +888,7 @@ void MarlinUI::update() {
refresh(LCDVIEW_REDRAW_NOW);
}
#if HAS_LCD_MENU && ENABLED(SCROLL_LONG_FILENAMES)
#if BOTH(HAS_LCD_MENU, SCROLL_LONG_FILENAMES)
// If scrolling of long file names is enabled and we are in the sd card menu,
// cause a refresh to occur until all the text has scrolled into view.
if (currentScreen == menu_media && !lcd_status_update_delay--) {
@ -1134,12 +1134,8 @@ void MarlinUI::update() {
#if HAS_SLOW_BUTTONS
| slow_buttons
#endif
#if ENABLED(TOUCH_BUTTONS) && HAS_ENCODER_ACTION
| (touch_buttons
#if HAS_ENCODER_WHEEL
& (~(EN_A | EN_B))
#endif
)
#if BOTH(TOUCH_BUTTONS, HAS_ENCODER_ACTION)
| (touch_buttons & TERN_(HAS_ENCODER_WHEEL, & ~(EN_A | EN_B)))
#endif
);
@ -1261,7 +1257,7 @@ void MarlinUI::update() {
next_filament_display = ms + 5000UL; // Show status message for 5s
#endif
#if HAS_SPI_LCD && ENABLED(STATUS_MESSAGE_SCROLLING)
#if BOTH(HAS_SPI_LCD, STATUS_MESSAGE_SCROLLING)
status_scroll_offset = 0;
#endif

View File

@ -27,7 +27,7 @@
#include "../libs/buzzer.h"
#endif
#if HAS_LCD_MENU || ENABLED(ULTIPANEL_FEEDMULTIPLY)
#if EITHER(HAS_LCD_MENU, ULTIPANEL_FEEDMULTIPLY)
#define HAS_ENCODER_ACTION 1
#endif
#if (!HAS_ADC_BUTTONS && ENABLED(NEWPANEL)) || BUTTONS_EXIST(EN1, EN2)

View File

@ -3099,7 +3099,7 @@ void MarlinSettings::reset() {
HOTEND_LOOP() {
CONFIG_ECHO_START();
SERIAL_ECHOPAIR_P(
#if HAS_MULTI_HOTEND && ENABLED(PID_PARAMS_PER_HOTEND)
#if BOTH(HAS_MULTI_HOTEND, PID_PARAMS_PER_HOTEND)
PSTR(" M301 E"), e,
SP_P_STR
#else

View File

@ -639,7 +639,7 @@ void restore_feedrate_and_scaling() {
if (TERN0(DELTA, !all_axes_homed())) return;
#if HAS_HOTEND_OFFSET && ENABLED(DELTA)
#if BOTH(HAS_HOTEND_OFFSET, DELTA)
// The effector center position will be the target minus the hotend offset.
const xy_pos_t offs = hotend_offset[active_extruder];
#else
@ -1287,7 +1287,7 @@ void do_homing_move(const AxisEnum axis, const float distance, const feedRate_t
DEBUG_ECHOLNPGM(")");
}
#if HOMING_Z_WITH_PROBE && HAS_HEATED_BED && ENABLED(WAIT_FOR_BED_HEATER)
#if ALL(HOMING_Z_WITH_PROBE, HAS_HEATED_BED, WAIT_FOR_BED_HEATER)
// Wait for bed to heat back up between probing points
if (axis == Z_AXIS && distance < 0)
thermalManager.wait_for_bed_heating();
@ -1578,7 +1578,7 @@ void homeaxis(const AxisEnum axis) {
// Fast move towards endstop until triggered
if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("Home 1 Fast:");
#if HOMING_Z_WITH_PROBE && ENABLED(BLTOUCH)
#if BOTH(HOMING_Z_WITH_PROBE, BLTOUCH)
if (axis == Z_AXIS && bltouch.deploy()) return; // The initial DEPLOY
#endif
@ -1590,7 +1590,7 @@ void homeaxis(const AxisEnum axis) {
do_homing_move(axis, 1.5f * max_length(TERN(DELTA, Z_AXIS, axis)) * axis_home_dir);
#if HOMING_Z_WITH_PROBE && ENABLED(BLTOUCH) && DISABLED(BLTOUCH_HS_MODE)
#if BOTH(HOMING_Z_WITH_PROBE, BLTOUCH) && DISABLED(BLTOUCH_HS_MODE)
if (axis == Z_AXIS) bltouch.stow(); // Intermediate STOW (in LOW SPEED MODE)
#endif
@ -1613,13 +1613,13 @@ void homeaxis(const AxisEnum axis) {
// Slow move towards endstop until triggered
if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("Home 2 Slow:");
#if HOMING_Z_WITH_PROBE && ENABLED(BLTOUCH) && DISABLED(BLTOUCH_HS_MODE)
#if BOTH(HOMING_Z_WITH_PROBE, BLTOUCH) && DISABLED(BLTOUCH_HS_MODE)
if (axis == Z_AXIS && bltouch.deploy()) return; // Intermediate DEPLOY (in LOW SPEED MODE)
#endif
do_homing_move(axis, 2 * bump, get_homing_bump_feedrate(axis));
#if HOMING_Z_WITH_PROBE && ENABLED(BLTOUCH)
#if BOTH(HOMING_Z_WITH_PROBE, BLTOUCH)
if (axis == Z_AXIS) bltouch.stow(); // The final STOW
#endif
}

View File

@ -441,7 +441,7 @@ bool Probe::set_deployed(const bool deploy) {
bool Probe::probe_down_to_z(const float z, const feedRate_t fr_mm_s) {
if (DEBUGGING(LEVELING)) DEBUG_POS(">>> Probe::probe_down_to_z", current_position);
#if HAS_HEATED_BED && ENABLED(WAIT_FOR_BED_HEATER)
#if BOTH(HAS_HEATED_BED, WAIT_FOR_BED_HEATER)
thermalManager.wait_for_bed_heating();
#endif

View File

@ -138,7 +138,7 @@ Stepper stepper; // Singleton
// public:
#if HAS_EXTRA_ENDSTOPS || ENABLED(Z_STEPPER_AUTO_ALIGN)
#if EITHER(HAS_EXTRA_ENDSTOPS, Z_STEPPER_AUTO_ALIGN)
bool Stepper::separate_multi_axis = false;
#endif
@ -2265,7 +2265,7 @@ void Stepper::init() {
TERN_(HAS_X2_DIR, X2_DIR_INIT());
#if HAS_Y_DIR
Y_DIR_INIT();
#if ENABLED(Y_DUAL_STEPPER_DRIVERS) && HAS_Y2_DIR
#if BOTH(Y_DUAL_STEPPER_DRIVERS, HAS_Y2_DIR)
Y2_DIR_INIT();
#endif
#endif
@ -2318,7 +2318,7 @@ void Stepper::init() {
#if HAS_Y_ENABLE
Y_ENABLE_INIT();
if (!Y_ENABLE_ON) Y_ENABLE_WRITE(HIGH);
#if ENABLED(Y_DUAL_STEPPER_DRIVERS) && HAS_Y2_ENABLE
#if BOTH(Y_DUAL_STEPPER_DRIVERS, HAS_Y2_ENABLE)
Y2_ENABLE_INIT();
if (!Y_ENABLE_ON) Y2_ENABLE_WRITE(HIGH);
#endif

View File

@ -240,7 +240,7 @@ class Stepper {
public:
#if HAS_EXTRA_ENDSTOPS || ENABLED(Z_STEPPER_AUTO_ALIGN)
#if EITHER(HAS_EXTRA_ENDSTOPS, Z_STEPPER_AUTO_ALIGN)
static bool separate_multi_axis;
#endif
@ -461,7 +461,7 @@ class Stepper {
static void microstep_readings();
#endif
#if HAS_EXTRA_ENDSTOPS || ENABLED(Z_STEPPER_AUTO_ALIGN)
#if EITHER(HAS_EXTRA_ENDSTOPS, Z_STEPPER_AUTO_ALIGN)
FORCE_INLINE static void set_separate_multi_axis(const bool state) { separate_multi_axis = state; }
#endif
#if ENABLED(X_DUAL_ENDSTOPS)

View File

@ -115,7 +115,7 @@
//
// Z Probe (when not Z_MIN_PIN)
//
#if !defined(Z_MIN_PROBE_PIN) && !(HAS_CUTTER && ENABLED(BOARD_REV_1_0))
#if !defined(Z_MIN_PROBE_PIN) && !BOTH(HAS_CUTTER, BOARD_REV_1_0)
#define Z_MIN_PROBE_PIN Z_MAX_PIN
#endif
@ -134,7 +134,7 @@
#define Z_DIR_PIN 39
#define Z_ENABLE_PIN 35
#if HAS_CUTTER && ENABLED(BOARD_REV_1_1_TO_1_3) && EXTRUDERS == 1
#if BOTH(HAS_CUTTER, BOARD_REV_1_1_TO_1_3) && EXTRUDERS == 1
// Move E0 to the spare and get Spindle/Laser signals from E0
#define E0_STEP_PIN 49
#define E0_DIR_PIN 47