aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/chelper
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-06-14 16:33:57 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-06-20 09:26:10 -0400
commit926829e737bc18ffeab7c40618341104ba8ea9bc (patch)
treea996d2c7bd2a9d9e8c065c9d9df8692085f99aeb /klippy/chelper
parent8f747e27209f6c70737862db95bb3abff5c8906b (diff)
downloadkutter-926829e737bc18ffeab7c40618341104ba8ea9bc.tar.gz
kutter-926829e737bc18ffeab7c40618341104ba8ea9bc.tar.xz
kutter-926829e737bc18ffeab7c40618341104ba8ea9bc.zip
itersolve: Move tracking of commanded position to itersolve code
Track the commanded position in just the itersolve.c code instead of in mcu.py. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/chelper')
-rw-r--r--klippy/chelper/__init__.py3
-rw-r--r--klippy/chelper/itersolve.c11
2 files changed, 10 insertions, 4 deletions
diff --git a/klippy/chelper/__init__.py b/klippy/chelper/__init__.py
index fd8b60a6..027cf277 100644
--- a/klippy/chelper/__init__.py
+++ b/klippy/chelper/__init__.py
@@ -49,9 +49,10 @@ defs_itersolve = """
, double axes_d_x, double axes_d_y, double axes_d_z
, double start_v, double cruise_v, double accel);
int32_t itersolve_gen_steps(struct stepper_kinematics *sk, struct move *m);
- void itersolve_set_commanded_pos(struct stepper_kinematics *sk, double pos);
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);
+ double itersolve_get_commanded_pos(struct stepper_kinematics *sk);
"""
defs_kin_cartesian = """
diff --git a/klippy/chelper/itersolve.c b/klippy/chelper/itersolve.c
index 72e6ad89..c9ce9b8f 100644
--- a/klippy/chelper/itersolve.c
+++ b/klippy/chelper/itersolve.c
@@ -149,7 +149,7 @@ itersolve_gen_steps(struct stepper_kinematics *sk, struct move *m)
double mcu_freq = stepcompress_get_mcu_freq(sc);
struct timepos last = { 0., sk->commanded_pos }, low = last, high = last;
double seek_time_delta = 0.000100;
- int steps = 0, sdir = stepcompress_get_step_dir(sc);
+ int sdir = stepcompress_get_step_dir(sc);
struct queue_append qa = queue_append_start(sc, m->print_time, .5);
for (;;) {
// Determine if next step is in forward or reverse direction
@@ -192,7 +192,6 @@ itersolve_gen_steps(struct stepper_kinematics *sk, struct move *m)
int ret = queue_append(&qa, next.time * mcu_freq);
if (ret)
return ret;
- steps += sdir ? 1 : -1;
seek_time_delta = next.time - last.time;
if (seek_time_delta < .000000001)
seek_time_delta = .000000001;
@@ -205,7 +204,7 @@ itersolve_gen_steps(struct stepper_kinematics *sk, struct move *m)
}
queue_append_finish(qa);
sk->commanded_pos = last.position;
- return steps;
+ return 0;
}
void __visible
@@ -221,3 +220,9 @@ itersolve_set_commanded_pos(struct stepper_kinematics *sk, double pos)
{
sk->commanded_pos = pos;
}
+
+double __visible
+itersolve_get_commanded_pos(struct stepper_kinematics *sk)
+{
+ return sk->commanded_pos;
+}