Fix feed/speed override parsing
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 11 Sep 2016 12:55:29 +0000 (05:55 -0700)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 11 Sep 2016 12:55:29 +0000 (05:55 -0700)
src/gcode_parser.c
src/gcode_state.def
src/machine.c
src/machine.h

index af5f920abbbb6066769740d307325d6d6fca674c..0e3825705f4d542729d8c56016a2a91eb17c9572 100644 (file)
@@ -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
index 90d7e483b571b1cc5348b1a6d4feb73c4d090019..aa4d042a2f78b5b076245ef9d8a2f78a265aac8a 100644 (file)
@@ -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
index 55d1426709cebaa44f4fd15c7d6e97fc1025c6bd..00ab787bf0ac1caa9acebf2b43b4270714d13037 100644 (file)
@@ -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;
+  }
 }
 
 
index 1985bedd56cc6883eca767831199d658271c0289..50b9f06710513f66b90f6616c02e477796c563ee 100644 (file)
@@ -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);