Synchronize on M204, M205 (#12302)
* Add parser.seen for multiple parameters * Fix M666, use !seen for report * Synchronize on M204, M205
This commit is contained in:
@ -91,28 +91,19 @@ void GcodeSuite::M203() {
|
||||
* T = Travel (non printing) moves
|
||||
*/
|
||||
void GcodeSuite::M204() {
|
||||
bool report = true;
|
||||
if (parser.seenval('S')) { // Kept for legacy compatibility. Should NOT BE USED for new developments.
|
||||
planner.settings.travel_acceleration = planner.settings.acceleration = parser.value_linear_units();
|
||||
report = false;
|
||||
}
|
||||
if (parser.seenval('P')) {
|
||||
planner.settings.acceleration = parser.value_linear_units();
|
||||
report = false;
|
||||
}
|
||||
if (parser.seenval('R')) {
|
||||
planner.settings.retract_acceleration = parser.value_linear_units();
|
||||
report = false;
|
||||
}
|
||||
if (parser.seenval('T')) {
|
||||
planner.settings.travel_acceleration = parser.value_linear_units();
|
||||
report = false;
|
||||
}
|
||||
if (report) {
|
||||
if (!parser.seen("PRST")) {
|
||||
SERIAL_ECHOPAIR("Acceleration: P", planner.settings.acceleration);
|
||||
SERIAL_ECHOPAIR(" R", planner.settings.retract_acceleration);
|
||||
SERIAL_ECHOLNPAIR(" T", planner.settings.travel_acceleration);
|
||||
}
|
||||
else {
|
||||
planner.synchronize();
|
||||
// 'S' for legacy compatibility. Should NOT BE USED for new development
|
||||
if (parser.seenval('S')) planner.settings.travel_acceleration = planner.settings.acceleration = parser.value_linear_units();
|
||||
if (parser.seenval('P')) planner.settings.acceleration = parser.value_linear_units();
|
||||
if (parser.seenval('R')) planner.settings.retract_acceleration = parser.value_linear_units();
|
||||
if (parser.seenval('T')) planner.settings.travel_acceleration = parser.value_linear_units();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -128,6 +119,19 @@ void GcodeSuite::M204() {
|
||||
* J = Junction Deviation (mm) (Requires JUNCTION_DEVIATION)
|
||||
*/
|
||||
void GcodeSuite::M205() {
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define J_PARAM "J"
|
||||
#else
|
||||
#define J_PARAM
|
||||
#endif
|
||||
#if HAS_CLASSIC_JERK
|
||||
#define XYZE_PARAM "XYZE"
|
||||
#else
|
||||
#define XYZE_PARAM
|
||||
#endif
|
||||
if (!parser.seen("BST" J_PARAM XYZE_PARAM)) return;
|
||||
|
||||
planner.synchronize();
|
||||
if (parser.seen('B')) planner.settings.min_segment_time_us = parser.value_ulong();
|
||||
if (parser.seen('S')) planner.settings.min_feedrate_mm_s = parser.value_linear_units();
|
||||
if (parser.seen('T')) planner.settings.min_travel_feedrate_mm_s = parser.value_linear_units();
|
||||
|
@ -66,24 +66,30 @@ void M217_report(const bool eeprom=false) {
|
||||
*/
|
||||
void GcodeSuite::M217() {
|
||||
|
||||
bool report = true;
|
||||
#define SPR_PARAM
|
||||
#define XY_PARAM
|
||||
|
||||
#if ENABLED(SINGLENOZZLE)
|
||||
|
||||
if (parser.seenval('S')) { report = false; const float v = parser.value_linear_units(); toolchange_settings.swap_length = constrain(v, 0, 500); }
|
||||
if (parser.seenval('P')) { report = false; const int16_t v = parser.value_linear_units(); toolchange_settings.prime_speed = constrain(v, 10, 5400); }
|
||||
if (parser.seenval('R')) { report = false; const int16_t v = parser.value_linear_units(); toolchange_settings.retract_speed = constrain(v, 10, 5400); }
|
||||
#undef SPR_PARAM
|
||||
#define SPR_PARAM "SPR"
|
||||
|
||||
if (parser.seenval('S')) { const float v = parser.value_linear_units(); toolchange_settings.swap_length = constrain(v, 0, 500); }
|
||||
if (parser.seenval('P')) { const int16_t v = parser.value_linear_units(); toolchange_settings.prime_speed = constrain(v, 10, 5400); }
|
||||
if (parser.seenval('R')) { const int16_t v = parser.value_linear_units(); toolchange_settings.retract_speed = constrain(v, 10, 5400); }
|
||||
|
||||
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
|
||||
if (parser.seenval('X')) { report = false; toolchange_settings.change_point.x = parser.value_linear_units(); }
|
||||
if (parser.seenval('Y')) { report = false; toolchange_settings.change_point.y = parser.value_linear_units(); }
|
||||
#undef XY_PARAM
|
||||
#define XY_PARAM "XY"
|
||||
if (parser.seenval('X')) { toolchange_settings.change_point.x = parser.value_linear_units(); }
|
||||
if (parser.seenval('Y')) { toolchange_settings.change_point.y = parser.value_linear_units(); }
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
if (parser.seenval('Z')) { report = false; toolchange_settings.z_raise = parser.value_linear_units(); }
|
||||
if (parser.seenval('Z')) { toolchange_settings.z_raise = parser.value_linear_units(); }
|
||||
|
||||
if (report) M217_report();
|
||||
if (!parser.seen(SPR_PARAM XY_PARAM "Z")) M217_report();
|
||||
|
||||
}
|
||||
|
||||
|
@ -42,21 +42,11 @@
|
||||
void GcodeSuite::M218() {
|
||||
if (get_target_extruder_from_command() || target_extruder == 0) return;
|
||||
|
||||
bool report = true;
|
||||
if (parser.seenval('X')) {
|
||||
hotend_offset[X_AXIS][target_extruder] = parser.value_linear_units();
|
||||
report = false;
|
||||
}
|
||||
if (parser.seenval('Y')) {
|
||||
hotend_offset[Y_AXIS][target_extruder] = parser.value_linear_units();
|
||||
report = false;
|
||||
}
|
||||
if (parser.seenval('Z')) {
|
||||
hotend_offset[Z_AXIS][target_extruder] = parser.value_linear_units();
|
||||
report = false;
|
||||
}
|
||||
if (parser.seenval('X')) hotend_offset[X_AXIS][target_extruder] = parser.value_linear_units();
|
||||
if (parser.seenval('Y')) hotend_offset[Y_AXIS][target_extruder] = parser.value_linear_units();
|
||||
if (parser.seenval('Z')) hotend_offset[Z_AXIS][target_extruder] = parser.value_linear_units();
|
||||
|
||||
if (report) {
|
||||
if (!parser.seen("XYZ")) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPGM(MSG_HOTEND_OFFSET);
|
||||
HOTEND_LOOP() {
|
||||
|
Reference in New Issue
Block a user