Skip to content

Commit 68f7478

Browse files
committed
🎨 Misc. fixes, cleanup
1 parent 08edb62 commit 68f7478

File tree

9 files changed

+119
-263
lines changed

9 files changed

+119
-263
lines changed

Marlin/src/core/types.h

+2
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ template <class L, class R> struct IF<true, L, R> { typedef L type; };
6767

6868
#define SECONDARY_AXIS_GANG(V...) GANG_N(SECONDARY_AXES, V)
6969
#define SECONDARY_AXIS_CODE(V...) CODE_N(SECONDARY_AXES, V)
70+
#define SECONDARY_AXIS_LIST(V...) LIST_N(SECONDARY_AXES, V)
71+
#define SECONDARY_AXIS_ARGS(T) SECONDARY_AXIS_LIST(T i, T j, T k, T u, T v, T w)
7072

7173
#if HAS_ROTATIONAL_AXES
7274
#define ROTATIONAL_AXIS_GANG(V...) GANG_N(ROTATIONAL_AXES, V)

Marlin/src/gcode/calibrate/M666.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
#include "../../inc/MarlinConfig.h"
2424

25-
#if ENABLED(DELTA) || HAS_EXTRA_ENDSTOPS
25+
#if EITHER(DELTA, HAS_EXTRA_ENDSTOPS)
2626

2727
#include "../gcode.h"
2828

Marlin/src/gcode/gcode.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -954,7 +954,7 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
954954
case 665: M665(); break; // M665: Set Kinematics parameters
955955
#endif
956956

957-
#if ENABLED(DELTA) || HAS_EXTRA_ENDSTOPS
957+
#if EITHER(DELTA, HAS_EXTRA_ENDSTOPS)
958958
case 666: M666(); break; // M666: Set delta or multiple endstop adjustment
959959
#endif
960960

Marlin/src/module/endstops.cpp

+44-104
Original file line numberDiff line numberDiff line change
@@ -514,12 +514,12 @@ void Endstops::update() {
514514
#endif
515515

516516
// Macros to update / copy the live_state
517-
#define UPDATE_ENDSTOP_BIT(AXIS, MINMAX) SET_BIT_TO(live_state, _ENDSTOP(AXIS, MINMAX), (READ_ENDSTOP(_ENDSTOP_PIN(AXIS, MINMAX)) == _ENDSTOP_HIT_STATE(AXIS, MINMAX)))
517+
#define UPDATE_LIVE_STATE(AXIS, MINMAX) SET_BIT_TO(live_state, _ENDSTOP(AXIS, MINMAX), (READ_ENDSTOP(_ENDSTOP_PIN(AXIS, MINMAX)) == _ENDSTOP_HIT_STATE(AXIS, MINMAX)))
518518
#define COPY_LIVE_STATE(SRC_BIT, DST_BIT) SET_BIT_TO(live_state, DST_BIT, TEST(live_state, SRC_BIT))
519519

520520
#if ENABLED(G38_PROBE_TARGET)
521521
// For G38 moves check the probe's pin for ALL movement
522-
if (G38_move) UPDATE_ENDSTOP_BIT(Z, TERN(USES_Z_MIN_PROBE_PIN, MIN_PROBE, MIN));
522+
if (G38_move) UPDATE_LIVE_STATE(Z, TERN(USES_Z_MIN_PROBE_PIN, MIN_PROBE, MIN));
523523
#endif
524524

525525
// With Dual X, endstops are only checked in the homing direction for the active extruder
@@ -554,67 +554,67 @@ void Endstops::update() {
554554
* Check and update endstops
555555
*/
556556
#if HAS_X_MIN && !X_SPI_SENSORLESS
557-
UPDATE_ENDSTOP_BIT(X, MIN);
557+
UPDATE_LIVE_STATE(X, MIN);
558558
#if ENABLED(X_DUAL_ENDSTOPS)
559559
#if HAS_X2_MIN
560-
UPDATE_ENDSTOP_BIT(X2, MIN);
560+
UPDATE_LIVE_STATE(X2, MIN);
561561
#else
562562
COPY_LIVE_STATE(X_MIN, X2_MIN);
563563
#endif
564564
#endif
565565
#endif
566566

567567
#if HAS_X_MAX && !X_SPI_SENSORLESS
568-
UPDATE_ENDSTOP_BIT(X, MAX);
568+
UPDATE_LIVE_STATE(X, MAX);
569569
#if ENABLED(X_DUAL_ENDSTOPS)
570570
#if HAS_X2_MAX
571-
UPDATE_ENDSTOP_BIT(X2, MAX);
571+
UPDATE_LIVE_STATE(X2, MAX);
572572
#else
573573
COPY_LIVE_STATE(X_MAX, X2_MAX);
574574
#endif
575575
#endif
576576
#endif
577577

578578
#if HAS_Y_MIN && !Y_SPI_SENSORLESS
579-
UPDATE_ENDSTOP_BIT(Y, MIN);
579+
UPDATE_LIVE_STATE(Y, MIN);
580580
#if ENABLED(Y_DUAL_ENDSTOPS)
581581
#if HAS_Y2_MIN
582-
UPDATE_ENDSTOP_BIT(Y2, MIN);
582+
UPDATE_LIVE_STATE(Y2, MIN);
583583
#else
584584
COPY_LIVE_STATE(Y_MIN, Y2_MIN);
585585
#endif
586586
#endif
587587
#endif
588588

589589
#if HAS_Y_MAX && !Y_SPI_SENSORLESS
590-
UPDATE_ENDSTOP_BIT(Y, MAX);
590+
UPDATE_LIVE_STATE(Y, MAX);
591591
#if ENABLED(Y_DUAL_ENDSTOPS)
592592
#if HAS_Y2_MAX
593-
UPDATE_ENDSTOP_BIT(Y2, MAX);
593+
UPDATE_LIVE_STATE(Y2, MAX);
594594
#else
595595
COPY_LIVE_STATE(Y_MAX, Y2_MAX);
596596
#endif
597597
#endif
598598
#endif
599599

600600
#if HAS_Z_MIN && NONE(Z_SPI_SENSORLESS, Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
601-
UPDATE_ENDSTOP_BIT(Z, MIN);
601+
UPDATE_LIVE_STATE(Z, MIN);
602602
#if ENABLED(Z_MULTI_ENDSTOPS)
603603
#if HAS_Z2_MIN
604-
UPDATE_ENDSTOP_BIT(Z2, MIN);
604+
UPDATE_LIVE_STATE(Z2, MIN);
605605
#else
606606
COPY_LIVE_STATE(Z_MIN, Z2_MIN);
607607
#endif
608608
#if NUM_Z_STEPPERS >= 3
609609
#if HAS_Z3_MIN
610-
UPDATE_ENDSTOP_BIT(Z3, MIN);
610+
UPDATE_LIVE_STATE(Z3, MIN);
611611
#else
612612
COPY_LIVE_STATE(Z_MIN, Z3_MIN);
613613
#endif
614614
#endif
615615
#if NUM_Z_STEPPERS >= 4
616616
#if HAS_Z4_MIN
617-
UPDATE_ENDSTOP_BIT(Z4, MIN);
617+
UPDATE_LIVE_STATE(Z4, MIN);
618618
#else
619619
COPY_LIVE_STATE(Z_MIN, Z4_MIN);
620620
#endif
@@ -625,189 +625,129 @@ void Endstops::update() {
625625
#if HAS_BED_PROBE
626626
// When closing the gap check the enabled probe
627627
if (probe_switch_activated())
628-
UPDATE_ENDSTOP_BIT(Z, TERN(USES_Z_MIN_PROBE_PIN, MIN_PROBE, MIN));
628+
UPDATE_LIVE_STATE(Z, TERN(USES_Z_MIN_PROBE_PIN, MIN_PROBE, MIN));
629629
#endif
630630

631631
#if HAS_Z_MAX && !Z_SPI_SENSORLESS
632632
// Check both Z dual endstops
633633
#if ENABLED(Z_MULTI_ENDSTOPS)
634-
UPDATE_ENDSTOP_BIT(Z, MAX);
634+
UPDATE_LIVE_STATE(Z, MAX);
635635
#if HAS_Z2_MAX
636-
UPDATE_ENDSTOP_BIT(Z2, MAX);
636+
UPDATE_LIVE_STATE(Z2, MAX);
637637
#else
638638
COPY_LIVE_STATE(Z_MAX, Z2_MAX);
639639
#endif
640640
#if NUM_Z_STEPPERS >= 3
641641
#if HAS_Z3_MAX
642-
UPDATE_ENDSTOP_BIT(Z3, MAX);
642+
UPDATE_LIVE_STATE(Z3, MAX);
643643
#else
644644
COPY_LIVE_STATE(Z_MAX, Z3_MAX);
645645
#endif
646646
#endif
647647
#if NUM_Z_STEPPERS >= 4
648648
#if HAS_Z4_MAX
649-
UPDATE_ENDSTOP_BIT(Z4, MAX);
649+
UPDATE_LIVE_STATE(Z4, MAX);
650650
#else
651651
COPY_LIVE_STATE(Z_MAX, Z4_MAX);
652652
#endif
653653
#endif
654654
#elif TERN1(USES_Z_MIN_PROBE_PIN, Z_MAX_PIN != Z_MIN_PROBE_PIN)
655655
// If this pin isn't the bed probe it's the Z endstop
656-
UPDATE_ENDSTOP_BIT(Z, MAX);
656+
UPDATE_LIVE_STATE(Z, MAX);
657657
#endif
658658
#endif
659659

660660
#if HAS_I_MIN && !I_SPI_SENSORLESS
661661
#if ENABLED(I_DUAL_ENDSTOPS)
662-
UPDATE_ENDSTOP_BIT(I, MIN);
663-
#if HAS_I2_MIN
664-
UPDATE_ENDSTOP_BIT(I2, MAX);
665-
#else
666-
COPY_LIVE_STATE(I_MIN, I2_MIN);
667-
#endif
662+
UPDATE_LIVE_STATE(I, MIN);
668663
#else
669-
UPDATE_ENDSTOP_BIT(I, MIN);
664+
UPDATE_LIVE_STATE(I, MIN);
670665
#endif
671666
#endif
672667

673668
#if HAS_I_MAX && !I_SPI_SENSORLESS
674669
#if ENABLED(I_DUAL_ENDSTOPS)
675-
UPDATE_ENDSTOP_BIT(I, MAX);
676-
#if HAS_I2_MAX
677-
UPDATE_ENDSTOP_BIT(I2, MAX);
678-
#else
679-
COPY_LIVE_STATE(I_MAX, I2_MAX);
680-
#endif
670+
UPDATE_LIVE_STATE(I, MAX);
681671
#else
682-
UPDATE_ENDSTOP_BIT(I, MAX);
672+
UPDATE_LIVE_STATE(I, MAX);
683673
#endif
684674
#endif
685675

686676
#if HAS_J_MIN && !J_SPI_SENSORLESS
687677
#if ENABLED(J_DUAL_ENDSTOPS)
688-
UPDATE_ENDSTOP_BIT(J, MIN);
689-
#if HAS_J2_MIN
690-
UPDATE_ENDSTOP_BIT(J2, MIN);
691-
#else
692-
COPY_LIVE_STATE(J_MIN, J2_MIN);
693-
#endif
678+
UPDATE_LIVE_STATE(J, MIN);
694679
#else
695-
UPDATE_ENDSTOP_BIT(J, MIN);
680+
UPDATE_LIVE_STATE(J, MIN);
696681
#endif
697682
#endif
698683

699684
#if HAS_J_MAX && !J_SPI_SENSORLESS
700685
#if ENABLED(J_DUAL_ENDSTOPS)
701-
UPDATE_ENDSTOP_BIT(J, MAX);
702-
#if HAS_J2_MAX
703-
UPDATE_ENDSTOP_BIT(J2, MAX);
704-
#else
705-
COPY_LIVE_STATE(J_MAX, J2_MAX);
706-
#endif
686+
UPDATE_LIVE_STATE(J, MAX);
707687
#else
708-
UPDATE_ENDSTOP_BIT(J, MAX);
688+
UPDATE_LIVE_STATE(J, MAX);
709689
#endif
710690
#endif
711691

712692
#if HAS_K_MIN && !K_SPI_SENSORLESS
713693
#if ENABLED(K_DUAL_ENDSTOPS)
714-
UPDATE_ENDSTOP_BIT(K, MIN);
715-
#if HAS_K2_MIN
716-
UPDATE_ENDSTOP_BIT(K2, MIN);
717-
#else
718-
COPY_LIVE_STATE(K_MIN, K2_MIN);
719-
#endif
694+
UPDATE_LIVE_STATE(K, MIN);
720695
#else
721-
UPDATE_ENDSTOP_BIT(K, MIN);
696+
UPDATE_LIVE_STATE(K, MIN);
722697
#endif
723698
#endif
724699

725700
#if HAS_K_MAX && !K_SPI_SENSORLESS
726701
#if ENABLED(K_DUAL_ENDSTOPS)
727-
UPDATE_ENDSTOP_BIT(K, MAX);
728-
#if HAS_K2_MAX
729-
UPDATE_ENDSTOP_BIT(K2, MAX);
730-
#else
731-
COPY_LIVE_STATE(K_MAX, K2_MAX);
732-
#endif
702+
UPDATE_LIVE_STATE(K, MAX);
733703
#else
734-
UPDATE_ENDSTOP_BIT(K, MAX);
704+
UPDATE_LIVE_STATE(K, MAX);
735705
#endif
736706
#endif
737707

738708
#if HAS_U_MIN && !U_SPI_SENSORLESS
739709
#if ENABLED(U_DUAL_ENDSTOPS)
740-
UPDATE_ENDSTOP_BIT(U, MIN);
741-
#if HAS_U2_MIN
742-
UPDATE_ENDSTOP_BIT(U2, MIN);
743-
#else
744-
COPY_LIVE_STATE(U_MIN, U2_MIN);
745-
#endif
710+
UPDATE_LIVE_STATE(U, MIN);
746711
#else
747-
UPDATE_ENDSTOP_BIT(U, MIN);
712+
UPDATE_LIVE_STATE(U, MIN);
748713
#endif
749714
#endif
750715

751716
#if HAS_U_MAX && !U_SPI_SENSORLESS
752717
#if ENABLED(U_DUAL_ENDSTOPS)
753-
UPDATE_ENDSTOP_BIT(U, MAX);
754-
#if HAS_U2_MAX
755-
UPDATE_ENDSTOP_BIT(U2, MAX);
756-
#else
757-
COPY_LIVE_STATE(U_MAX, U2_MAX);
758-
#endif
718+
UPDATE_LIVE_STATE(U, MAX);
759719
#else
760-
UPDATE_ENDSTOP_BIT(U, MAX);
720+
UPDATE_LIVE_STATE(U, MAX);
761721
#endif
762722
#endif
763723

764724
#if HAS_V_MIN && !V_SPI_SENSORLESS
765725
#if ENABLED(V_DUAL_ENDSTOPS)
766-
UPDATE_ENDSTOP_BIT(V, MIN);
767-
#if HAS_V2_MIN
768-
UPDATE_ENDSTOP_BIT(V2, MIN);
769-
#else
770-
COPY_LIVE_STATE(V_MIN, V2_MIN);
771-
#endif
726+
UPDATE_LIVE_STATE(V, MIN);
772727
#else
773-
UPDATE_ENDSTOP_BIT(V, MIN);
728+
UPDATE_LIVE_STATE(V, MIN);
774729
#endif
775730
#endif
776731
#if HAS_V_MAX && !V_SPI_SENSORLESS
777732
#if ENABLED(O_DUAL_ENDSTOPS)
778-
UPDATE_ENDSTOP_BIT(V, MAX);
779-
#if HAS_V2_MAX
780-
UPDATE_ENDSTOP_BIT(V2, MAX);
781-
#else
782-
COPY_LIVE_STATE(V_MAX, V2_MAX);
783-
#endif
733+
UPDATE_LIVE_STATE(V, MAX);
784734
#else
785-
UPDATE_ENDSTOP_BIT(V, MAX);
735+
UPDATE_LIVE_STATE(V, MAX);
786736
#endif
787737
#endif
788738

789739
#if HAS_W_MIN && !W_SPI_SENSORLESS
790740
#if ENABLED(W_DUAL_ENDSTOPS)
791-
UPDATE_ENDSTOP_BIT(W, MIN);
792-
#if HAS_W2_MIN
793-
UPDATE_ENDSTOP_BIT(W2, MIN);
794-
#else
795-
COPY_LIVE_STATE(W_MIN, W2_MIN);
796-
#endif
741+
UPDATE_LIVE_STATE(W, MIN);
797742
#else
798-
UPDATE_ENDSTOP_BIT(W, MIN);
743+
UPDATE_LIVE_STATE(W, MIN);
799744
#endif
800745
#endif
801746
#if HAS_W_MAX && !W_SPI_SENSORLESS
802747
#if ENABLED(W_DUAL_ENDSTOPS)
803-
UPDATE_ENDSTOP_BIT(W, MAX);
804-
#if HAS_W2_MAX
805-
UPDATE_ENDSTOP_BIT(W2, MAX);
806-
#else
807-
COPY_LIVE_STATE(W_MAX, W2_MAX);
808-
#endif
748+
UPDATE_LIVE_STATE(W, MAX);
809749
#else
810-
UPDATE_ENDSTOP_BIT(W, MAX);
750+
UPDATE_LIVE_STATE(W, MAX);
811751
#endif
812752
#endif
813753

0 commit comments

Comments
 (0)