Added peak accel and peak vel vars
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Wed, 21 Mar 2018 07:41:28 +0000 (00:41 -0700)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Wed, 21 Mar 2018 07:41:28 +0000 (00:41 -0700)
src/avr/src/exec.c
src/avr/src/vars.def

index 2ffc957a43a326df3e4c9c40d3a4caf22f0df172..e4231a686c4c9d56497730073eac9cd51aa21a36 100644 (file)
@@ -47,6 +47,8 @@ static struct {
   float velocity;
   float accel;
   float jerk;
+  float peak_vel;
+  float peak_accel;
 
   float feed_override;
   float spindle_override;
@@ -77,9 +79,23 @@ void exec_get_position(float p[AXES]) {
 
 
 float exec_get_axis_position(int axis) {return ex.position[axis];}
-void exec_set_velocity(float v) {ex.velocity = v;}
+
+
+void exec_set_velocity(float v) {
+  ex.velocity = v;
+  if (ex.peak_vel < v) ex.peak_vel = v;
+}
+
+
 float exec_get_velocity() {return ex.velocity;}
-void exec_set_acceleration(float a) {ex.accel = a;}
+
+
+void exec_set_acceleration(float a) {
+  ex.accel = a;
+  if (ex.peak_accel < a) ex.peak_accel = a;
+}
+
+
 float exec_get_acceleration() {return ex.accel;}
 void exec_set_jerk(float j) {ex.jerk = j;}
 void exec_set_cb(exec_cb_t cb) {ex.cb = cb;}
@@ -117,6 +133,10 @@ float get_axis_position(int axis) {return ex.position[axis];}
 float get_velocity() {return ex.velocity / VELOCITY_MULTIPLIER;}
 float get_acceleration() {return ex.accel / ACCEL_MULTIPLIER;}
 float get_jerk() {return ex.jerk / JERK_MULTIPLIER;}
+float get_peak_vel() {return ex.peak_vel / VELOCITY_MULTIPLIER;}
+void set_peak_vel(float x) {ex.peak_vel = 0;}
+float get_peak_accel() {return ex.peak_accel / ACCEL_MULTIPLIER;}
+void set_peak_accel(float x) {ex.peak_accel = 0;}
 float get_feed_override() {return ex.feed_override;}
 void set_feed_override(float value) {ex.feed_override = value;}
 float get_speed_override() {return ex.spindle_override;}
index 5e2c19e6e54931fa878867b270f9ecc3a2f93fa9..c96a0cbabda93c88540a2610df400795276637be 100644 (file)
@@ -118,6 +118,8 @@ VAR(optional_pause,  op, b8,    0,      1, 1, "Optional pause state")
 VAR(velocity,        v,  f32,   0,      0, 1, "Current velocity")
 VAR(acceleration,   ax,  f32,   0,      0, 1, "Current acceleration")
 VAR(jerk,            j,  f32,   0,      0, 1, "Current jerk")
+VAR(peak_vel,       pv,  f32,   0,      1, 1, "Peak velocity, set to clear")
+VAR(peak_accel,     pa,  f32,   0,      1, 1, "Peak acceleration, set to clear")
 VAR(hw_id,          hid, str,   0,      0, 1, "Hardware ID")
 VAR(estop,           es, b8,    0,      1, 1, "Emergency stop")
 VAR(estop_reason,    er, pstr,  0,      0, 1, "Emergency stop reason")