aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/chelper/itersolve.h
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-06-08 19:55:24 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-06-20 09:26:10 -0400
commit2511471b0dfa7dd60c65fffa9727ceb8a88b347b (patch)
treef6b7305776671b59469e5f48bd313f6d18e127c6 /klippy/chelper/itersolve.h
parentba3428822d61af7653f65f6a1b3b46813e104439 (diff)
downloadkutter-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.h32
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