Make machine configuration authoritative and restore native checkpoints exactly
This commit is contained in:
@@ -25,6 +25,10 @@ uint32_t sim_read_snapshot(uint8_t *out, uint32_t capacity);
|
||||
uint32_t sim_read_event(uint8_t *out, uint32_t capacity);
|
||||
int32_t sim_export_state(uint8_t *out, uint32_t capacity);
|
||||
int32_t sim_import_state(const uint8_t *data, uint32_t len);
|
||||
uint32_t sim_core_checkpoint_size(void);
|
||||
const char *sim_checkpoint_build_id(void);
|
||||
int32_t sim_core_checkpoint_export(uint8_t *output, uint32_t capacity);
|
||||
int32_t sim_core_checkpoint_restore(const uint8_t *input, uint32_t length);
|
||||
void sim_destroy(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -27,6 +27,9 @@ typedef struct sim_event_record {
|
||||
} sim_event_record;
|
||||
|
||||
void sim_event_reset(void);
|
||||
uint32_t sim_event_checkpoint_size(void);
|
||||
int32_t sim_event_checkpoint_export(uint8_t *output, uint32_t capacity);
|
||||
int32_t sim_event_checkpoint_restore(const uint8_t *input, uint32_t length);
|
||||
int32_t sim_event_append(uint32_t seq, uint32_t tick, const char *kind,
|
||||
const uint8_t *payload, uint32_t payload_len);
|
||||
uint32_t sim_event_count(void);
|
||||
|
||||
@@ -14,6 +14,10 @@ extern "C" {
|
||||
#define SIM_HAL_COMPONENT_CAPACITY 64U
|
||||
#define SIM_HAL_PARAM_CAPACITY 256U
|
||||
|
||||
uint32_t sim_hal_checkpoint_size(void);
|
||||
int32_t sim_hal_checkpoint_export(uint8_t *output, uint32_t capacity);
|
||||
int32_t sim_hal_checkpoint_restore(const uint8_t *input, uint32_t length);
|
||||
|
||||
enum sim_hal_result {
|
||||
SIM_HAL_OK = 0,
|
||||
SIM_HAL_ERR_ARGUMENT = -300,
|
||||
|
||||
@@ -74,6 +74,9 @@ int sim_interpreter_set_coordinates(sim_interpreter *interpreter, const sim_coor
|
||||
int sim_interpreter_sync_position(sim_interpreter *interpreter, const sim_posemath_pose *position);
|
||||
|
||||
int sim_interpreter_init(sim_interpreter *interpreter);
|
||||
uint32_t sim_interpreter_checkpoint_size(void);
|
||||
int32_t sim_interpreter_checkpoint_export(const sim_interpreter *interpreter, uint8_t *output, uint32_t capacity);
|
||||
int32_t sim_interpreter_checkpoint_restore(sim_interpreter *interpreter, const uint8_t *input, uint32_t length);
|
||||
int sim_interpreter_reset(sim_interpreter *interpreter);
|
||||
int sim_interpreter_execute(sim_interpreter *interpreter, const char *block, uint32_t length);
|
||||
uint32_t sim_interpreter_size(void);
|
||||
|
||||
@@ -18,6 +18,9 @@ typedef struct sim_linuxcnc_tp_segment {
|
||||
} sim_linuxcnc_tp_segment;
|
||||
|
||||
uint32_t sim_linuxcnc_tp_size(void);
|
||||
uint32_t sim_linuxcnc_tp_checkpoint_size(void);
|
||||
int32_t sim_linuxcnc_tp_checkpoint_export(const sim_linuxcnc_tp *planner, uint8_t *output, uint32_t capacity);
|
||||
int32_t sim_linuxcnc_tp_checkpoint_restore(sim_linuxcnc_tp *planner, const uint8_t *input, uint32_t length);
|
||||
uint32_t sim_linuxcnc_tp_queue_capacity(const sim_linuxcnc_tp *planner);
|
||||
int32_t sim_linuxcnc_tp_init(sim_linuxcnc_tp *planner, double cycle_time,
|
||||
double velocity_limit, double acceleration_limit);
|
||||
@@ -27,6 +30,10 @@ int32_t sim_linuxcnc_tp_set_feed_override(sim_linuxcnc_tp *planner, double scale
|
||||
int32_t sim_linuxcnc_tp_set_velocity_scale(sim_linuxcnc_tp *planner, double scale);
|
||||
int32_t sim_linuxcnc_tp_set_jog_scale(sim_linuxcnc_tp *planner, double scale);
|
||||
int32_t sim_linuxcnc_tp_set_axis_limit(sim_linuxcnc_tp *planner, int axis, double minimum, double maximum);
|
||||
int32_t sim_linuxcnc_tp_set_axis_dynamics(sim_linuxcnc_tp *planner, int axis, double velocity, double acceleration);
|
||||
int32_t sim_linuxcnc_tp_set_feed_limit(sim_linuxcnc_tp *planner, double maximum);
|
||||
int32_t sim_linuxcnc_tp_set_scale_minimum(sim_linuxcnc_tp *planner, double minimum);
|
||||
int32_t sim_linuxcnc_tp_set_blend(sim_linuxcnc_tp *planner, int enable, int fallback, int depth, int gap, double ramp, double kink);
|
||||
int32_t sim_linuxcnc_tp_jog(sim_linuxcnc_tp *planner, int axis, int direction, double increment, uint32_t tag);
|
||||
double sim_linuxcnc_tp_velocity_scale(const sim_linuxcnc_tp *planner);
|
||||
double sim_linuxcnc_tp_velocity_limit(const sim_linuxcnc_tp *planner);
|
||||
|
||||
@@ -83,6 +83,9 @@ typedef struct sim_program {
|
||||
} sim_program;
|
||||
|
||||
uint32_t sim_program_size(void);
|
||||
uint32_t sim_program_checkpoint_size(void);
|
||||
int32_t sim_program_checkpoint_export(const sim_program *program, uint8_t *output, uint32_t capacity);
|
||||
int32_t sim_program_checkpoint_restore(sim_program *program, const uint8_t *input, uint32_t length);
|
||||
int32_t sim_program_requires_subroutines(const char *source, uint32_t length);
|
||||
int32_t sim_program_init(sim_program *program);
|
||||
int32_t sim_program_reset(sim_program *program);
|
||||
|
||||
@@ -37,6 +37,9 @@ int32_t sim_protocol_resume(void);
|
||||
int32_t sim_protocol_state_value(void);
|
||||
uint32_t sim_protocol_last_seq(void);
|
||||
uint32_t sim_protocol_tick(void);
|
||||
uint32_t sim_protocol_checkpoint_size(void);
|
||||
int32_t sim_protocol_checkpoint_export(uint8_t *output, uint32_t capacity);
|
||||
int32_t sim_protocol_checkpoint_restore(const uint8_t *input, uint32_t length);
|
||||
int32_t sim_protocol_set_tick(uint32_t simulation_tick);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
Reference in New Issue
Block a user