Added back tool-reversed option
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 16 Dec 2018 00:47:51 +0000 (16:47 -0800)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 16 Dec 2018 00:47:51 +0000 (16:47 -0800)
CHANGELOG.md
src/avr/src/spindle.c
src/avr/src/vars.def
src/resources/config-template.json

index a20730f4bed8eff2ba9e3a701eb41628d55b926a..abe294c6fe811a7bd7054c94d6a07ec445dab440 100644 (file)
@@ -12,7 +12,6 @@ Buildbotics CNC Controller Firmware Changelog
  - Many layout tweaks/improvements.
  - Don't abort simulations when system time changes.
  - Only allow one camera stream at a time.
- -
 
 ## v0.4.2
  - Suppress ``Auto-creating missing tool`` warning.
@@ -21,7 +20,6 @@ Buildbotics CNC Controller Firmware Changelog
  - Fixed Web disconnect during simulation of large GCode.
  - Disable outputs on estop.
  - Improved switch debouncing for better homing.
- - Removed tool-reversed option.  Use tool-direction-mode instead.
  - Handle zero length dwell correctly.
  - Fixed problem with cached GCode file upload when file changed on disk.
  - Run simulation at low process priority.
index 0a32cbc886287f452dd541815aa52618d3e6d223..48b5801659fa32be5cd14f5bc772664214a5f2e8 100644 (file)
@@ -49,6 +49,7 @@ static struct {
   float override;
   sync_speed_t sync_speed;
   float speed;
+  bool reversed;
   float min_rpm;
   float max_rpm;
   float inv_max_rpm;
@@ -83,7 +84,7 @@ static float _speed_to_power(float speed) {
   else if (spindle.max_rpm <= power) power = 1;
   else power *= spindle.inv_max_rpm;
 
-  return negative ? -power : power;
+  return (negative ^ spindle.reversed) ? -power : power;
 }
 
 
@@ -213,6 +214,14 @@ void spindle_estop() {_set_type(SPINDLE_TYPE_DISABLED);}
 // Var callbacks
 uint8_t get_tool_type() {return spindle.type;}
 void set_tool_type(uint8_t value) {_set_type((spindle_type_t)value);}
+bool get_tool_reversed() {return spindle.reversed;}
+
+
+void set_tool_reversed(bool reversed) {
+  if (spindle.reversed == reversed) return;
+  spindle.reversed = reversed;
+  _update_speed();
+}
 
 
 float get_speed() {return _get_power() * spindle.max_rpm;}
index 51a754679211dc1f3d65fec7bac4d1ac87c95467..50645b2723a24519c2eb4cc6d993df65ab065516 100644 (file)
@@ -85,6 +85,7 @@ VAR(analog_input,    ai, f32,   ANALOG, 0, 0) // Analog input pins
 // Spindle
 VAR(tool_type,       st, u8,    0,      1, 1) // See spindle.c
 VAR(speed,            s, f32,   0,      0, 1) // Current spindle speed
+VAR(tool_reversed,   sr, b8,    0,      1, 1) // Reverse tool
 VAR(max_spin,        sx, f32,   0,      1, 1) // Maximum spindle speed
 VAR(min_spin,        sm, f32,   0,      1, 1) // Minimum spindle speed
 
index 50a94c11270a1d39c15cc9deac05eee650143392..a9a275b52ebfab881815f197977eef050c3948e7 100644 (file)
       "default": "Disabled",
       "code": "st"
     },
+    "tool-reversed": {
+      "type": "bool",
+      "default": false,
+      "code": "sr"
+    },
     "max-spin": {
       "type": "float",
       "unit": "RPM",