aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/chelper/itersolve.h
diff options
context:
space:
mode:
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