diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-10-27 21:05:57 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-11-06 15:51:51 -0500 |
commit | f3ef9c18899e06eb66301fe8c994bcc67955905b (patch) | |
tree | 9c889c881c6835362049778678532c288cdc5a89 /klippy/chelper/itersolve.h | |
parent | d3afe4f1d89a13af4ef7c3ceb024dfae0edf3369 (diff) | |
download | kutter-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.h | 13 |
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 |