Align AXIS control flow and fix pause and program rendering
Document source UI gates, explicit native live-plot clearing, and remaining parity boundaries. Fix pause/resume transport continuity, repeated stepping, coordinate previews, and spindle override state. Optimize large program snapshots and rendering, and cover the control flows with native Tcl, WASM, and browser checks. Validation: 22 native tests and source/browser checks pass. Worker/App regression: 113 of 123 pass; 10 pre-existing failures remain documented with no new failures.
This commit is contained in:
@@ -64,6 +64,15 @@ typedef struct sim_interpreter {
|
||||
char canonical[SIM_INTERPRETER_CANONICAL_CAPACITY];
|
||||
} sim_interpreter;
|
||||
|
||||
typedef struct sim_coordinate_context {
|
||||
double offsets[9][9];
|
||||
int system;
|
||||
} sim_coordinate_context;
|
||||
|
||||
int sim_interpreter_get_coordinates(const sim_interpreter *interpreter, sim_coordinate_context *context);
|
||||
int sim_interpreter_set_coordinates(sim_interpreter *interpreter, const sim_coordinate_context *context);
|
||||
int sim_interpreter_sync_position(sim_interpreter *interpreter, const sim_posemath_pose *position);
|
||||
|
||||
int sim_interpreter_init(sim_interpreter *interpreter);
|
||||
int sim_interpreter_reset(sim_interpreter *interpreter);
|
||||
int sim_interpreter_execute(sim_interpreter *interpreter, const char *block, uint32_t length);
|
||||
|
||||
@@ -71,6 +71,8 @@ typedef struct sim_io_spindle_state {
|
||||
double orient_angle;
|
||||
double revs;
|
||||
uint32_t tick;
|
||||
double requested_rpm;
|
||||
int32_t direction;
|
||||
} sim_io_spindle_state;
|
||||
|
||||
typedef struct sim_io_probe_state {
|
||||
|
||||
@@ -36,6 +36,9 @@ double sim_linuxcnc_tp_jog_velocity(const sim_linuxcnc_tp *planner, int axis);
|
||||
double sim_linuxcnc_tp_feed_override(const sim_linuxcnc_tp *planner);
|
||||
int32_t sim_linuxcnc_tp_set_dynamics(sim_linuxcnc_tp *planner, double acceleration_limit);
|
||||
int32_t sim_linuxcnc_tp_set_paused(sim_linuxcnc_tp *planner, int paused);
|
||||
int32_t sim_linuxcnc_tp_step_line(sim_linuxcnc_tp *planner);
|
||||
int32_t sim_linuxcnc_tp_is_stepping(const sim_linuxcnc_tp *planner);
|
||||
double sim_linuxcnc_tp_axis_limit(const sim_linuxcnc_tp *planner, int axis, int maximum);
|
||||
int32_t sim_linuxcnc_tp_abort(sim_linuxcnc_tp *planner);
|
||||
int32_t sim_linuxcnc_tp_set_position(sim_linuxcnc_tp *planner, const sim_posemath_pose *position);
|
||||
int32_t sim_linuxcnc_tp_set_goal_position(sim_linuxcnc_tp *planner, const sim_posemath_pose *position);
|
||||
|
||||
@@ -79,6 +79,7 @@ typedef struct sim_program {
|
||||
int motion_control_mode;
|
||||
double path_tolerance;
|
||||
double naive_cam_tolerance;
|
||||
uint32_t pause_from;
|
||||
} sim_program;
|
||||
|
||||
uint32_t sim_program_size(void);
|
||||
|
||||
Reference in New Issue
Block a user