diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-06-08 19:55:24 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-06-20 09:26:10 -0400 |
commit | 2511471b0dfa7dd60c65fffa9727ceb8a88b347b (patch) | |
tree | f6b7305776671b59469e5f48bd313f6d18e127c6 /klippy/chelper/itersolve.h | |
parent | ba3428822d61af7653f65f6a1b3b46813e104439 (diff) | |
download | kutter-2511471b0dfa7dd60c65fffa9727ceb8a88b347b.tar.gz kutter-2511471b0dfa7dd60c65fffa9727ceb8a88b347b.tar.xz kutter-2511471b0dfa7dd60c65fffa9727ceb8a88b347b.zip |
itersolve: Add kinematic iterative solver code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/chelper/itersolve.h')
-rw-r--r-- | klippy/chelper/itersolve.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/klippy/chelper/itersolve.h b/klippy/chelper/itersolve.h new file mode 100644 index 00000000..bd8fba0e --- /dev/null +++ b/klippy/chelper/itersolve.h @@ -0,0 +1,32 @@ +#ifndef ITERSOLVE_H +#define ITERSOLVE_H + +#include <stdint.h> // uint32_t + +struct coord { + double x, y, z; +}; + +struct move *move_alloc(void); +void move_fill(struct move *m, double print_time + , double accel_t, double cruise_t, double decel_t + , double start_pos_x, double start_pos_y, double start_pos_z + , double axes_d_x, double axes_d_y, double axes_d_z + , double start_v, double cruise_v, double accel); +struct coord move_get_coord(struct move *m, double move_time); + +struct stepper_kinematics; +typedef double (*sk_callback)(struct stepper_kinematics *sk, struct move *m + , double move_time); +struct stepper_kinematics { + double step_dist, commanded_pos; + struct stepcompress *sc; + sk_callback calc_position; +}; + +int32_t itersolve_gen_steps(struct stepper_kinematics *sk, struct move *m); +void itersolve_set_stepcompress(struct stepper_kinematics *sk + , struct stepcompress *sc, double step_dist); +void itersolve_set_commanded_pos(struct stepper_kinematics *sk, double pos); + +#endif // itersolve.h |