Skip to content

Commit 26d6114

Browse files
thinkyheaddpreed
authored andcommitted
Solenoid cleanups
Followups to MarlinFirmware#20473 ahead of MarlinFirmware#20675
1 parent d8e93e6 commit 26d6114

2 files changed

Lines changed: 10 additions & 33 deletions

File tree

Marlin/src/feature/solenoid.cpp

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,50 +32,31 @@
3232

3333
#if ENABLED(PARKING_EXTRUDER)
3434
#include "../module/tool_change.h"
35-
#define SOLENOID_MAGNETIZED_STATE (TERN_(PARKING_EXTRUDER_SOLENOIDS_INVERT,!)PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE)
36-
#else
37-
#define SOLENOID_MAGNETIZED_STATE HIGH
3835
#endif
3936

40-
#define HAS_SOLENOID(N) (HAS_SOLENOID_##N && TERN(MANUAL_SOLENOID_CONTROL, true, EXTRUDERS > N))
37+
#define HAS_SOLENOID(N) (HAS_SOLENOID_##N && (ENABLED(MANUAL_SOLENOID_CONTROL) || N < EXTRUDERS))
4138

4239
// Used primarily with MANUAL_SOLENOID_CONTROL
4340
static void set_solenoid(const uint8_t num, const bool active) {
44-
const uint8_t value = active ? SOLENOID_MAGNETIZED_STATE : !SOLENOID_MAGNETIZED_STATE;
41+
const uint8_t value = active ? PE_MAGNET_ON_STATE : !PE_MAGNET_ON_STATE;
4542
switch (num) {
46-
case 0:
47-
OUT_WRITE(SOL0_PIN, value);
48-
TERN_(PARKING_EXTRUDER, if (!active && active_extruder == 0) parking_extruder_set_parked()); // If active extruder's solenoid is disabled, carriage is considered parked
49-
break;
43+
case 0: OUT_WRITE(SOL0_PIN, value); break;
5044
#if HAS_SOLENOID(1)
51-
case 1:
52-
OUT_WRITE(SOL1_PIN, value);
53-
TERN_(PARKING_EXTRUDER, if (!active && active_extruder == 1) parking_extruder_set_parked()); // If active extruder's solenoid is disabled, carriage is considered parked
54-
break;
45+
case 1: OUT_WRITE(SOL1_PIN, value); break;
5546
#endif
5647
#if HAS_SOLENOID(2)
57-
case 2:
58-
OUT_WRITE(SOL2_PIN, value);
59-
break;
48+
case 2: OUT_WRITE(SOL2_PIN, value); break;
6049
#endif
6150
#if HAS_SOLENOID(3)
62-
case 3:
63-
OUT_WRITE(SOL3_PIN, value);
64-
break;
51+
case 3: OUT_WRITE(SOL3_PIN, value); break;
6552
#endif
6653
#if HAS_SOLENOID(4)
67-
case 4:
68-
OUT_WRITE(SOL4_PIN, value);
69-
break;
54+
case 4: OUT_WRITE(SOL4_PIN, value); break;
7055
#endif
7156
#if HAS_SOLENOID(5)
72-
case 5:
73-
OUT_WRITE(SOL5_PIN, value);
74-
break;
57+
case 5: OUT_WRITE(SOL5_PIN, value); break;
7558
#endif
76-
default:
77-
SERIAL_ECHO_MSG(STR_INVALID_SOLENOID);
78-
break;
59+
default: SERIAL_ECHO_MSG(STR_INVALID_SOLENOID); break;
7960
}
8061
}
8162

Marlin/src/module/tool_change.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,11 +260,7 @@ inline void fast_line_to_current(const AxisEnum fr_axis) { _line_to_current(fr_a
260260

261261
void pe_solenoid_init() {
262262
LOOP_LE_N(n, 1)
263-
#if ENABLED(PARKING_EXTRUDER_SOLENOIDS_INVERT)
264-
pe_activate_solenoid(n);
265-
#else
266-
pe_deactivate_solenoid(n);
267-
#endif
263+
TERN(PARKING_EXTRUDER_SOLENOIDS_INVERT, pe_activate_solenoid, pe_deactivate_solenoid)(n);
268264
}
269265

270266
void pe_set_solenoid(const uint8_t extruder_num, const uint8_t state) {

0 commit comments

Comments
 (0)