31
31
#define _ES_ENUM (A,M ) A##_##M
32
32
#define ES_ENUM (A,M ) _ES_ENUM(A,M)
33
33
34
- #define _ES_ITEM (N ) N,
34
+ #define _ES_ITEM (N ) , N
35
35
#define ES_ITEM (K,N ) TERN(K,_ES_ITEM,_IF_1_ELSE)(N)
36
36
37
37
#define _ESN_ITEM (K,A,M ) ES_ITEM(K,ES_ENUM(A,M))
57
57
* - Z_MIN_PROBE is an alias to Z_MIN when the Z_MIN_PIN is being used as the probe pin.
58
58
* - When homing with the probe Z_ENDSTOP is a Z_MIN_PROBE alias, otherwise a Z_MIN/MAX alias.
59
59
*/
60
- enum EndstopEnum : char {
60
+ enum EndstopEnum : int8_t {
61
+ _ES_START_ = -1
62
+
61
63
// Common XYZ (ABC) endstops.
62
64
ES_MINMAX (X) ES_MINMAX (Y) ES_MINMAX (Z)
63
65
ES_MINMAX (I) ES_MINMAX (J) ES_MINMAX (K)
@@ -67,14 +69,18 @@ enum EndstopEnum : char {
67
69
ES_MINMAX (X2) ES_MINMAX (Y2) ES_MINMAX (Z2) ES_MINMAX (Z3) ES_MINMAX (Z4)
68
70
69
71
// Bed Probe state is distinct or shared with Z_MIN (i.e., when the probe is the only Z endstop)
70
- #if USE_Z_MIN_PROBE
71
- ES_ITEM (HAS_Z_PROBE_STATE , Z_MIN_PROBE)
72
+ #if HAS_Z_PROBE_STATE && USE_Z_MIN_PROBE
73
+ , Z_MIN_PROBE
72
74
#endif
73
75
74
- // The total number of states
75
- NUM_ENDSTOP_STATES
76
+ // The total number of distinct states
77
+ , NUM_ENDSTOP_STATES
76
78
77
79
// Endstop aliases
80
+ #if HAS_Z_PROBE_STATE && !USE_Z_MIN_PROBE
81
+ , Z_MIN_PROBE = Z_MIN
82
+ #endif
83
+
78
84
#if HAS_X_STATE
79
85
, X_ENDSTOP = TERN (X_HOME_TO_MAX, X_MAX, X_MIN)
80
86
#endif
0 commit comments