Align Web XYZAC command gates with LinuxCNC

This commit is contained in:
2026-08-28 21:33:11 +08:00
parent 78d884bc67
commit cbd0bc1003
30 changed files with 337 additions and 150 deletions

View File

@@ -53,6 +53,47 @@ enum sim_task_program_value {
SIM_TASK_PROGRAM_FAULT = 6,
};
/* LinuxCNC emctaskmain command classes used by the Web XYZAC surface. */
enum sim_task_gate_command {
SIM_TASK_GATE_ESTOP = 1,
SIM_TASK_GATE_RESET = 2,
SIM_TASK_GATE_POWER = 3,
SIM_TASK_GATE_HOME = 4,
SIM_TASK_GATE_JOG = 5,
SIM_TASK_GATE_MDI = 6,
SIM_TASK_GATE_RUN = 7,
SIM_TASK_GATE_PAUSE = 8,
SIM_TASK_GATE_RESUME = 9,
SIM_TASK_GATE_ABORT = 10,
SIM_TASK_GATE_RESTART = 11,
SIM_TASK_GATE_KINEMATICS = 12,
SIM_TASK_GATE_SET_MODE = 13,
SIM_TASK_GATE_PROGRAM_LOAD = 14,
SIM_TASK_GATE_STEP = 15,
};
enum sim_task_gate_result {
SIM_TASK_GATE_ALLOWED = 0,
SIM_TASK_GATE_ESTOP_ACTIVE = 1,
SIM_TASK_GATE_MACHINE_OFF = 2,
SIM_TASK_GATE_MACHINE_ON = 3,
SIM_TASK_GATE_INTERP_ACTIVE = 4,
SIM_TASK_GATE_TASKFILE_MISSING = 5,
SIM_TASK_GATE_ESTOPOFF_REQUIRED = 6,
SIM_TASK_GATE_PAUSE_STATE = 7,
SIM_TASK_GATE_RESUME_STATE = 8,
SIM_TASK_GATE_ABORT_STATE = 9,
SIM_TASK_GATE_RESTART_STATE = 10,
SIM_TASK_GATE_KINEMATICS_INVALID = 11,
SIM_TASK_GATE_MODE_STATE = 12,
SIM_TASK_GATE_MODE_AUTO_ACTIVE = 13,
SIM_TASK_GATE_JOG_STATE = 14,
SIM_TASK_GATE_MDI_STATE = 15,
SIM_TASK_GATE_RESET_STATE = 16,
SIM_TASK_GATE_UNKNOWN_COMMAND = 17,
SIM_TASK_GATE_UNHOMED = 18,
};
typedef struct sim_task_state {
char context_id[SIM_TASK_CONTEXT_CAPACITY];
char session_id[SIM_TASK_SESSION_CAPACITY];
@@ -81,6 +122,11 @@ int32_t sim_task_transition(sim_task *task, uint32_t state);
int32_t sim_task_fault(sim_task *task, int32_t error_code);
int32_t sim_task_estop(sim_task *task, int32_t error_code);
int32_t sim_task_recover(sim_task *task);
int32_t sim_task_command_gate(const sim_task *task, uint32_t command,
uint32_t requested, uint32_t io_ready,
uint32_t io_estop, uint32_t homed,
uint32_t queue_depth,
uint32_t queue_limit);
int32_t sim_task_restore(sim_task *task, uint32_t state, uint32_t mode,
uint32_t program_status, uint32_t seq,
uint32_t simulation_tick, uint32_t current_line,