Browse Source

Finish M900 updates

Scott Lahteine 4 years ago
parent
commit
646599d0d9
2 changed files with 55 additions and 52 deletions
  1. 53
    50
      Marlin/src/gcode/feature/advance/M900.cpp
  2. 2
    2
      buildroot/share/tests/mega2560-tests

+ 53
- 50
Marlin/src/gcode/feature/advance/M900.cpp View File

47
     SERIAL_ECHOPGM(" value out of range");
47
     SERIAL_ECHOPGM(" value out of range");
48
     if (ten) SERIAL_ECHOPGM(" (0-10)");
48
     if (ten) SERIAL_ECHOPGM(" (0-10)");
49
     SERIAL_ECHOLNPGM(".");
49
     SERIAL_ECHOLNPGM(".");
50
-  }
51
-
52
-  if (!parser.seen_any()) {
53
-
54
-    #if ENABLED(EXTRA_LIN_ADVANCE_K)
55
-
56
-      #if EXTRUDERS < 2
57
-        SERIAL_ECHOLNPAIR("Advance S", int(new_slot), " K", kref, "(S", int(!new_slot), " K", lref, ")");
58
-      #else
59
-        LOOP_L_N(i, EXTRUDERS) {
60
-          const bool slot = TEST(lin_adv_slot, i);
61
-          SERIAL_ECHOLNPAIR("Advance T", int(i), " S", int(slot), " K", planner.extruder_advance_K[i],
62
-                            "(S", int(!slot), " K", other_extruder_advance_K[i], ")");
63
-          SERIAL_EOL();
64
-        }
65
-      #endif
66
-
67
-    #else
68
-
69
-      SERIAL_ECHO_START();
70
-      #if EXTRUDERS < 2
71
-        SERIAL_ECHOLNPAIR("Advance K=", planner.extruder_advance_K[0]);
72
-      #else
73
-        SERIAL_ECHOPGM("Advance K");
74
-        LOOP_L_N(i, EXTRUDERS) {
75
-          SERIAL_CHAR(' ', '0' + i, ':');
76
-          SERIAL_ECHO(planner.extruder_advance_K[i]);
77
-        }
78
-        SERIAL_EOL();
79
-      #endif
80
-
81
-    #endif
82
-
83
-    return;
84
-  }
50
+  };
85
 
51
 
86
   #if EXTRUDERS < 2
52
   #if EXTRUDERS < 2
87
     constexpr uint8_t tool_index = 0;
53
     constexpr uint8_t tool_index = 0;
93
     }
59
     }
94
   #endif
60
   #endif
95
 
61
 
96
-  float &kref = planner.extruder_advance_K[tool_index],
97
-        &lref = other_extruder_advance_K[tool_index];
98
-  const float oldK = kref, oldOther = lref;
62
+  float &kref = planner.extruder_advance_K[tool_index];
63
+
64
+  #if ENABLED(EXTRA_LIN_ADVANCE_K)
65
+    float &lref = other_extruder_advance_K[tool_index];
66
+  #endif
67
+
68
+  const float oldK = kref;
99
   float newK = oldK;
69
   float newK = oldK;
100
 
70
 
101
   #if ENABLED(EXTRA_LIN_ADVANCE_K)
71
   #if ENABLED(EXTRA_LIN_ADVANCE_K)
107
     // saved K values. Do here so K/L will apply correctly.
77
     // saved K values. Do here so K/L will apply correctly.
108
     if (new_slot != old_slot) {                       // Not the same slot?
78
     if (new_slot != old_slot) {                       // Not the same slot?
109
       SET_BIT_TO(lin_adv_slot, tool_index, new_slot); // Update the slot for the tool
79
       SET_BIT_TO(lin_adv_slot, tool_index, new_slot); // Update the slot for the tool
110
-      newK = oldOther;                                // Get new K value from backup
80
+      newK = lref;                                    // Get new K value from backup
111
       lref = oldK;                                    // Save K to backup
81
       lref = oldK;                                    // Save K to backup
112
     }
82
     }
113
 
83
 
114
     // Set the main K value. Apply if the main slot is active.
84
     // Set the main K value. Apply if the main slot is active.
115
     if (parser.seenval('K')) {
85
     if (parser.seenval('K')) {
116
-      const float newK = parser.value_float();
117
-      if (!WITHIN(newK, 0, 10)) echo_value_oor('K');
118
-      else if (new_slot)        lref = newK;          // S1 Knn
119
-      else                      newK = newK;          // S0 Knn
86
+      const float K = parser.value_float();
87
+      if (!WITHIN(K, 0, 10)) echo_value_oor('K');
88
+      else if (new_slot)        lref = K;             // S1 Knn
89
+      else                      newK = K;             // S0 Knn
120
     }
90
     }
121
 
91
 
122
     // Set the extra K value. Apply if the extra slot is active.
92
     // Set the extra K value. Apply if the extra slot is active.
123
     if (parser.seenval('L')) {
93
     if (parser.seenval('L')) {
124
-      const float newL = parser.value_float();
125
-      if (!WITHIN(newL, 0, 10)) echo_value_oor('L');
126
-      else if (!new_slot)       lref = newL;          // S0 Lnn
127
-      else                      newK = newL;          // S1 Lnn
94
+      const float L = parser.value_float();
95
+      if (!WITHIN(L, 0, 10)) echo_value_oor('L');
96
+      else if (!new_slot)       lref = L;             // S0 Lnn
97
+      else                      newK = L;             // S1 Lnn
128
     }
98
     }
129
 
99
 
130
   #else
100
   #else
131
 
101
 
132
     if (parser.seenval('K')) {
102
     if (parser.seenval('K')) {
133
-      const float newK = parser.value_float();
134
-      if (WITHIN(newK, 0, 10))
135
-        newK = newK;
103
+      const float K = parser.value_float();
104
+      if (WITHIN(K, 0, 10))
105
+        newK = K;
136
       else
106
       else
137
         echo_value_oor('K');
107
         echo_value_oor('K');
138
     }
108
     }
143
     planner.synchronize();
113
     planner.synchronize();
144
     kref = newK;
114
     kref = newK;
145
   }
115
   }
116
+
117
+  if (!parser.seen_any()) {
118
+
119
+    #if ENABLED(EXTRA_LIN_ADVANCE_K)
120
+
121
+      #if EXTRUDERS < 2
122
+        SERIAL_ECHOLNPAIR("Advance S", int(new_slot), " K", kref, "(S", int(!new_slot), " K", lref, ")");
123
+      #else
124
+        LOOP_L_N(i, EXTRUDERS) {
125
+          const bool slot = TEST(lin_adv_slot, i);
126
+          SERIAL_ECHOLNPAIR("Advance T", int(i), " S", int(slot), " K", planner.extruder_advance_K[i],
127
+                            "(S", int(!slot), " K", other_extruder_advance_K[i], ")");
128
+          SERIAL_EOL();
129
+        }
130
+      #endif
131
+
132
+    #else
133
+
134
+      SERIAL_ECHO_START();
135
+      #if EXTRUDERS < 2
136
+        SERIAL_ECHOLNPAIR("Advance K=", planner.extruder_advance_K[0]);
137
+      #else
138
+        SERIAL_ECHOPGM("Advance K");
139
+        LOOP_L_N(i, EXTRUDERS) {
140
+          SERIAL_CHAR(' ', '0' + i, ':');
141
+          SERIAL_ECHO(planner.extruder_advance_K[i]);
142
+        }
143
+        SERIAL_EOL();
144
+      #endif
145
+
146
+    #endif
147
+  }
148
+
146
 }
149
 }
147
 
150
 
148
 #endif // LIN_ADVANCE
151
 #endif // LIN_ADVANCE

+ 2
- 2
buildroot/share/tests/mega2560-tests View File

45
            BACKLASH_COMPENSATION BACKLASH_GCODE BAUD_RATE_GCODE BEZIER_CURVE_SUPPORT \
45
            BACKLASH_COMPENSATION BACKLASH_GCODE BAUD_RATE_GCODE BEZIER_CURVE_SUPPORT \
46
            FWRETRACT ARC_P_CIRCLES CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS \
46
            FWRETRACT ARC_P_CIRCLES CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS \
47
            PSU_CONTROL AUTO_POWER_CONTROL POWER_LOSS_RECOVERY POWER_LOSS_PIN POWER_LOSS_STATE \
47
            PSU_CONTROL AUTO_POWER_CONTROL POWER_LOSS_RECOVERY POWER_LOSS_PIN POWER_LOSS_STATE \
48
-          SLOW_PWM_HEATERS THERMAL_PROTECTION_CHAMBER LIN_ADVANCE \
48
+          SLOW_PWM_HEATERS THERMAL_PROTECTION_CHAMBER LIN_ADVANCE EXTRA_LIN_ADVANCE_K \
49
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT PINS_DEBUGGING MAX7219_DEBUG M114_DETAIL
49
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT PINS_DEBUGGING MAX7219_DEBUG M114_DETAIL
50
 exec_test $1 $2 "RAMPS | EXTRUDERS 2 | CHAR LCD + SD | FIX Probe | ABL-Linear | Advanced Pause | PLR | LEDs ..."
50
 exec_test $1 $2 "RAMPS | EXTRUDERS 2 | CHAR LCD + SD | FIX Probe | ABL-Linear | Advanced Pause | PLR | LEDs ..."
51
 
51
 
66
            REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER LIGHTWEIGHT_UI STATUS_MESSAGE_SCROLLING BOOT_MARLIN_LOGO_SMALL \
66
            REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER LIGHTWEIGHT_UI STATUS_MESSAGE_SCROLLING BOOT_MARLIN_LOGO_SMALL \
67
            SDSUPPORT SDCARD_SORT_ALPHA USB_FLASH_DRIVE_SUPPORT SCROLL_LONG_FILENAMES CANCEL_OBJECTS \
67
            SDSUPPORT SDCARD_SORT_ALPHA USB_FLASH_DRIVE_SUPPORT SCROLL_LONG_FILENAMES CANCEL_OBJECTS \
68
            EEPROM_SETTINGS EEPROM_CHITCHAT GCODE_MACROS CUSTOM_USER_MENUS \
68
            EEPROM_SETTINGS EEPROM_CHITCHAT GCODE_MACROS CUSTOM_USER_MENUS \
69
-           MULTI_NOZZLE_DUPLICATION CLASSIC_JERK LIN_ADVANCE QUICK_HOME \
69
+           MULTI_NOZZLE_DUPLICATION CLASSIC_JERK LIN_ADVANCE EXTRA_LIN_ADVANCE_K QUICK_HOME \
70
            LCD_SET_PROGRESS_MANUALLY PRINT_PROGRESS_SHOW_DECIMALS SHOW_REMAINING_TIME \
70
            LCD_SET_PROGRESS_MANUALLY PRINT_PROGRESS_SHOW_DECIMALS SHOW_REMAINING_TIME \
71
            BABYSTEPPING BABYSTEP_XY NANODLP_Z_SYNC I2C_POSITION_ENCODERS M114_DETAIL
71
            BABYSTEPPING BABYSTEP_XY NANODLP_Z_SYNC I2C_POSITION_ENCODERS M114_DETAIL
72
 exec_test $1 $2 "Azteeg X3 Pro | EXTRUDERS 5 | RRDFGSC | UBL | LIN_ADVANCE ..."
72
 exec_test $1 $2 "Azteeg X3 Pro | EXTRUDERS 5 | RRDFGSC | UBL | LIN_ADVANCE ..."

Loading…
Cancel
Save