32 #define MODAL_GROUP_G0 0
33 #define MODAL_GROUP_G1 1
34 #define MODAL_GROUP_G2 2
35 #define MODAL_GROUP_G3 3
36 #define MODAL_GROUP_G4 4
37 #define MODAL_GROUP_G5 5
38 #define MODAL_GROUP_G6 6
39 #define MODAL_GROUP_G7 7
40 #define MODAL_GROUP_G8 8
41 #define MODAL_GROUP_G12 9
42 #define MODAL_GROUP_G13 10
44 #define MODAL_GROUP_M4 11
45 #define MODAL_GROUP_M7 12
46 #define MODAL_GROUP_M8 13
47 // #define OTHER_INPUT_S 15
58 #define NON_MODAL_NO_ACTION 0
59 #define NON_MODAL_DWELL 4
60 #define NON_MODAL_SET_COORDINATE_DATA 10
61 #define NON_MODAL_GO_HOME_0 28
62 #define NON_MODAL_SET_HOME_0 38
63 #define NON_MODAL_GO_HOME_1 30
64 #define NON_MODAL_SET_HOME_1 40
65 #define NON_MODAL_ABSOLUTE_OVERRIDE 53
66 #define NON_MODAL_SET_COORDINATE_OFFSET 92
67 #define NON_MODAL_RESET_COORDINATE_OFFSET 102 //G92.1 (Do not alter value)
68 #define MOTION_MODE_SEEK 0
70 #define MOTION_MODE_LINEAR 1
71 #define MOTION_MODE_CW_ARC 2
72 #define MOTION_MODE_CCW_ARC 3
73 #define MOTION_MODE_PROBE_TOWARD 140
74 #define MOTION_MODE_PROBE_TOWARD_NO_ERROR 141
75 #define MOTION_MODE_PROBE_AWAY 142
76 #define MOTION_MODE_PROBE_AWAY_NO_ERROR 143
77 #define MOTION_MODE_NONE 80
78 #define PLANE_SELECT_XY 0
80 #define PLANE_SELECT_ZX 1
81 #define PLANE_SELECT_YZ 2
82 #define DISTANCE_MODE_ABSOLUTE 0
84 #define DISTANCE_MODE_INCREMENTAL 1
85 #define DISTANCE_ARC_MODE_INCREMENTAL 0
87 #define PROGRAM_FLOW_RUNNING 0
89 #define PROGRAM_FLOW_PAUSED 3
90 #define PROGRAM_FLOW_OPTIONAL_STOP 1
91 #define PROGRAM_FLOW_COMPLETED_M2 2
93 #define PROGRAM_FLOW_COMPLETED_M30 30
94 #define FEED_RATE_MODE_UNITS_PER_MIN 0
96 #define FEED_RATE_MODE_INVERSE_TIME 1
97 #define UNITS_MODE_MM 0
99 #define UNITS_MODE_INCHES 1
100 #define CUTTER_COMP_DISABLE 0
102 #define CONTROL_MODE_EXACT_PATH 0
104 #define SPINDLE_DISABLE 0
106 #define SPINDLE_ENABLE_CW PL_COND_FLAG_SPINDLE_CW
107 #define SPINDLE_ENABLE_CCW PL_COND_FLAG_SPINDLE_CCW
109 #define COOLANT_DISABLE 0
112 #define COOLANT_FLOOD_ENABLE PL_COND_FLAG_COOLANT_FLOOD
113 #define COOLANT_MIST_ENABLE PL_COND_FLAG_COOLANT_MIST
115 #define TOOL_LENGTH_OFFSET_CANCEL 0
118 #define TOOL_LENGTH_OFFSET_ENABLE_DYNAMIC 1
119 // N/A: Stores coordinate system value (54-59) to change to.
135 #define GC_UPDATE_POS_TARGET 0
137 #define GC_UPDATE_POS_SYSTEM 1
138 #define GC_UPDATE_POS_NONE 2
139 #define GC_PROBE_FOUND GC_UPDATE_POS_SYSTEM
141 #define GC_PROBE_ABORT GC_UPDATE_POS_NONE
142 #define GC_PROBE_FAIL_INIT GC_UPDATE_POS_NONE
143 #define GC_PROBE_FAIL_END GC_UPDATE_POS_TARGET
144 #ifdef SET_CHECK_MODE_PROBE_TO_START
145 #define GC_PROBE_CHECK_MODE GC_UPDATE_POS_NONE
147 #define GC_PROBE_CHECK_MODE GC_UPDATE_POS_TARGET
149 #define GC_PARSER_NONE 0
151 #define GC_PARSER_JOG_MOTION bit(0)
152 #define GC_PARSER_CHECK_MANTISSA bit(1)
153 #define GC_PARSER_ARC_IS_CLOCKWISE bit(2)
154 #define GC_PARSER_PROBE_IS_AWAY bit(3)
155 #define GC_PARSER_PROBE_IS_NO_ERROR bit(4)
156 #define GC_PARSER_LASER_FORCE_SYNC bit(5)
157 #define GC_PARSER_LASER_DISABLE bit(6)
158 #define GC_PARSER_LASER_ISMOTION bit(7)
#define N_AXIS
Axis array index values. Must start with 0 and be continuous.
uint8_t plane_select
NOTE: Don't track. Only default supported.
uint8_t non_modal_command
void gc_sync_position()
Set g-code parser position. Input in steps.
float tool_length_offset
Tracks tool length offset value when enabled.
void gc_init()
Initialize the parser.
float feed_rate
Millimeters/min.
uint8_t distance
{G90,G91}
parser_state_t gc_state
Declare gc extern struct.
NOTE: When this struct is zeroed, the above defines set the defaults for the system.
uint8_t l
G10 or canned cycles parameters.
uint8_t feed_rate
{G93,G94}
uint8_t coord_select
{G54,G55,G56,G57,G58,G59}
int32_t line_number
Last line number sent.
uint8_t coolant
{M7,M8,M9}
uint8_t gc_execute_line(char *line)
Execute one block of rs275/ngc/g-code.
uint8_t tool_length
NOTE: Don't track. Only default supported.
uint8_t spindle
{M3,M4,M5}
uint8_t program_flow
NOTE: Don't track. Only default supported.
uint8_t tool
Tracks tool number. NOT USED.
uint8_t motion
{G0,G1,G2,G3,G38.2,G80}
float p
G10 or dwell parameters.