|
32 | 32 |
|
33 | 33 | #if ENABLED(PARKING_EXTRUDER) |
34 | 34 | #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 |
38 | 35 | #endif |
39 | 36 |
|
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)) |
41 | 38 |
|
42 | 39 | // Used primarily with MANUAL_SOLENOID_CONTROL |
43 | 40 | 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; |
45 | 42 | 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; |
50 | 44 | #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; |
55 | 46 | #endif |
56 | 47 | #if HAS_SOLENOID(2) |
57 | | - case 2: |
58 | | - OUT_WRITE(SOL2_PIN, value); |
59 | | - break; |
| 48 | + case 2: OUT_WRITE(SOL2_PIN, value); break; |
60 | 49 | #endif |
61 | 50 | #if HAS_SOLENOID(3) |
62 | | - case 3: |
63 | | - OUT_WRITE(SOL3_PIN, value); |
64 | | - break; |
| 51 | + case 3: OUT_WRITE(SOL3_PIN, value); break; |
65 | 52 | #endif |
66 | 53 | #if HAS_SOLENOID(4) |
67 | | - case 4: |
68 | | - OUT_WRITE(SOL4_PIN, value); |
69 | | - break; |
| 54 | + case 4: OUT_WRITE(SOL4_PIN, value); break; |
70 | 55 | #endif |
71 | 56 | #if HAS_SOLENOID(5) |
72 | | - case 5: |
73 | | - OUT_WRITE(SOL5_PIN, value); |
74 | | - break; |
| 57 | + case 5: OUT_WRITE(SOL5_PIN, value); break; |
75 | 58 | #endif |
76 | | - default: |
77 | | - SERIAL_ECHO_MSG(STR_INVALID_SOLENOID); |
78 | | - break; |
| 59 | + default: SERIAL_ECHO_MSG(STR_INVALID_SOLENOID); break; |
79 | 60 | } |
80 | 61 | } |
81 | 62 |
|
|
0 commit comments