itersolve: Add kinematic iterative solver code

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor
2018-06-08 19:55:24 -04:00
parent ba3428822d
commit 2511471b0d
5 changed files with 315 additions and 4 deletions

View File

@@ -15,11 +15,13 @@ COMPILE_CMD = ("gcc -Wall -g -O2 -shared -fPIC"
" -flto -fwhole-program -fno-use-linker-plugin"
" -o %s %s")
SOURCE_FILES = [
'stepcompress.c', 'kin_cartesian.c', 'kin_delta.c',
'stepcompress.c', 'kin_cartesian.c', 'kin_delta.c', 'itersolve.c',
'serialqueue.c', 'pyhelper.c'
]
DEST_LIB = "c_helper.so"
OTHER_FILES = ['list.h', 'serialqueue.h', 'stepcompress.h', 'pyhelper.h']
OTHER_FILES = [
'list.h', 'serialqueue.h', 'stepcompress.h', 'itersolve.h', 'pyhelper.h'
]
defs_stepcompress = """
struct stepcompress *stepcompress_alloc(uint32_t oid);
@@ -39,6 +41,19 @@ defs_stepcompress = """
int steppersync_flush(struct steppersync *ss, uint64_t move_clock);
"""
defs_itersolve = """
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);
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);
"""
defs_kin_cartesian = """
int32_t stepcompress_push(struct stepcompress *sc, double step_clock
, int32_t sdir);
@@ -84,9 +99,13 @@ defs_pyhelper = """
double get_monotonic(void);
"""
defs_std = """
void free(void*);
"""
defs_all = [
defs_stepcompress, defs_kin_cartesian, defs_kin_delta,
defs_serialqueue, defs_pyhelper
defs_stepcompress, defs_itersolve, defs_kin_cartesian, defs_kin_delta,
defs_serialqueue, defs_pyhelper, defs_std
]
# Return the list of file modification times