gnea\grbl-Mega  1.0f
Source Code Documentation ( Internal Workings )
gcode.h File Reference

Go to the source code of this file.

Data Structures

struct  gc_modal_t
 NOTE: When this struct is zeroed, the above defines set the defaults for the system. More...
 
struct  gc_values_t
 
struct  parser_state_t
 
struct  parser_block_t
 

Macros

#define MODAL_GROUP_G0   0
 Define modal group internal numbers for checking multiple command violations and tracking the. More...
 
#define MODAL_GROUP_G1   1
 [G0,G1,G2,G3,G38.2,G38.3,G38.4,G38.5,G80] Motion More...
 
#define MODAL_GROUP_G2   2
 [G17,G18,G19] Plane selection More...
 
#define MODAL_GROUP_G3   3
 [G90,G91] Distance mode More...
 
#define MODAL_GROUP_G4   4
 [G91.1] Arc IJK distance mode More...
 
#define MODAL_GROUP_G5   5
 [G93,G94] Feed rate mode More...
 
#define MODAL_GROUP_G6   6
 [G20,G21] Units More...
 
#define MODAL_GROUP_G7   7
 [G40] Cutter radius compensation mode. G41/42 NOT SUPPORTED. More...
 
#define MODAL_GROUP_G8   8
 [G43.1,G49] Tool length offset More...
 
#define MODAL_GROUP_G12   9
 [G54,G55,G56,G57,G58,G59] Coordinate system selection More...
 
#define MODAL_GROUP_G13   10
 [G61] Control mode More...
 
#define MODAL_GROUP_M4   11
 [M0,M1,M2,M30] Stopping More...
 
#define MODAL_GROUP_M7   12
 [M3,M4,M5] Spindle turning More...
 
#define MODAL_GROUP_M8   13
 [M7,M8,M9] Coolant control More...
 
#define NON_MODAL_NO_ACTION   0
 #define OTHER_INPUT_F 14 More...
 
#define NON_MODAL_DWELL   4
 G4 (Do not alter value) More...
 
#define NON_MODAL_SET_COORDINATE_DATA   10
 G10 (Do not alter value) More...
 
#define NON_MODAL_GO_HOME_0   28
 G28 (Do not alter value) More...
 
#define NON_MODAL_SET_HOME_0   38
 G28.1 (Do not alter value) More...
 
#define NON_MODAL_GO_HOME_1   30
 G30 (Do not alter value) More...
 
#define NON_MODAL_SET_HOME_1   40
 G30.1 (Do not alter value) More...
 
#define NON_MODAL_ABSOLUTE_OVERRIDE   53
 G53 (Do not alter value) More...
 
#define NON_MODAL_SET_COORDINATE_OFFSET   92
 G92 (Do not alter value) More...
 
#define NON_MODAL_RESET_COORDINATE_OFFSET   102
 
#define MOTION_MODE_SEEK   0
 Modal Group G1: Motion modes. More...
 
#define MOTION_MODE_LINEAR   1
 G1 (Do not alter value) More...
 
#define MOTION_MODE_CW_ARC   2
 G2 (Do not alter value) More...
 
#define MOTION_MODE_CCW_ARC   3
 G3 (Do not alter value) More...
 
#define MOTION_MODE_PROBE_TOWARD   140
 G38.2 (Do not alter value) More...
 
#define MOTION_MODE_PROBE_TOWARD_NO_ERROR   141
 G38.3 (Do not alter value) More...
 
#define MOTION_MODE_PROBE_AWAY   142
 G38.4 (Do not alter value) More...
 
#define MOTION_MODE_PROBE_AWAY_NO_ERROR   143
 G38.5 (Do not alter value) More...
 
#define MOTION_MODE_NONE   80
 G80 (Do not alter value) More...
 
#define PLANE_SELECT_XY   0
 Modal Group G2: Plane select. More...
 
#define PLANE_SELECT_ZX   1
 G18 (Do not alter value) More...
 
#define PLANE_SELECT_YZ   2
 G19 (Do not alter value) More...
 
#define DISTANCE_MODE_ABSOLUTE   0
 Modal Group G3: Distance mode. More...
 
#define DISTANCE_MODE_INCREMENTAL   1
 G91 (Do not alter value) More...
 
#define DISTANCE_ARC_MODE_INCREMENTAL   0
 Modal Group G4: Arc IJK distance mode. More...
 
#define PROGRAM_FLOW_RUNNING   0
 Modal Group M4: Program flow. More...
 
#define PROGRAM_FLOW_PAUSED   3
 M0. More...
 
#define PROGRAM_FLOW_OPTIONAL_STOP   1
 M1. More...
 
#define PROGRAM_FLOW_COMPLETED_M2   2
 NOTE: Not supported, but valid and ignored. More...
 
#define PROGRAM_FLOW_COMPLETED_M30   30
 M30 (Do not alter value) More...
 
#define FEED_RATE_MODE_UNITS_PER_MIN   0
 Modal Group G5: Feed rate mode. More...
 
#define FEED_RATE_MODE_INVERSE_TIME   1
 G93 (Do not alter value) More...
 
#define UNITS_MODE_MM   0
 Modal Group G6: Units mode. More...
 
#define UNITS_MODE_INCHES   1
 G20 (Do not alter value) More...
 
#define CUTTER_COMP_DISABLE   0
 Modal Group G7: Cutter radius compensation mode. More...
 
#define CONTROL_MODE_EXACT_PATH   0
 Modal Group G13: Control mode. More...
 
#define SPINDLE_DISABLE   0
 Modal Group M7: Spindle control. More...
 
#define SPINDLE_ENABLE_CW   PL_COND_FLAG_SPINDLE_CW
 M3 (. More...
 
#define SPINDLE_ENABLE_CCW   PL_COND_FLAG_SPINDLE_CCW
 NOTE: Uses planner condition bit flag) More...
 
#define COOLANT_DISABLE   0
 NOTE: Uses planner condition bit flag) More...
 
#define COOLANT_FLOOD_ENABLE   PL_COND_FLAG_COOLANT_FLOOD
 M8 (. More...
 
#define COOLANT_MIST_ENABLE   PL_COND_FLAG_COOLANT_MIST
 NOTE: Uses planner condition bit flag) More...
 
#define TOOL_LENGTH_OFFSET_CANCEL   0
 NOTE: Uses planner condition bit flag) More...
 
#define TOOL_LENGTH_OFFSET_ENABLE_DYNAMIC   1
 G43.1. More...
 
#define WORD_F   0
 Modal Group G12: Active work coordinate system. More...
 
#define WORD_I   1
 
#define WORD_J   2
 
#define WORD_K   3
 
#define WORD_L   4
 
#define WORD_N   5
 
#define WORD_P   6
 
#define WORD_R   7
 
#define WORD_S   8
 
#define WORD_T   9
 
#define WORD_X   10
 
#define WORD_Y   11
 
#define WORD_Z   12
 
#define GC_UPDATE_POS_TARGET   0
 Define g-code parser position updating flags. More...
 
#define GC_UPDATE_POS_SYSTEM   1
 
#define GC_UPDATE_POS_NONE   2
 
#define GC_PROBE_FOUND   GC_UPDATE_POS_SYSTEM
 Define probe cycle exit states and assign proper position updating. More...
 
#define GC_PROBE_ABORT   GC_UPDATE_POS_NONE
 
#define GC_PROBE_FAIL_INIT   GC_UPDATE_POS_NONE
 
#define GC_PROBE_FAIL_END   GC_UPDATE_POS_TARGET
 
#define GC_PROBE_CHECK_MODE   GC_UPDATE_POS_TARGET
 
#define GC_PARSER_NONE   0
 Define gcode parser flags for handling special cases. More...
 
#define GC_PARSER_JOG_MOTION   bit(0)
 
#define GC_PARSER_CHECK_MANTISSA   bit(1)
 
#define GC_PARSER_ARC_IS_CLOCKWISE   bit(2)
 
#define GC_PARSER_PROBE_IS_AWAY   bit(3)
 
#define GC_PARSER_PROBE_IS_NO_ERROR   bit(4)
 
#define GC_PARSER_LASER_FORCE_SYNC   bit(5)
 
#define GC_PARSER_LASER_DISABLE   bit(6)
 
#define GC_PARSER_LASER_ISMOTION   bit(7)
 

Functions

void gc_init ()
 Initialize the parser. More...
 
uint8_t gc_execute_line (char *line)
 Execute one block of rs275/ngc/g-code. More...
 
void gc_sync_position ()
 Set g-code parser position. Input in steps. More...
 

Variables

parser_state_t gc_state
 Declare gc extern struct. More...
 

Data Structure Documentation

struct gc_modal_t

NOTE: When this struct is zeroed, the above defines set the defaults for the system.

Definition at line 162 of file gcode.h.

Data Fields
uint8_t coolant {M7,M8,M9}
uint8_t coord_select {G54,G55,G56,G57,G58,G59}
uint8_t distance {G90,G91}
uint8_t feed_rate {G93,G94}
uint8_t motion {G0,G1,G2,G3,G38.2,G80}
uint8_t plane_select NOTE: Don't track. Only default supported.

{G17,G18,G19}

uint8_t program_flow NOTE: Don't track. Only default supported.

{M0,M1,M2,M30}

uint8_t spindle {M3,M4,M5}
uint8_t tool_length NOTE: Don't track. Only default supported.

{G43.1,G49}

uint8_t units {G20,G21}
struct gc_values_t

Definition at line 181 of file gcode.h.

Data Fields
float f Feed.
float ijk[3] I,J,K Axis arc offsets.
uint8_t l G10 or canned cycles parameters.
int32_t n Line number.
float p G10 or dwell parameters.
float r Arc radius.
float s Spindle speed.
uint8_t t Tool selection.
float xyz[3] X,Y,Z Translational axes.
struct parser_state_t

Definition at line 195 of file gcode.h.

Data Fields
float coord_offset[N_AXIS] Retains the G92 coordinate offset (work coordinates) relative to.
float coord_system[N_AXIS] Current work coordinate system (G54+). Stores offset from absolute machine.
float feed_rate Millimeters/min.
int32_t line_number Last line number sent.
gc_modal_t modal
float position[N_AXIS] Where the interpreter considers the tool to be at this point in the code.
float spindle_speed RPM.
uint8_t tool Tracks tool number. NOT USED.
float tool_length_offset Tracks tool length offset value when enabled.
struct parser_block_t

Definition at line 214 of file gcode.h.

Data Fields
gc_modal_t modal
uint8_t non_modal_command
gc_values_t values

Macro Definition Documentation

#define CONTROL_MODE_EXACT_PATH   0

Modal Group G13: Control mode.

G61 (Default: Must be zero)

Definition at line 103 of file gcode.h.

#define COOLANT_DISABLE   0

NOTE: Uses planner condition bit flag)

Modal Group M8: Coolant control M9 (Default: Must be zero)

Definition at line 111 of file gcode.h.

#define COOLANT_FLOOD_ENABLE   PL_COND_FLAG_COOLANT_FLOOD

M8 (.

Definition at line 112 of file gcode.h.

#define COOLANT_MIST_ENABLE   PL_COND_FLAG_COOLANT_MIST

NOTE: Uses planner condition bit flag)

M7 (

Definition at line 114 of file gcode.h.

#define CUTTER_COMP_DISABLE   0

Modal Group G7: Cutter radius compensation mode.

G40 (Default: Must be zero)

Definition at line 101 of file gcode.h.

#define DISTANCE_ARC_MODE_INCREMENTAL   0

Modal Group G4: Arc IJK distance mode.

G91.1 (Default: Must be zero)

Definition at line 86 of file gcode.h.

#define DISTANCE_MODE_ABSOLUTE   0

Modal Group G3: Distance mode.

G90 (Default: Must be zero)

Definition at line 83 of file gcode.h.

#define DISTANCE_MODE_INCREMENTAL   1

G91 (Do not alter value)

Definition at line 84 of file gcode.h.

#define FEED_RATE_MODE_INVERSE_TIME   1

G93 (Do not alter value)

Definition at line 96 of file gcode.h.

#define FEED_RATE_MODE_UNITS_PER_MIN   0

Modal Group G5: Feed rate mode.

G94 (Default: Must be zero)

Definition at line 95 of file gcode.h.

#define GC_PARSER_ARC_IS_CLOCKWISE   bit(2)

Definition at line 153 of file gcode.h.

#define GC_PARSER_CHECK_MANTISSA   bit(1)

Definition at line 152 of file gcode.h.

#define GC_PARSER_JOG_MOTION   bit(0)

Definition at line 151 of file gcode.h.

#define GC_PARSER_LASER_DISABLE   bit(6)

Definition at line 157 of file gcode.h.

#define GC_PARSER_LASER_FORCE_SYNC   bit(5)

Definition at line 156 of file gcode.h.

#define GC_PARSER_LASER_ISMOTION   bit(7)

Definition at line 158 of file gcode.h.

#define GC_PARSER_NONE   0

Define gcode parser flags for handling special cases.

Must be zero.

Definition at line 150 of file gcode.h.

#define GC_PARSER_PROBE_IS_AWAY   bit(3)

Definition at line 154 of file gcode.h.

#define GC_PARSER_PROBE_IS_NO_ERROR   bit(4)

Definition at line 155 of file gcode.h.

#define GC_PROBE_ABORT   GC_UPDATE_POS_NONE

Definition at line 141 of file gcode.h.

#define GC_PROBE_CHECK_MODE   GC_UPDATE_POS_TARGET

Definition at line 147 of file gcode.h.

#define GC_PROBE_FAIL_END   GC_UPDATE_POS_TARGET

Definition at line 143 of file gcode.h.

#define GC_PROBE_FAIL_INIT   GC_UPDATE_POS_NONE

Definition at line 142 of file gcode.h.

#define GC_PROBE_FOUND   GC_UPDATE_POS_SYSTEM

Define probe cycle exit states and assign proper position updating.

Definition at line 140 of file gcode.h.

#define GC_UPDATE_POS_NONE   2

Definition at line 138 of file gcode.h.

#define GC_UPDATE_POS_SYSTEM   1

Definition at line 137 of file gcode.h.

#define GC_UPDATE_POS_TARGET   0

Define g-code parser position updating flags.

Must be zero

Definition at line 136 of file gcode.h.

#define MODAL_GROUP_G0   0

Define modal group internal numbers for checking multiple command violations and tracking the.

NOTE: Modal group define values must be sequential and starting from zero. [G4,G10,G28,G28.1,G30,G30.1,G53,G92,G92.1] Non-modal

Definition at line 32 of file gcode.h.

#define MODAL_GROUP_G1   1

[G0,G1,G2,G3,G38.2,G38.3,G38.4,G38.5,G80] Motion

Definition at line 33 of file gcode.h.

#define MODAL_GROUP_G12   9

[G54,G55,G56,G57,G58,G59] Coordinate system selection

Definition at line 41 of file gcode.h.

#define MODAL_GROUP_G13   10

[G61] Control mode

Definition at line 42 of file gcode.h.

#define MODAL_GROUP_G2   2

[G17,G18,G19] Plane selection

Definition at line 34 of file gcode.h.

#define MODAL_GROUP_G3   3

[G90,G91] Distance mode

Definition at line 35 of file gcode.h.

#define MODAL_GROUP_G4   4

[G91.1] Arc IJK distance mode

Definition at line 36 of file gcode.h.

#define MODAL_GROUP_G5   5

[G93,G94] Feed rate mode

Definition at line 37 of file gcode.h.

#define MODAL_GROUP_G6   6

[G20,G21] Units

Definition at line 38 of file gcode.h.

#define MODAL_GROUP_G7   7

[G40] Cutter radius compensation mode. G41/42 NOT SUPPORTED.

Definition at line 39 of file gcode.h.

#define MODAL_GROUP_G8   8

[G43.1,G49] Tool length offset

Definition at line 40 of file gcode.h.

#define MODAL_GROUP_M4   11

[M0,M1,M2,M30] Stopping

Definition at line 44 of file gcode.h.

#define MODAL_GROUP_M7   12

[M3,M4,M5] Spindle turning

Definition at line 45 of file gcode.h.

#define MODAL_GROUP_M8   13

[M7,M8,M9] Coolant control

Definition at line 46 of file gcode.h.

#define MOTION_MODE_CCW_ARC   3

G3 (Do not alter value)

Definition at line 72 of file gcode.h.

#define MOTION_MODE_CW_ARC   2

G2 (Do not alter value)

Definition at line 71 of file gcode.h.

#define MOTION_MODE_LINEAR   1

G1 (Do not alter value)

Definition at line 70 of file gcode.h.

#define MOTION_MODE_NONE   80

G80 (Do not alter value)

Definition at line 77 of file gcode.h.

#define MOTION_MODE_PROBE_AWAY   142

G38.4 (Do not alter value)

Definition at line 75 of file gcode.h.

#define MOTION_MODE_PROBE_AWAY_NO_ERROR   143

G38.5 (Do not alter value)

Definition at line 76 of file gcode.h.

#define MOTION_MODE_PROBE_TOWARD   140

G38.2 (Do not alter value)

Definition at line 73 of file gcode.h.

#define MOTION_MODE_PROBE_TOWARD_NO_ERROR   141

G38.3 (Do not alter value)

Definition at line 74 of file gcode.h.

#define MOTION_MODE_SEEK   0

Modal Group G1: Motion modes.

G0 (Default: Must be zero)

Definition at line 69 of file gcode.h.

#define NON_MODAL_ABSOLUTE_OVERRIDE   53

G53 (Do not alter value)

Definition at line 65 of file gcode.h.

#define NON_MODAL_DWELL   4

G4 (Do not alter value)

Definition at line 59 of file gcode.h.

#define NON_MODAL_GO_HOME_0   28

G28 (Do not alter value)

Definition at line 61 of file gcode.h.

#define NON_MODAL_GO_HOME_1   30

G30 (Do not alter value)

Definition at line 63 of file gcode.h.

#define NON_MODAL_NO_ACTION   0

#define OTHER_INPUT_F 14

Define command actions for within execution-type modal groups (motion, stopping, non-modal). Used NOTE: Some macro values are assigned specific values to make g-code state reporting and parsing Modal Group G0: Non-modal actions (Default: Must be zero)

Definition at line 58 of file gcode.h.

#define NON_MODAL_RESET_COORDINATE_OFFSET   102

Definition at line 67 of file gcode.h.

#define NON_MODAL_SET_COORDINATE_DATA   10

G10 (Do not alter value)

Definition at line 60 of file gcode.h.

#define NON_MODAL_SET_COORDINATE_OFFSET   92

G92 (Do not alter value)

Definition at line 66 of file gcode.h.

#define NON_MODAL_SET_HOME_0   38

G28.1 (Do not alter value)

Definition at line 62 of file gcode.h.

#define NON_MODAL_SET_HOME_1   40

G30.1 (Do not alter value)

Definition at line 64 of file gcode.h.

#define PLANE_SELECT_XY   0

Modal Group G2: Plane select.

G17 (Default: Must be zero)

Definition at line 79 of file gcode.h.

#define PLANE_SELECT_YZ   2

G19 (Do not alter value)

Definition at line 81 of file gcode.h.

#define PLANE_SELECT_ZX   1

G18 (Do not alter value)

Definition at line 80 of file gcode.h.

#define PROGRAM_FLOW_COMPLETED_M2   2

NOTE: Not supported, but valid and ignored.

M2 (Do not alter value)

Definition at line 92 of file gcode.h.

#define PROGRAM_FLOW_COMPLETED_M30   30

M30 (Do not alter value)

Definition at line 93 of file gcode.h.

#define PROGRAM_FLOW_OPTIONAL_STOP   1

M1.

Definition at line 90 of file gcode.h.

#define PROGRAM_FLOW_PAUSED   3

M0.

Definition at line 89 of file gcode.h.

#define PROGRAM_FLOW_RUNNING   0

Modal Group M4: Program flow.

(Default: Must be zero)

Definition at line 88 of file gcode.h.

#define SPINDLE_DISABLE   0

Modal Group M7: Spindle control.

M5 (Default: Must be zero)

Definition at line 105 of file gcode.h.

#define SPINDLE_ENABLE_CCW   PL_COND_FLAG_SPINDLE_CCW

NOTE: Uses planner condition bit flag)

M4 (

Definition at line 108 of file gcode.h.

#define SPINDLE_ENABLE_CW   PL_COND_FLAG_SPINDLE_CW

M3 (.

Definition at line 106 of file gcode.h.

#define TOOL_LENGTH_OFFSET_CANCEL   0

NOTE: Uses planner condition bit flag)

Modal Group G8: Tool length offset G49 (Default: Must be zero)

Definition at line 117 of file gcode.h.

#define TOOL_LENGTH_OFFSET_ENABLE_DYNAMIC   1

G43.1.

Definition at line 118 of file gcode.h.

#define UNITS_MODE_INCHES   1

G20 (Do not alter value)

Definition at line 99 of file gcode.h.

#define UNITS_MODE_MM   0

Modal Group G6: Units mode.

G21 (Default: Must be zero)

Definition at line 98 of file gcode.h.

#define WORD_F   0

Modal Group G12: Active work coordinate system.

Define parameter word mapping.

Definition at line 122 of file gcode.h.

#define WORD_I   1

Definition at line 123 of file gcode.h.

#define WORD_J   2

Definition at line 124 of file gcode.h.

#define WORD_K   3

Definition at line 125 of file gcode.h.

#define WORD_L   4

Definition at line 126 of file gcode.h.

#define WORD_N   5

Definition at line 127 of file gcode.h.

#define WORD_P   6

Definition at line 128 of file gcode.h.

#define WORD_R   7

Definition at line 129 of file gcode.h.

#define WORD_S   8

Definition at line 130 of file gcode.h.

#define WORD_T   9

Definition at line 131 of file gcode.h.

#define WORD_X   10

Definition at line 132 of file gcode.h.

#define WORD_Y   11

Definition at line 133 of file gcode.h.

#define WORD_Z   12

Definition at line 134 of file gcode.h.

Function Documentation

uint8_t gc_execute_line ( char *  line)

Execute one block of rs275/ngc/g-code.

Execute one block of rs275/ngc/g-code.


STEP 1: Initialize parser block struct and copy current g-code state modes. The parser updates these modes and commands as the block line is parser and will only be used and executed after successful error-checking. The parser block struct also contains a block values struct, word tracking variables, and a non-modal commands tracker for the new block. This struct contains all of the necessary information to execute the block.

< Initialize the parser block struct.

< Copy current modes

< Tracks G10 P coordinate selection for execution

< XYZ tracking

< IJK tracking

< Tracks G and M command words. Also used for modal group violations.

< Tracks value words.

<

NOTE: $J= already parsed when passed to this function.

< Initialize default line number reported during jog.


STEP 2: Import all g-code words in the block line. A g-code word is a letter followed by a number, which can either be a 'G'/'M' command or sets/assigns a command value. Also, perform initial error-checks for command word modal group violations, for any repeated words, and for negative values set for the value words F, N, P, T, and S.

< Bit-value for assigning tracking variables

< Loop until no more g-code words in line.

NOTE: Mantissa is multiplied by 100 to catch non-integer command values. This is more

< Compute mantissa for Gxx.x commands.

NOTE: Rounding must be used to catch small floating point errors.

'G' and 'M' Command Words: Parse commands and check for modal group violations.

/ NOTE: Modal group numbers are defined in Table 4 of NIST RS274-NGC v3, pg.20

< Ignore G28.1, G30.1, and G92.1

< Set to zero to indicate valid non-integer G command.

< [Unsupported G38.x command]

< Set to zero to indicate valid non-integer G command.

< Set to zero to indicate valid non-integer G command.

NOTE: Not required since cutter radius compensation is always disabled. Only here

NOTE: The NIST g-code standard vaguely states that when a tool length offset is changed,

< G49

< G43.1

< Set to zero to indicate valid non-integer G command.

NOTE: G59.x are not supported. (But their int_values would be 60, 61, and 62.)

< Shift to array indexing.

< [Unsupported G command]

NOTE: Variable 'word_bit' is always assigned, if the command is valid.

< Program pause

< Optional stop not supported. Ignore.

< Program end and reset

< [Unsupported M command]

NOTE: Variable 'word_bit' is always assigned, if the command is valid.

NOTE: All remaining letters assign values.

Non-Command Words: This initial parsing phase only checks for repeats of the remaining legal g-code words and stores their value. Error-checking is performed later since some words (I,J,K,L,P,R) have multiple connotations and/or depend on the issued commands.

NOTE: For certain commands, P value must be an integer, but none of these commands are supported.

NOTE: Variable 'word_bit' is always assigned, if the non-command letter is valid.

NOTE: Negative value check is done here simply for code-efficiency.

< Flag to indicate parameter assigned.

Definition at line 63 of file gcode.c.

void gc_init ( )

Initialize the parser.

Definition at line 41 of file gcode.c.

void gc_sync_position ( )

Set g-code parser position. Input in steps.

Set g-code parser position. Input in steps.

Definition at line 53 of file gcode.c.

Variable Documentation

parser_state_t gc_state

Declare gc extern struct.

Definition at line 35 of file gcode.c.