31#define EXEC_STATUS_REPORT bit(0)
32#define EXEC_CYCLE_START bit(1)
33#define EXEC_CYCLE_STOP bit(2)
34#define EXEC_FEED_HOLD bit(3)
35#define EXEC_RESET bit(4)
36#define EXEC_SAFETY_DOOR bit(5)
37#define EXEC_MOTION_CANCEL bit(6)
38#define EXEC_SLEEP bit(7)
41#define EXEC_ALARM_HARD_LIMIT 1
42#define EXEC_ALARM_SOFT_LIMIT 2
43#define EXEC_ALARM_ABORT_CYCLE 3
44#define EXEC_ALARM_PROBE_FAIL_INITIAL 4
45#define EXEC_ALARM_PROBE_FAIL_CONTACT 5
46#define EXEC_ALARM_HOMING_FAIL_RESET 6
47#define EXEC_ALARM_HOMING_FAIL_DOOR 7
48#define EXEC_ALARM_HOMING_FAIL_PULLOFF 8
49#define EXEC_ALARM_HOMING_FAIL_APPROACH 9
50#define EXEC_ALARM_HOMING_FAIL_DUAL_APPROACH 10
54#define EXEC_FEED_OVR_RESET bit(0)
55#define EXEC_FEED_OVR_COARSE_PLUS bit(1)
56#define EXEC_FEED_OVR_COARSE_MINUS bit(2)
57#define EXEC_FEED_OVR_FINE_PLUS bit(3)
58#define EXEC_FEED_OVR_FINE_MINUS bit(4)
59#define EXEC_RAPID_OVR_RESET bit(5)
60#define EXEC_RAPID_OVR_MEDIUM bit(6)
61#define EXEC_RAPID_OVR_LOW bit(7)
64#define EXEC_SPINDLE_OVR_RESET bit(0)
65#define EXEC_SPINDLE_OVR_COARSE_PLUS bit(1)
66#define EXEC_SPINDLE_OVR_COARSE_MINUS bit(2)
67#define EXEC_SPINDLE_OVR_FINE_PLUS bit(3)
68#define EXEC_SPINDLE_OVR_FINE_MINUS bit(4)
69#define EXEC_SPINDLE_OVR_STOP bit(5)
70#define EXEC_COOLANT_FLOOD_OVR_TOGGLE bit(6)
71#define EXEC_COOLANT_MIST_OVR_TOGGLE bit(7)
77#define STATE_ALARM bit(0)
78#define STATE_CHECK_MODE bit(1)
79#define STATE_HOMING bit(2)
80#define STATE_CYCLE bit(3)
81#define STATE_HOLD bit(4)
82#define STATE_JOG bit(5)
83#define STATE_SAFETY_DOOR bit(6)
84#define STATE_SLEEP bit(7)
87#define SUSPEND_DISABLE 0
88#define SUSPEND_HOLD_COMPLETE bit(0)
89#define SUSPEND_RESTART_RETRACT bit(1)
90#define SUSPEND_RETRACT_COMPLETE bit(2)
91#define SUSPEND_INITIATE_RESTORE bit(3)
92#define SUSPEND_RESTORE_COMPLETE bit(4)
93#define SUSPEND_SAFETY_DOOR_AJAR bit(5)
94#define SUSPEND_MOTION_CANCEL bit(6)
95#define SUSPEND_JOG_CANCEL bit(7)
98#define STEP_CONTROL_NORMAL_OP 0
99#define STEP_CONTROL_END_MOTION bit(0)
100#define STEP_CONTROL_EXECUTE_HOLD bit(1)
101#define STEP_CONTROL_EXECUTE_SYS_MOTION bit(2)
102#define STEP_CONTROL_UPDATE_SPINDLE_PWM bit(3)
105#ifdef ENABLE_SAFETY_DOOR_INPUT_PIN
106 #define N_CONTROL_PIN 4
107 #define CONTROL_PIN_INDEX_SAFETY_DOOR bit(0)
108 #define CONTROL_PIN_INDEX_RESET bit(1)
109 #define CONTROL_PIN_INDEX_FEED_HOLD bit(2)
110 #define CONTROL_PIN_INDEX_CYCLE_START bit(3)
112 #define N_CONTROL_PIN 3
113 #define CONTROL_PIN_INDEX_RESET bit(0)
114 #define CONTROL_PIN_INDEX_FEED_HOLD bit(1)
115 #define CONTROL_PIN_INDEX_CYCLE_START bit(2)
119#define SPINDLE_STOP_OVR_DISABLED 0
120#define SPINDLE_STOP_OVR_ENABLED bit(0)
121#define SPINDLE_STOP_OVR_INITIATE bit(1)
122#define SPINDLE_STOP_OVR_RESTORE bit(2)
123#define SPINDLE_STOP_OVR_RESTORE_CYCLE bit(3)
135 #ifdef ENABLE_DUAL_AXIS
136 uint8_t homing_axis_lock_dual;
144 #ifdef ENABLE_PARKING_OVERRIDE_CONTROL
145 uint8_t override_ctrl;
147 #ifdef VARIABLE_SPINDLE
164 #define EXEC_DEBUG_REPORT bit(0)
165 extern volatile uint8_t sys_rt_exec_debug;
194 int32_t system_convert_corexy_to_x_axis_steps(int32_t *steps);
195 int32_t system_convert_corexy_to_y_axis_steps(int32_t *steps);
static char line[LINE_BUFFER_SIZE]
uint8_t report_ovr_counter
uint8_t spindle_speed_ovr
uint8_t report_wco_counter
int32_t sys_position[N_AXIS]
int32_t sys_probe_position[N_AXIS]
volatile uint8_t sys_probe_state
void system_clear_exec_accessory_overrides()
void system_clear_exec_alarm()
void system_set_exec_state_flag(uint8_t mask)
volatile uint8_t sys_rt_exec_alarm
void system_clear_exec_state_flag(uint8_t mask)
void system_set_exec_accessory_override_flag(uint8_t mask)
float system_convert_axis_steps_to_mpos(int32_t *steps, uint8_t idx)
void system_set_exec_alarm(uint8_t code)
uint8_t system_control_get_state()
uint8_t system_check_safety_door_ajar()
void system_execute_startup(char *line)
uint8_t system_execute_line(char *line)
void system_convert_array_steps_to_mpos(float *position, int32_t *steps)
uint8_t system_check_travel_limits(float *target)
void system_flag_wco_change()
void system_set_exec_motion_override_flag(uint8_t mask)
void system_clear_exec_motion_overrides()
volatile uint8_t sys_rt_exec_accessory_override
volatile uint8_t sys_rt_exec_motion_override
volatile uint8_t sys_rt_exec_state