mirror of
git://soft.sys114.com/klipper
synced 2026-02-12 05:50:26 +09:00
stepcompress: Allow stepcompress_alloc() to be called early
Don't require an mcu connection to allocate the stepcompress object. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
@@ -22,9 +22,10 @@ DEST_LIB = "c_helper.so"
|
||||
OTHER_FILES = ['list.h', 'serialqueue.h', 'stepcompress.h', 'pyhelper.h']
|
||||
|
||||
defs_stepcompress = """
|
||||
struct stepcompress *stepcompress_alloc(uint32_t max_error
|
||||
, uint32_t queue_step_msgid, uint32_t set_next_step_dir_msgid
|
||||
, uint32_t invert_sdir, uint32_t oid);
|
||||
struct stepcompress *stepcompress_alloc(uint32_t oid);
|
||||
void stepcompress_fill(struct stepcompress *sc, uint32_t max_error
|
||||
, uint32_t invert_sdir, uint32_t queue_step_msgid
|
||||
, uint32_t set_next_step_dir_msgid);
|
||||
void stepcompress_free(struct stepcompress *sc);
|
||||
int stepcompress_reset(struct stepcompress *sc, uint64_t last_step_clock);
|
||||
int stepcompress_set_homing(struct stepcompress *sc, uint64_t homing_clock);
|
||||
|
||||
@@ -228,22 +228,28 @@ check_line(struct stepcompress *sc, struct step_move move)
|
||||
|
||||
// Allocate a new 'stepcompress' object
|
||||
struct stepcompress * __visible
|
||||
stepcompress_alloc(uint32_t max_error, uint32_t queue_step_msgid
|
||||
, uint32_t set_next_step_dir_msgid, uint32_t invert_sdir
|
||||
, uint32_t oid)
|
||||
stepcompress_alloc(uint32_t oid)
|
||||
{
|
||||
struct stepcompress *sc = malloc(sizeof(*sc));
|
||||
memset(sc, 0, sizeof(*sc));
|
||||
sc->max_error = max_error;
|
||||
list_init(&sc->msg_queue);
|
||||
sc->queue_step_msgid = queue_step_msgid;
|
||||
sc->set_next_step_dir_msgid = set_next_step_dir_msgid;
|
||||
sc->oid = oid;
|
||||
sc->sdir = -1;
|
||||
sc->invert_sdir = !!invert_sdir;
|
||||
return sc;
|
||||
}
|
||||
|
||||
// Fill message id information
|
||||
void __visible
|
||||
stepcompress_fill(struct stepcompress *sc, uint32_t max_error
|
||||
, uint32_t invert_sdir, uint32_t queue_step_msgid
|
||||
, uint32_t set_next_step_dir_msgid)
|
||||
{
|
||||
sc->max_error = max_error;
|
||||
sc->invert_sdir = !!invert_sdir;
|
||||
sc->queue_step_msgid = queue_step_msgid;
|
||||
sc->set_next_step_dir_msgid = set_next_step_dir_msgid;
|
||||
}
|
||||
|
||||
// Free memory associated with a 'stepcompress' object
|
||||
void __visible
|
||||
stepcompress_free(struct stepcompress *sc)
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
|
||||
#define ERROR_RET -989898989
|
||||
|
||||
struct stepcompress *stepcompress_alloc(
|
||||
uint32_t max_error, uint32_t queue_step_msgid
|
||||
, uint32_t set_next_step_dir_msgid, uint32_t invert_sdir, uint32_t oid);
|
||||
struct stepcompress *stepcompress_alloc(uint32_t oid);
|
||||
void stepcompress_fill(struct stepcompress *sc, uint32_t max_error
|
||||
, uint32_t invert_sdir, uint32_t queue_step_msgid
|
||||
, uint32_t set_next_step_dir_msgid);
|
||||
void stepcompress_free(struct stepcompress *sc);
|
||||
int set_next_step_dir(struct stepcompress *sc, int sdir);
|
||||
int stepcompress_reset(struct stepcompress *sc, uint64_t last_step_clock);
|
||||
|
||||
Reference in New Issue
Block a user