From: Joseph Coffland Date: Sun, 11 Sep 2016 12:55:29 +0000 (-0700) Subject: Fix feed/speed override parsing X-Git-Url: https://git.buildbotics.com/?a=commitdiff_plain;h=b232a13bb1752c919ae7c9fd024b42c6687c3c1a;p=bbctrl-firmware Fix feed/speed override parsing --- diff --git a/src/gcode_parser.c b/src/gcode_parser.c index af5f920..0e38257 100644 --- a/src/gcode_parser.c +++ b/src/gcode_parser.c @@ -214,12 +214,12 @@ static stat_t _validate_gcode_block() { * 3. set feed rate (F) * 3a. set feed override rate (M50) * 4. set spindle speed (S) - * 4a. set spindle override rate (M51.1) + * 4a. set spindle override rate (M51) * 5. select tool (T) * 6. change tool (M6) * 7. spindle on or off (M3, M4, M5) * 8. coolant on or off (M7, M8, M9) - * 9. enable or disable overrides (M48, M49, M50, M51) + * 9. enable or disable overrides (M48, M49) * 10. dwell (G4) * 11. set active plane (G17, G18, G19) * 12. set length units (G20, G21) @@ -236,7 +236,7 @@ static stat_t _validate_gcode_block() { * 21. stop and end (M0, M1, M2, M30, M60) * * Values in gn are in original units and should not be unit converted prior - * to calling the machine functions (which do the unit conversions) + * to calling the machine functions (which does the unit conversions) */ static stat_t _execute_gcode_block() { stat_t status = STAT_OK; @@ -244,16 +244,14 @@ static stat_t _execute_gcode_block() { mach_set_line(parser.gn.line); EXEC_FUNC(mach_set_feed_mode, feed_mode); EXEC_FUNC(mach_set_feed_rate, feed_rate); - EXEC_FUNC(mach_feed_override_factor, feed_override_factor); + EXEC_FUNC(mach_feed_override_enable, feed_override_enable); EXEC_FUNC(mach_set_spindle_speed, spindle_speed); - EXEC_FUNC(mach_spindle_override_factor, spindle_override_factor); + EXEC_FUNC(mach_spindle_override_enable, spindle_override_enable); EXEC_FUNC(mach_select_tool, tool); EXEC_FUNC(mach_change_tool, tool_change); EXEC_FUNC(mach_set_spindle_mode, spindle_mode); EXEC_FUNC(mach_mist_coolant_control, mist_coolant); EXEC_FUNC(mach_flood_coolant_control, flood_coolant); - EXEC_FUNC(mach_feed_override_enable, feed_override_enable); - EXEC_FUNC(mach_spindle_override_enable, spindle_override_enable); EXEC_FUNC(mach_override_enables, override_enables); if (parser.gn.next_action == NEXT_ACTION_DWELL) // G4 - dwell diff --git a/src/gcode_state.def b/src/gcode_state.def index 90d7e48..aa4d042 100644 --- a/src/gcode_state.def +++ b/src/gcode_state.def @@ -32,12 +32,12 @@ MEMBER(uint8_t, tool) // T - sets this value MEMBER(float, feed_rate) // F - mm/min or inverse time mode MEMBER(feed_mode_t, feed_mode) -MEMBER(float, feed_override_factor) // 1.0000 x F feed rate +MEMBER(float, feed_override) // 1.0000 x F feed rate MEMBER(bool, feed_override_enable) // M48, M49 MEMBER(float, spindle_speed) // in RPM MEMBER(spindle_mode_t, spindle_mode) -MEMBER(float, spindle_override_factor) // 1.0000 x S spindle speed +MEMBER(float, spindle_override) // 1.0000 x S spindle speed MEMBER(bool, spindle_override_enable) // true = override enabled MEMBER(motion_mode_t, motion_mode) // Group 1 modal motion diff --git a/src/machine.c b/src/machine.c index 55d1426..00ab787 100644 --- a/src/machine.c +++ b/src/machine.c @@ -116,12 +116,12 @@ feed_mode_t mach_get_feed_mode() {return mach.gm.feed_mode;} float mach_get_feed_override() { - return mach.gm.feed_override_enable ? mach.gm.feed_override_factor : 0; + return mach.gm.feed_override_enable ? mach.gm.feed_override : 0; } float mach_get_spindle_override() { - return mach.gm.spindle_override_enable ? mach.gm.spindle_override_factor : 0; + return mach.gm.spindle_override_enable ? mach.gm.spindle_override : 0; } @@ -841,14 +841,10 @@ void mach_override_enables(bool flag) { void mach_feed_override_enable(bool flag) { if (parser.gf.parameter && fp_ZERO(parser.gn.parameter)) mach.gm.feed_override_enable = false; - else mach.gm.feed_override_enable = true; -} - - -/// M50 -void mach_feed_override_factor(bool flag) { - mach.gm.feed_override_enable = flag; - mach.gm.feed_override_factor = parser.gn.parameter; + else { + if (parser.gf.parameter) mach.gm.feed_override = parser.gf.parameter; + mach.gm.feed_override_enable = true; + } } @@ -856,14 +852,10 @@ void mach_feed_override_factor(bool flag) { void mach_spindle_override_enable(bool flag) { if (parser.gf.parameter && fp_ZERO(parser.gn.parameter)) mach.gm.spindle_override_enable = false; - else mach.gm.spindle_override_enable = true; -} - - -/// M51 -void mach_spindle_override_factor(bool flag) { - mach.gm.spindle_override_enable = flag; - mach.gm.spindle_override_factor = parser.gn.parameter; + else { + if (parser.gf.parameter) mach.gm.spindle_override = parser.gf.parameter; + mach.gm.spindle_override_enable = true; + } } diff --git a/src/machine.h b/src/machine.h index 1985bed..50b9f06 100644 --- a/src/machine.h +++ b/src/machine.h @@ -123,9 +123,7 @@ void mach_flood_coolant_control(bool flood_coolant); void mach_override_enables(bool flag); void mach_feed_override_enable(bool flag); -void mach_feed_override_factor(bool flag); void mach_spindle_override_enable(bool flag); -void mach_spindle_override_factor(bool flag); void mach_message(const char *message);