aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/chelper/itersolve.h
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-10-27 21:05:57 -0400
committerKevin O'Connor <kevin@koconnor.net>2019-11-06 15:51:51 -0500
commitf3ef9c18899e06eb66301fe8c994bcc67955905b (patch)
tree9c889c881c6835362049778678532c288cdc5a89 /klippy/chelper/itersolve.h
parentd3afe4f1d89a13af4ef7c3ceb024dfae0edf3369 (diff)
downloadkutter-f3ef9c18899e06eb66301fe8c994bcc67955905b.tar.gz
kutter-f3ef9c18899e06eb66301fe8c994bcc67955905b.tar.xz
kutter-f3ef9c18899e06eb66301fe8c994bcc67955905b.zip
itersolve: Add support for generating steps from a trapq
Support associating a stepper_kinematics with a trapq. Support generating steps from a time range on the given trapq. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/chelper/itersolve.h')
-rw-r--r--klippy/chelper/itersolve.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/klippy/chelper/itersolve.h b/klippy/chelper/itersolve.h
index da3a9fa7..e7548849 100644
--- a/klippy/chelper/itersolve.h
+++ b/klippy/chelper/itersolve.h
@@ -3,6 +3,10 @@
#include <stdint.h> // int32_t
+enum {
+ AF_X = 1 << 0, AF_Y = 1 << 1, AF_Z = 1 <<2,
+};
+
struct stepper_kinematics;
struct move;
typedef double (*sk_calc_callback)(struct stepper_kinematics *sk, struct move *m
@@ -11,11 +15,20 @@ typedef void (*sk_post_callback)(struct stepper_kinematics *sk);
struct stepper_kinematics {
double step_dist, commanded_pos;
struct stepcompress *sc;
+
+ double last_flush_time;
+ struct trapq *tq;
+ int active_flags;
+
sk_calc_callback calc_position_cb;
sk_post_callback post_cb;
};
int32_t itersolve_gen_steps(struct stepper_kinematics *sk, struct move *m);
+int32_t itersolve_generate_steps(struct stepper_kinematics *sk
+ , double flush_time);
+double itersolve_check_active(struct stepper_kinematics *sk, double flush_time);
+void itersolve_set_trapq(struct stepper_kinematics *sk, struct trapq *tq);
void itersolve_set_stepcompress(struct stepper_kinematics *sk
, struct stepcompress *sc, double step_dist);
double itersolve_calc_position_from_coord(struct stepper_kinematics *sk