Enforce LinuxCNC WASM authority for XYZAC frontend

This commit is contained in:
2026-09-02 07:43:47 +08:00
parent c60e3a1e8f
commit 6b689fd69e
36 changed files with 514 additions and 210 deletions

View File

@@ -67,6 +67,7 @@ typedef struct sim_io_spindle_state {
double max_rpm;
double accel_rpm_s;
double tolerance_rpm;
double override_scale;
double orient_angle;
double revs;
uint32_t tick;
@@ -122,6 +123,7 @@ int sim_io_spindle_command(sim_io *io, uint32_t spindle, double rpm,
uint32_t enabled);
int sim_io_spindle_adjust(sim_io *io, uint32_t spindle, double delta);
int sim_io_spindle_brake(sim_io *io, uint32_t spindle, uint32_t engaged);
int sim_io_spindle_set_override(sim_io *io, uint32_t spindle, double scale);
int sim_io_spindle_set_inhibit(sim_io *io, uint32_t spindle, uint32_t inhibit);
int sim_io_spindle_set_fault(sim_io *io, uint32_t spindle, uint32_t fault);
int sim_io_spindle_set_index_enable(sim_io *io, uint32_t spindle, uint32_t enable);

View File

@@ -28,6 +28,7 @@ typedef struct sim_kinematics_home_limit_state {
int last_error;
int limit_error;
int kinematics_error;
uint32_t homed_mask;
} sim_kinematics_home_limit_state;
typedef struct sim_kinematics_home_limit {
@@ -41,6 +42,8 @@ int sim_kinematics_home_limit_init(sim_kinematics_home_limit *home_limit,
int sim_kinematics_home_limit_reset(sim_kinematics_home_limit *home_limit);
int sim_kinematics_home_limit_home(sim_kinematics_home_limit *home_limit,
uint32_t home_sequence);
int sim_kinematics_home_limit_home_joint(sim_kinematics_home_limit *home_limit,
uint32_t home_sequence, uint32_t joint);
int sim_kinematics_home_limit_check(sim_kinematics_home_limit *home_limit,
const double *joints,
uint32_t joint_count);

View File

@@ -23,6 +23,15 @@ int32_t sim_linuxcnc_tp_init(sim_linuxcnc_tp *planner, double cycle_time,
int32_t sim_linuxcnc_tp_reset(sim_linuxcnc_tp *planner);
int32_t sim_linuxcnc_tp_set_profile(sim_linuxcnc_tp *planner, int profile, double tolerance);
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_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);
double sim_linuxcnc_tp_jog_scale(const sim_linuxcnc_tp *planner);
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_abort(sim_linuxcnc_tp *planner);

View File

@@ -71,6 +71,12 @@ enum sim_task_gate_command {
SIM_TASK_GATE_PROGRAM_LOAD = 14,
SIM_TASK_GATE_STEP = 15,
SIM_TASK_GATE_OVERRIDE = 16,
SIM_TASK_GATE_SPINDLE = 17,
SIM_TASK_GATE_COOLANT = 18,
SIM_TASK_GATE_TOOL = 19,
SIM_TASK_GATE_PROBE = 20,
SIM_TASK_GATE_TOUCH_OFF = 21,
SIM_TASK_GATE_TOOL_TOUCH_OFF = 22,
};
enum sim_task_gate_result {