grblHAL core  20261015
gcode.h
Go to the documentation of this file.
1 /*
2  gcode.h - rs274/ngc parser.
3 
4  Part of grblHAL
5 
6  Copyright (c) 2017-2026 Terje Io
7  Copyright (c) 2011-2016 Sungeun K. Jeon for Gnea Research LLC
8  Copyright (c) 2009-2011 Simen Svale Skogsrud
9 
10  grblHAL is free software: you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  grblHAL is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with grblHAL. If not, see <http://www.gnu.org/licenses/>.
22 */
23 
24 #ifndef _GCODE_H_
25 #define _GCODE_H_
26 
27 #include "nuts_bolts.h"
28 #include "coolant_control.h"
29 #include "spindle_control.h"
30 #include "errors.h"
31 #include "vfs.h"
32 
33 #define MAX_OFFSET_ENTRIES 4 // must be a power of 2
34 
35 typedef int32_t tool_id_t;
36 typedef int16_t pocket_id_t;
37 typedef uint16_t macro_id_t;
38 typedef int8_t offset_id_t;
39 
40 // Define command actions for within execution-type modal groups (motion, stopping, non-modal). Used
41 // internally by the parser to know which command to execute.
42 // NOTE: Some values are assigned specific values to make g-code state reporting and parsing
43 // compile a little smaller. Although not
44 // ideal, just be careful with values that state 'do not alter' and check both report.c and gcode.c
45 // to see how they are used, if you need to alter them.
46 
51 typedef enum {
63  #if ENABLE_ACCELERATION_PROFILES
65  NonModal_SetAccelerationProfile = 187
66  #else
68  #endif
70 
71 typedef enum {
76 
77 typedef enum {
83 } macro_call_t;
84 
85 typedef enum {
92 
97 typedef enum {
126  MotionMode_None = 800
128 
133 typedef enum {
136  PlaneSelect_YZ = 2
138 
139 // Modal Group G4: Arc IJK distance mode
140 //#define DISTANCE_ARC_MODE_INCREMENTAL 0 // G91.1 - Default, must be zero
141 
142 
147 typedef enum {
152 
153 // Modal Group G7: Cutter radius compensation mode
154 typedef enum {
155  CComp_Off = 0,
157  CComp_Right
159 
164 typedef enum {
170 
175 typedef enum {
177  CCRetractMode_RPos = 1
179 
180 
186 typedef enum {
193 #if COMPATIBILITY_LEVEL <= 1
197 #endif
203 } __attribute__ ((__packed__)) coord_system_id_t;
204 
205 
210 typedef enum {
215 
220 typedef enum {
230 
231 // Modal Group M9: Override control
232 typedef enum {
238  Override_Parking = 56
240 
243 typedef enum {
251 } io_mcode_t;
252 
256 typedef enum {
262  Fan_On = 106,
263  Fan_Off = 107,
278  OpenPNP_SetJerk = 20130,
284  Probe_Deploy = 401,
285  Probe_Stow = 402,
307 
309 typedef struct output_command {
311  uint8_t port;
312  int32_t value;
315 
317 typedef enum {
323  WaitMode_Max
325 
327 typedef enum {
332 
337 typedef enum {
342  #if SET_CHECK_MODE_PROBE_TO_START
344  #else
346  #endif
348 
349 #if LATHE_UVW_OPTION
350 
352  typedef enum {
353  ToolPos_Undefined = 0,
354  ToolPos1_135,
355  ToolPos2_45,
356  ToolPos3_315,
357  ToolPos4_225,
358  ToolPos5_180,
359  ToolPos6_90,
360  ToolPos7_0,
361  ToolPos8_270,
362  ToolPos9_Down,
363  } tool_orientation_t;
364 
365 #endif
366 
367 typedef struct {
370  bool dynamic;
371  float radius;
372 #if LATHE_UVW_OPTION
373  tool_orientation_t orientation;
374 #endif
375 } gc_ccomp_t;
376 
378 typedef union {
379  uint16_t value;
380  struct {
381  uint16_t jog_motion :1,
382  canned_cycle_change :1, // Use motion_mode_changed?
396  };
398 
400 typedef union {
401  uint16_t value;
402  struct {
403  uint16_t spindle_rpm_disable :8,
409  sync :1;
410  };
411  struct {
412  uint16_t spindle_rpm :8,
418  reserved2 :1; // sync synonym
419  };
421 
423 typedef struct {
427 
435 typedef struct {
436  float d;
437  float e;
438  float f;
439  float h;
440  float ijk[3];
441  float k;
442  float m;
443  float p;
444  float q;
445  float r;
446  float s;
447  float t;
448 #ifndef A_AXIS
449  float a;
450 #endif
451 #ifndef B_AXIS
452  float b;
453 #endif
454 #ifndef C_AXIS
455  float c;
456 #endif
457 #ifndef U_AXIS
458  float u;
459 #endif
460 #ifndef V_AXIS
461  float v;
462 #endif
463 #ifndef W_AXIS
464  float w;
465 #endif
466  float xyz[N_AXIS];
467 #if LATHE_UVW_OPTION
468  float uvw[3];
469 #endif
470  int32_t $;
471  int32_t n;
472  uint32_t o;
473  uint32_t l;
474 } gc_values_t;
475 
477 typedef union {
478  uint32_t mask;
479  uint32_t value;
480  struct {
481  uint32_t $ :1,
482  a :1,
483  b :1,
484  c :1,
485  i :1,
486  j :1,
487  k :1,
488  d :1,
489  e :1,
490  f :1,
491  g :1,
492  h :1,
493  l :1,
494  m :1,
495  n :1,
496  o :1,
497  p :1,
498  q :1,
499  r :1,
500  s :1,
501  t :1,
502  u :1,
503  v :1,
504  w :1,
505  x :1,
506  y :1,
507  z :1;
508  };
510 
511 typedef union {
512  uint8_t value;
513  struct {
517 
518  };
520 
521 
522 typedef struct {
526 
527 typedef struct {
532  float rpm;
534 } spindle_t;
535 
536 typedef struct {
540 
541 typedef union {
542  uint8_t value;
543  struct {
544  uint8_t units_imperial :1,
549 #if NGC_PARAMETERS_ENABLE
551 #endif
553  };
555 
556 // NOTE: When this struct is zeroed, the above defines set the defaults for the system.
557 typedef struct {
563  //< uint8_t distance_arc; //!< {G91.1} NOTE: Don't track. Only default supported.
565 #if CUTTER_COMP_ENABLE
566  gc_ccomp_t cutter_comp;
567 #endif
570 #if ENABLE_PATH_BLENDING
571  control_mode_t control;
572 #endif
581 #if ENABLE_ACCELERATION_PROFILES
582  float acceleration_factor;
583 #endif
584  float spline_pq[2];
586 
588  float tool_length_offset[N_AXIS];
589 #if NGC_PARAMETERS_ENABLE
590  float feed_rate;
592 #endif
593 } gc_modal_t;
594 
595 typedef struct {
598  override_t spindle_rpm[N_SYS_SPINDLE];
600 
602 typedef struct {
606 
608 typedef struct {
609  float xyz[3];
610  float delta;
611  float dwell;
616  bool change;
617 } gc_canned_t;
618 
620 typedef enum {
624  Taper_Both
626 
627 typedef struct {
628  float pitch;
629  float z_final;
630  float peak;
632  float depth;
638  uint_fast16_t spring_passes;
641 
643 typedef struct {
645  float radius;
647 #if LATHE_UVW_OPTION
648  float front_angle;
649  float back_angle;
650  tool_orientation_t orientation;
651 #endif
652 } tool_data_t;
653 
655 typedef struct {
656  const char *name;
660 
661 typedef struct {
664  char name[101];
665 } tool_pocket_t;
666 
667 typedef struct {
668  float angle;
670 } rotation_t;
671 
672 #if NGC_PARAMETERS_ENABLE
673 
674 typedef struct g66_arguments
675 {
677  uint32_t call_level;
682 
683 #if LATHE_UVW_OPTION
684 
685 typedef struct {
686  motion_mode_t motion;
687  float x;
688  float z;
689  union {
690  struct { // G70
691  float start_distance;
692  float end_distance;
693  float passes;
694  } finish;
695  struct { // G71.x & G72.x
696  float retract_distance;
697  float remaining_distance;
698  float increment;
699  } rough;
700  };
701 } lathe_cycle_arguments_t;
702 
703 #endif // LATHE_UVW_OPTION
704 #endif // NGC_PARAMETERS_ENABLE
705 
709 typedef struct {
713  float feed_rate;
715  float position[N_AXIS];
716 #if ENABLE_PATH_BLENDING
717  float path_tolerance;
718  float cam_tolerance;
719 #endif
723  bool file_run;
724  bool file_stream;
727  bool skip_blocks;
728  bool ccomp_off;
738 #if NGC_PARAMETERS_ENABLE
740 #endif
742 
743 extern parser_state_t gc_state;
744 
750 typedef struct {
761  uint32_t arc_turns; //
764  bool select_probe; // Set to \a true if the probe has to be selected before executing G38.x.
765 #if NGC_PARAMETERS_ENABLE
767 #endif
768 #if N_AXIS > 3
769  axes_signals_t rotary_wrap;
770 #endif
772 
773 // Define modal groups internal bitfield for checking multiple command violations and tracking the
774 // type of command that is called in the block. A modal group is a group of g-code commands that are
775 // mutually exclusive, or cannot exist on the same line, because they each toggle a state or execute
776 // a unique motion. These are defined in the NIST RS274-NGC v3 g-code standard, available online,
777 // and are similar/identical to other g-code interpreters by manufacturers (Haas,Fanuc,Mazak,etc).
778 typedef union {
779  uint32_t mask;
780  struct {
781  uint32_t G0 :1,
782  G1 :1,
783  G2 :1,
784  G3 :1,
785  G4 :1,
786  G5 :1,
787  G6 :1,
788  G7 :1,
789  G8 :1,
790  G10 :1,
791  G11 :1,
792  G12 :1,
793  G13 :1,
794  G14 :1,
795  G15 :1,
796  G16 :1,
797 
798  M4 :1,
799  M5 :1,
800  M6 :1,
801  M7 :1,
802  M8 :1,
803  M9 :1,
804  M10 :1;
805  };
807 
808 static inline axes_signals_t gc_paramwords_to_axes (parameter_words_t p_words)
809 {
810 #if N_AXIS == 3
811  return (axes_signals_t){ (uint8_t)(p_words.mask >> 24) };
812 #elif N_AXIS == 7
813  return (axes_signals_t){ (uint8_t)(((p_words.mask >> 24) | ((p_words.mask << 2) & 0b00111000) | ((p_words.mask >> (21 - 6)) & 0b11000000)) & AXES_BITMASK) };
814 #else
815  axes_signals_t axes = (axes_signals_t){ (uint8_t)(p_words.mask >> 24) };
816 
817  #ifdef A_AXIS
818  axes.a = p_words.a;
819  #endif
820  #ifdef B_AXIS
821  axes.b = p_words.b;
822  #endif
823  #ifdef C_AXIS
824  axes.c = p_words.c;
825  #endif
826  #ifdef U_AXIS
827  axes.u = p_words.u;
828  #endif
829  #ifdef V_AXIS
830  axes.v = p_words.v;
831  #endif
832  #ifdef W_AXIS
833  axes.w = p_words.w;
834  #endif
835 
836  return axes;
837 #endif
838 }
839 
840 // Initialize the parser
841 void gc_init (bool stop);
842 
843 char *gc_normalize_block (char *block, status_code_t *status, char **message);
844 
845 // Execute one block of rs275/ngc/g-code
846 status_code_t gc_execute_block (char *block);
847 
848 // Sets g-code parser position in mm. Input in steps. Called by the system abort and hard
849 // limit pull-off routines.
850 #define gc_sync_position() system_convert_array_steps_to_mpos (gc_state.position, sys.position)
851 
852 // Sets g-code parser and planner position in mm.
853 #define sync_position() do { plan_sync_position(); system_convert_array_steps_to_mpos(gc_state.position, sys.position); } while(0)
854 
855 // Set dynamic laser power mode to PPI (Pulses Per Inch)
856 // Driver support for pulsing the laser on signal is required for this to work.
857 // Returns true if driver uses hardware implementation.
858 bool gc_laser_ppi_enable (uint_fast16_t ppi, uint_fast16_t pulse_length);
860 // Gets axes scaling state.
862 float *gc_get_scaling (void);
863 
864 // Get current axis offset.
865 float gc_get_offset (uint_fast8_t idx, bool real_time);
866 
868 
870 
872 
874 
875 void gc_spindle_off (void);
876 void gc_coolant (coolant_state_t state);
877 
878 void gc_set_tool_offset (tool_offset_mode_t mode, uint_fast8_t idx, int32_t offset);
881 size_t gc_macro_get_pos (macro_id_t id, vfs_file_t *file);
882 
883 #if NGC_PARAMETERS_ENABLE
886 #endif
887 
888 #if ENABLE_ACCELERATION_PROFILES
889 float gc_get_accel_factor (uint8_t profile);
890 #endif
891 
892 #endif // _GCODE_H_
#define N_SYS_SPINDLE
Defines number of simultaneously active spindles supported - minimum 1 (none), maximum 8.
Definition: config.h:65
#define N_AXIS
Defines number of axes supported - minimum 3, maximum 8. If more than 3 axes are configured a complia...
Definition: config.h:42
status_code_t
Definition: errors.h:31
override_mode_t
Definition: gcode.h:232
@ Override_FeedRate
50 - M50
Definition: gcode.h:235
@ Override_FeedHold
53 - M53
Definition: gcode.h:237
@ Override_FeedSpeedDisable
49 - M49
Definition: gcode.h:234
@ Override_SpindleSpeed
51 - M51
Definition: gcode.h:236
@ Override_Parking
56 - M56
Definition: gcode.h:238
@ Override_FeedSpeedEnable
48 - M48
Definition: gcode.h:233
modal_state_action_t
Definition: gcode.h:85
@ ModalState_Save
70 - M70
Definition: gcode.h:87
@ ModalState_Invalidate
71 - M71
Definition: gcode.h:88
@ ModalState_NoAction
0 - Default, must be zero
Definition: gcode.h:86
@ ModalState_SaveAutoRestore
73 - M73
Definition: gcode.h:90
@ ModalState_Restore
72 - M72
Definition: gcode.h:89
char * gc_normalize_block(char *block, status_code_t *status, char **message)
Definition: gcode.c:1098
int32_t tool_id_t
Definition: gcode.h:35
feed_mode_t
Definition: gcode.h:147
@ FeedMode_InverseTime
1 - G93
Definition: gcode.h:149
@ FeedMode_UnitsPerRev
2 - G95
Definition: gcode.h:150
@ FeedMode_UnitsPerMin
0 - G94 - Default, must be zero
Definition: gcode.h:148
#define MAX_OFFSET_ENTRIES
Definition: gcode.h:33
int8_t offset_id_t
Definition: gcode.h:38
tool_offset_mode_t
Definition: gcode.h:164
@ ToolLengthOffset_EnableDynamic
2 - G43.1
Definition: gcode.h:167
@ ToolLengthOffset_Cancel
0 - G49 - Default, must be zero
Definition: gcode.h:165
@ ToolLengthOffset_Enable
1 - G43
Definition: gcode.h:166
@ ToolLengthOffset_ApplyAdditional
3 - G43.2
Definition: gcode.h:168
plane_t * gc_get_plane_data(plane_t *plane, plane_select_t select)
Definition: gcode.c:340
void gc_init(bool stop)
Definition: gcode.c:762
motion_mode_t
Definition: gcode.h:97
@ MotionMode_RigidTapping
331 - G33.1
Definition: gcode.h:105
@ MotionMode_DrillChipBreak
730 - G73
Definition: gcode.h:113
@ MotionMode_CannedCycle84
830 - G84, right hand tapping - experimental
Definition: gcode.h:118
@ MotionMode_CannedCycle82
820 - G82, drill with dwell
Definition: gcode.h:116
@ MotionMode_CannedCycle83
830 - G83, peck drill
Definition: gcode.h:117
@ MotionMode_CannedCycle89
890 - G89, not implemented
Definition: gcode.h:121
@ MotionMode_LatheRoughingX1
721 - G72.1
Definition: gcode.h:111
@ MotionMode_CcwArc
30 - G3
Definition: gcode.h:101
@ MotionMode_Seek
0 - G0 - Default, must be zero
Definition: gcode.h:98
@ MotionMode_ProbeToward
382 - G38.2
Definition: gcode.h:122
@ MotionMode_LatheRoughingZ1
711 - G71.1
Definition: gcode.h:108
@ MotionMode_SpindleSynchronized
330 - G33
Definition: gcode.h:104
@ MotionMode_CubicSpline
50 - G5
Definition: gcode.h:102
@ MotionMode_LatheRoughingX
720 - G72
Definition: gcode.h:110
@ MotionMode_CwArc
20 - G2
Definition: gcode.h:100
@ MotionMode_ProbeAway
384 - G38.4
Definition: gcode.h:124
@ MotionMode_LatheRoughingX2
722 - G72.2
Definition: gcode.h:112
@ MotionMode_Linear
10 - G1
Definition: gcode.h:99
@ MotionMode_ProbeTowardNoError
383 - G38.3
Definition: gcode.h:123
@ MotionMode_Threading
760 - G76
Definition: gcode.h:114
@ MotionMode_QuadraticSpline
51 - G5.1
Definition: gcode.h:103
@ MotionMode_CannedCycle86
860 - G86, not implemented
Definition: gcode.h:120
@ MotionMode_CannedCycle85
850 - G85, not implemented
Definition: gcode.h:119
@ MotionMode_CannedCycle81
810 - G81, drill
Definition: gcode.h:115
@ MotionMode_None
800 - G80
Definition: gcode.h:126
@ MotionMode_LatheRoughingZ
710 - G71
Definition: gcode.h:107
@ MotionMode_LatheFinishing
700 - G70
Definition: gcode.h:106
@ MotionMode_ProbeAwayNoError
385 - G38.5
Definition: gcode.h:125
@ MotionMode_LatheRoughingZ2
712 - G71.2
Definition: gcode.h:109
io_mcode_t
Definition: gcode.h:243
@ IoMCode_OutputOffSynced
63 - M63
Definition: gcode.h:245
@ IoMCode_WaitOnInput
66 - M66
Definition: gcode.h:248
@ IoMCode_OutputOnSynced
62 - M62
Definition: gcode.h:244
@ IoMCode_AnalogOutSynced
67 - M67
Definition: gcode.h:249
@ IoMCode_AnalogOutImmediate
68 - M68
Definition: gcode.h:250
@ IoMCode_OutputOnImmediate
64 - M64
Definition: gcode.h:246
@ IoMCode_OutputOffImmediate
65 - M65
Definition: gcode.h:247
struct output_command output_command_t
Data for M62, M63 and M67 commands when executed synchronized with motion.
parameter_words_t gc_get_g65_arguments(void)
non_modal_t
Definition: gcode.h:51
@ NonModal_SetHome_1
40 - G30.1
Definition: gcode.h:58
@ NonModal_SetCoordinateOffset
92 - G92
Definition: gcode.h:60
@ NonModal_SetHome_0
38 - G28.1
Definition: gcode.h:56
@ NonModal_AbsoluteOverride
53 - G53
Definition: gcode.h:59
@ NonModal_Dwell
4 - G4
Definition: gcode.h:53
@ NonModal_NoAction
0 - Default, must be zero
Definition: gcode.h:52
@ NonModal_RestoreCoordinateOffset
122 - G92.3
Definition: gcode.h:67
@ NonModal_GoHome_1
30 - G30
Definition: gcode.h:57
@ NonModal_ResetCoordinateOffset
102 - G92.1
Definition: gcode.h:61
@ NonModal_ClearCoordinateOffset
112 - G92.2
Definition: gcode.h:62
@ NonModal_Settings
10 - G10
Definition: gcode.h:54
@ NonModal_GoHome_0
28 - G28
Definition: gcode.h:55
tool_action_t
Definition: gcode.h:71
@ ToolAction_Set
61 - M61
Definition: gcode.h:74
@ ToolAction_Change
6 - M6
Definition: gcode.h:73
@ ToolAction_None
0 - Default, must be zero
Definition: gcode.h:72
pos_update_t
Parser position updating flags.
Definition: gcode.h:327
@ GCUpdatePos_None
2
Definition: gcode.h:330
@ GCUpdatePos_System
1
Definition: gcode.h:329
@ GCUpdatePos_Target
0
Definition: gcode.h:328
size_t gc_macro_get_pos(macro_id_t id, vfs_file_t *file)
Definition: gcode.c:659
bool gc_modal_state_restore(gc_modal_snapshot_t *snapshot)
Definition: gcode.c:599
spindle_t * gc_spindle_get(spindle_num_t spindle)
Definition: gcode.c:886
user_mcode_t
Definition: gcode.h:256
@ Trinamic_ModeToggle
569 - M569, Marlin format
Definition: gcode.h:287
@ Plasma_SelectMaterial
150 - M190, LinuxCNC format
Definition: gcode.h:277
@ Macro_Execute6
816 - M816, Marlin format
Definition: gcode.h:294
@ RGB_WriteLEDs
150 - M150, Marlin format
Definition: gcode.h:276
@ LaserPPI_Enable
126 - M126
Definition: gcode.h:269
@ OpenPNP_FinishMoves
400 - M400
Definition: gcode.h:283
@ OpenPNP_GetADCScaled
144 - M144
Definition: gcode.h:274
@ OpenPNP_GetCurrentPosition
114 - M114
Definition: gcode.h:264
@ Macro_Execute2
812 - M812, Marlin format
Definition: gcode.h:290
@ UserMCode_Generic1
101 - For private use only
Definition: gcode.h:258
@ UserMCode_Generic4
104 - For private use only
Definition: gcode.h:261
@ UserMCode_Generic2
102 - For private use only
Definition: gcode.h:259
@ SetFeedOverrides
220 - M220, Marlin format
Definition: gcode.h:280
@ OpenPNP_SettingsReset
502 - M502
Definition: gcode.h:286
@ OpenPNP_GetPinState
143 - M143
Definition: gcode.h:273
@ Trinamic_ChopperTiming
919 - M919, Marlin format
Definition: gcode.h:303
@ OpenPNP_FirmwareInfo
115 - M115
Definition: gcode.h:265
@ Laser_Overdrive
129 - M129
Definition: gcode.h:272
@ UserMCode_Generic3
103 - For private use only
Definition: gcode.h:260
@ OpenPNP_SetADCScaling
145 - M145
Definition: gcode.h:275
@ PWMServo_SetPosition
280 - M280, Marlin format
Definition: gcode.h:281
@ LaserPPI_PulseLength
128 - M128
Definition: gcode.h:271
@ Trinamic_StepperCurrent
906 - M906, Marlin format
Definition: gcode.h:298
@ Trinamic_ReportPrewarnFlags
911 - M911, Marlin format
Definition: gcode.h:299
@ Macro_Execute9
819 - M819, Marlin format
Definition: gcode.h:297
@ Sienci_Atci_Enable
960 - M960
Definition: gcode.h:304
@ Macro_Execute3
813 - M813, Marlin format
Definition: gcode.h:291
@ Macro_Execute1
811 - M811, Marlin format
Definition: gcode.h:289
@ Trinamic_HomingSensitivity
914 - M914, Marlin format
Definition: gcode.h:302
@ Probe_Deploy
401 - M401, Marlin format
Definition: gcode.h:284
@ Macro_Execute0
810 - M810, Marlin format
Definition: gcode.h:288
@ Probe_Stow
402 - M402, Marlin format
Definition: gcode.h:285
@ Macro_Execute8
818 - M818, Marlin format
Definition: gcode.h:296
@ Macro_Execute4
814 - M814, Marlin format
Definition: gcode.h:292
@ RGB_Inspection_Light
356 - M356
Definition: gcode.h:282
@ Fan_Off
107 - M107, Marlin format
Definition: gcode.h:263
@ Macro_Execute5
815 - M815, Marlin format
Definition: gcode.h:293
@ LaserPPI_Rate
127 - M127
Definition: gcode.h:270
@ Trinamic_DebugReport
122 - M122, Marlin format
Definition: gcode.h:266
@ OpenPNP_SetJerk
20130 - M201.3
Definition: gcode.h:278
@ Trinamic_HybridThreshold
913 - M913, Marlin format
Definition: gcode.h:301
@ Spindle_Select
Value to be assigned later!
Definition: gcode.h:305
@ OpenPNP_SetPinState
42 - M42
Definition: gcode.h:257
@ Macro_Execute7
817 - M817, Marlin format
Definition: gcode.h:295
@ Trinamic_ClearPrewarnFlags
912 - M912, Marlin format
Definition: gcode.h:300
@ Trinamic_ReadRegister
123 - M123
Definition: gcode.h:267
@ Fan_On
106 - M106, Marlin format
Definition: gcode.h:262
@ OpenPNP_SetAcceleration
204 - M204
Definition: gcode.h:279
@ Trinamic_WriteRegister
124 - M124
Definition: gcode.h:268
program_flow_t
Definition: gcode.h:220
@ ProgramFlow_EndPercent
255 - %
Definition: gcode.h:228
@ ProgramFlow_Running
0 - Default, must be zero
Definition: gcode.h:221
@ ProgramFlow_CompletedM60
60 - M60
Definition: gcode.h:226
@ ProgramFlow_OptionalStop
1 - M1
Definition: gcode.h:223
@ ProgramFlow_CompletedM2
2 - M2
Definition: gcode.h:224
@ ProgramFlow_Return
99 - M99
Definition: gcode.h:227
@ ProgramFlow_Paused
3 - M0
Definition: gcode.h:222
@ ProgramFlow_CompletedM30
30 - M30
Definition: gcode.h:225
uint16_t macro_id_t
Definition: gcode.h:37
gc_taper_type
Thread taper types.
Definition: gcode.h:620
@ Taper_None
0
Definition: gcode.h:621
@ Taper_Both
3
Definition: gcode.h:624
@ Taper_Exit
2
Definition: gcode.h:623
@ Taper_Entry
1
Definition: gcode.h:622
gc_probe_t
Definition: gcode.h:337
@ GCProbe_FailEnd
0
Definition: gcode.h:341
@ GCProbe_FailInit
2
Definition: gcode.h:340
@ GCProbe_CheckMode
0
Definition: gcode.h:345
@ GCProbe_Found
1
Definition: gcode.h:338
@ GCProbe_Abort
2
Definition: gcode.h:339
float * gc_get_scaling(void)
Definition: gcode.c:241
cc_retract_mode_t
Definition: gcode.h:175
@ CCRetractMode_Previous
0 - G98 - Default, must be zero
Definition: gcode.h:176
@ CCRetractMode_RPos
1 - G99
Definition: gcode.h:177
parser_state_t gc_state
Definition: gcode.c:95
ccomp_mode_t
Definition: gcode.h:154
@ CComp_Right
2 - G42, G42.1
Definition: gcode.h:157
@ CComp_Off
0 - G40 - Default, must be zero
Definition: gcode.h:155
@ CComp_Left
1 - G41, G41.1
Definition: gcode.h:156
int16_t pocket_id_t
Definition: gcode.h:36
control_mode_t
Definition: gcode.h:210
@ ControlMode_ExactStop
1 - G61.1
Definition: gcode.h:212
@ ControlMode_PathBlending
2 - G64
Definition: gcode.h:213
@ ControlMode_ExactPath
0 - G61 - Default, must be zero
Definition: gcode.h:211
char * gc_coord_system_to_str(coord_system_id_t id)
Definition: gcode.c:158
macro_call_t
Definition: gcode.h:77
@ MacroCall_NonModal98
98 - M98
Definition: gcode.h:82
@ MacroCall_Modal1
166 - G66.1
Definition: gcode.h:81
@ MacroCall_Modal
66 - G66
Definition: gcode.h:80
@ MacroCall_End
0 - Default, must be zero (G67)
Definition: gcode.h:78
@ MacroCall_NonModal
65 - G65
Definition: gcode.h:79
axes_signals_t gc_get_g51_state(void)
Definition: gcode.c:246
axes_signals_t gc_claim_axis_words(parser_block_t *gc_block, axes_signals_t validate)
Definition: gcode.c:365
void gc_coolant(coolant_state_t state)
Definition: gcode.c:907
void gc_spindle_off(void)
Definition: gcode.c:895
coord_system_id_t
Definition: gcode.h:186
@ CoordinateSystem_G55
1 - G55 (G12)
Definition: gcode.h:188
@ CoordinateSystem_G28
9 - G28 (G0) when COMPATIBILITY_LEVEL <= 1, 6 otherwise
Definition: gcode.h:199
@ CoordinateSystem_G59_3
8 - G59.3 (G12) - availability depending on COMPATIBILITY_LEVEL <= 1
Definition: gcode.h:196
@ CoordinateSystem_G54
0 - G54 (G12)
Definition: gcode.h:187
@ N_WorkCoordinateSystems
9 when COMPATIBILITY_LEVEL <= 1, 6 otherwise
Definition: gcode.h:198
@ CoordinateSystem_G56
2 - G56 (G12)
Definition: gcode.h:189
@ CoordinateSystem_G92
11 - G92 (G0) when COMPATIBILITY_LEVEL <= 1, 8 otherwise
Definition: gcode.h:201
@ CoordinateSystem_G59
5 - G59 (G12)
Definition: gcode.h:192
@ CoordinateSystem_G57
3 - G57 (G12)
Definition: gcode.h:190
@ CoordinateSystem_G30
10 - G30 (G0) when COMPATIBILITY_LEVEL <= 1, 7 otherwise
Definition: gcode.h:200
@ CoordinateSystem_G59_2
7 - G59.2 (G12) - availability depending on COMPATIBILITY_LEVEL <= 1
Definition: gcode.h:195
@ CoordinateSystem_G59_1
6 - G59.1 (G12) - availability depending on COMPATIBILITY_LEVEL <= 1
Definition: gcode.h:194
@ CoordinateSystem_G58
4 - G58 (G12)
Definition: gcode.h:191
@ N_CoordinateSystems
12 when COMPATIBILITY_LEVEL <= 1, 9 otherwise
Definition: gcode.h:202
void gc_clear_offset(coord_system_id_t id)
Definition: gcode.c:261
status_code_t gc_execute_block(char *block)
Definition: gcode.c:1187
struct g66_arguments g66_arguments_t
output_command_t * gc_clear_output_commands(volatile output_command_t *cmd)
Definition: gcode.c:1038
bool gc_laser_ppi_enable(uint_fast16_t ppi, uint_fast16_t pulse_length)
Definition: gcode.c:879
wait_mode_t
M66 Allowed L-parameter values.
Definition: gcode.h:317
@ WaitMode_High
3
Definition: gcode.h:321
@ WaitMode_Immediate
0 - This is the only mode allowed for analog inputs
Definition: gcode.h:318
@ WaitMode_Fall
2
Definition: gcode.h:320
@ WaitMode_Max
For internal use.
Definition: gcode.h:323
@ WaitMode_Low
4
Definition: gcode.h:322
@ WaitMode_Rise
1
Definition: gcode.h:319
void gc_set_tool_offset(tool_offset_mode_t mode, uint_fast8_t idx, int32_t offset)
Definition: gcode.c:301
float gc_get_offset(uint_fast8_t idx, bool real_time)
Definition: gcode.c:284
plane_select_t
Definition: gcode.h:133
@ PlaneSelect_YZ
2 - G19
Definition: gcode.h:136
@ PlaneSelect_ZX
1 - G18
Definition: gcode.h:135
@ PlaneSelect_XY
0 - G17 - Default, must be zero
Definition: gcode.h:134
parser_state_t * gc_get_state(void)
Definition: gcode.c:153
uint_fast16_t override_t
Definition: grbl.h:259
#define AXES_BITMASK
Definition: nuts_bolts.h:105
uint32_t line_number_t
Definition: nuts_bolts.h:252
spindle_rpm_mode_t
Definition: spindle_control.h:137
int8_t spindle_num_t
Definition: spindle_control.h:57
Coordinate system data.
Definition: nuts_bolts.h:327
Coordinate data including id.
Definition: gcode.h:423
coord_system_data_t data
Definition: gcode.h:425
coord_system_id_t id
Definition: gcode.h:424
Definition: gcode.h:675
uint32_t call_level
Definition: gcode.h:677
gc_values_t values
Definition: gcode.h:678
struct g66_arguments * prev
Definition: gcode.h:680
parameter_words_t words
Definition: gcode.h:679
macro_call_t call
Definition: gcode.h:676
Data for canned cycles.
Definition: gcode.h:608
float dwell
Definition: gcode.h:611
cc_retract_mode_t retract_mode
Definition: gcode.h:615
float delta
Definition: gcode.h:610
bool spindle_off
Definition: gcode.h:614
bool change
Definition: gcode.h:616
float retract_position
Canned cycle retract position.
Definition: gcode.h:612
bool rapid_retract
Definition: gcode.h:613
Definition: gcode.h:367
float radius
Definition: gcode.h:371
ccomp_mode_t side
Definition: gcode.h:368
bool first_move
Definition: gcode.h:369
bool dynamic
Definition: gcode.h:370
Data for G70-G73.
Definition: gcode.h:602
gc_modal_t modal
Definition: gcode.h:603
Definition: gcode.h:557
cc_retract_mode_t retract_mode
{G98,G99}
Definition: gcode.h:577
bool canned_cycle_active
Definition: gcode.h:580
coord_system_t g5x_offset
{G54,G55,G56,G57,G58,G59,G59.1,G59.2,G59.3}
Definition: gcode.h:569
feed_mode_t feed_mode
{G93,G94,G95}
Definition: gcode.h:559
motion_mode_t motion
{G0,G1,G2,G3,G38.2,G80}
Definition: gcode.h:558
gc_override_flags_t override_ctrl
{M48,M49,M50,M51,M53,M56}
Definition: gcode.h:576
plane_select_t plane_select
{G17,G18,G19}
Definition: gcode.h:564
coolant_state_t coolant
{M7,M8,M9}
Definition: gcode.h:574
tool_offset_mode_t tool_offset_mode
{G43,G43.1,G49}
Definition: gcode.h:568
program_flow_t program_flow
{M0,M1,M2,M30,M60}
Definition: gcode.h:573
bool auto_restore
{M73} NOTE: set in snapshot when saving modal state
Definition: gcode.h:591
float feed_rate
{F} NOTE: set in snapshot when saving modal state
Definition: gcode.h:590
bool scaling_active
{G50,G51}
Definition: gcode.h:578
scale_factor_t scale_factor
{G51}
Definition: gcode.h:579
bool units_imperial
{G20,G21}
Definition: gcode.h:560
bool diameter_mode
{G7,G8} Lathe diameter mode.
Definition: gcode.h:562
bool distance_incremental
{G90,G91}
Definition: gcode.h:561
Definition: gcode.h:595
override_t rapid_rate
Rapids override value in percent.
Definition: gcode.h:597
override_t feed_rate
Feed rate override value in percent.
Definition: gcode.h:596
Definition: gcode.h:627
float main_taper_height
Definition: gcode.h:634
float infeed_angle
Definition: gcode.h:636
float pitch
Definition: gcode.h:628
gc_taper_type end_taper_type
Definition: gcode.h:639
uint_fast16_t spring_passes
Definition: gcode.h:638
float cut_direction
Definition: gcode.h:637
float peak
Definition: gcode.h:630
float z_final
Definition: gcode.h:629
float depth
Definition: gcode.h:632
float end_taper_length
Definition: gcode.h:635
float initial_depth
Definition: gcode.h:631
float depth_degression
Definition: gcode.h:633
G- and M-code parameter values.
Definition: gcode.h:435
float q
User defined M-code parameter, M67 output value, G64 naive CAM tolerance, G83 delta increment.
Definition: gcode.h:444
float p
G10, 664 or dwell parameters.
Definition: gcode.h:443
uint32_t l
G10, G65, G66 or canned cycles parameters.
Definition: gcode.h:473
float d
Max spindle RPM in Constant Surface Speed Mode (G96).
Definition: gcode.h:436
float r
Arc radius or retract position.
Definition: gcode.h:445
float v
G65 argument.
Definition: gcode.h:461
float a
G65 argument.
Definition: gcode.h:449
int32_t n
Line number - single-meaning word. NOTE: LinuxCNC allows real numbers.
Definition: gcode.h:471
float e
Thread taper length (G76), M67 output number.
Definition: gcode.h:437
float u
G65 argument.
Definition: gcode.h:458
float w
G65 argument.
Definition: gcode.h:464
float b
G65 argument.
Definition: gcode.h:452
float h
Tool number or number of G76 thread spring passes.
Definition: gcode.h:439
float s
Spindle speed - single-meaning word.
Definition: gcode.h:446
uint32_t o
Subroutine identifier - single-meaning word.
Definition: gcode.h:472
float k
G33 distance per revolution.
Definition: gcode.h:441
float m
G65 argument.
Definition: gcode.h:442
float c
G65 argument.
Definition: gcode.h:455
float f
Feed rate - single-meaning word.
Definition: gcode.h:438
float t
Tool selection - single-meaning word.
Definition: gcode.h:447
Data for M62, M63 and M67 commands when executed synchronized with motion.
Definition: gcode.h:309
int32_t value
Definition: gcode.h:312
uint8_t port
Definition: gcode.h:311
bool is_digital
Definition: gcode.h:310
struct output_command * next
Definition: gcode.h:313
Parser block structure.
Definition: gcode.h:750
bool select_probe
Definition: gcode.h:764
user_mcode_t user_mcode
Set > 0 if a user M-code is found.
Definition: gcode.h:754
spindle_modal_t spindle_modal
Definition: gcode.h:757
tool_action_t tool_action
Non modal tool change.
Definition: gcode.h:752
override_mode_t override_command
Override command TODO: add to non_modal above?
Definition: gcode.h:753
output_command_t output_command
Details about M62-M68 output command to execute if present in block.
Definition: gcode.h:760
parameter_words_t g65_words
Parameter words to pass to G65 macro.
Definition: gcode.h:762
gc_values_t values
Parameter values for block.
Definition: gcode.h:758
modal_state_action_t state_action
M70-M73 modal state action.
Definition: gcode.h:766
uint32_t arc_turns
Definition: gcode.h:761
bool user_mcode_sync
Set to true by M-code validation handler if M-code is to be executed after synchronization.
Definition: gcode.h:755
macro_call_t macro_call
Definition: gcode.h:763
non_modal_t non_modal_command
Non modal command.
Definition: gcode.h:751
gc_modal_t modal
The current modal state is copied here before parsing starts.
Definition: gcode.h:756
parameter_words_t words
Bitfield for tracking found parameter values.
Definition: gcode.h:759
Parser state.
Definition: gcode.h:709
bool ccomp_off
true when cutter compensation has been turned off
Definition: gcode.h:728
tool_id_t g43_pending
Tool offset from tool in tool table to be applied on M6 completed, set when G43 is in block with M6.
Definition: gcode.h:722
status_code_t last_error
last return value from parser
Definition: gcode.h:729
tool_data_t * tool
Tracks tool number and tool offset.
Definition: gcode.h:737
float distance_per_rev
Millimeters/rev.
Definition: gcode.h:714
bool file_run
Tracks % command.
Definition: gcode.h:723
coord_system_data_t g92_offset
Definition: gcode.h:734
g66_arguments_t * g66_args
Linked list with G66 arguments, NULL if G66 is not active.
Definition: gcode.h:739
bool g92_offset_applied
true when G92 offset applied
Definition: gcode.h:733
gc_canned_t canned
Definition: gcode.h:711
bool tool_change
Definition: gcode.h:726
bool skip_blocks
true if skipping conditional blocks
Definition: gcode.h:727
bool is_laser_ppi_mode
Definition: gcode.h:725
tool_id_t tool_pending
Tool to be selected on next M6.
Definition: gcode.h:721
float feed_rate
Millimeters/min.
Definition: gcode.h:713
bool file_stream
Tracks streaming from file.
Definition: gcode.h:724
gc_modal_t modal
Definition: gcode.h:710
line_number_t line_number
Last line number sent.
Definition: gcode.h:720
spindle_t * spindle
Last referenced spindle.
Definition: gcode.h:712
offset_id_t offset_id
id(x) of last G92 coordinate offset (into circular buffer)
Definition: gcode.h:730
Definition: gcode.h:667
point_2d_t offsets
Definition: gcode.h:669
float angle
Definition: gcode.h:668
Definition: gcode.h:522
coord_data_t xyz
Center point.
Definition: gcode.h:523
coord_data_t ijk
Scaling factors.
Definition: gcode.h:524
Data used for Constant Surface Speed (CSS) mode calculations.
Definition: spindle_control.h:347
Definition: gcode.h:536
spindle_state_t state
{M3,M4,M5}
Definition: gcode.h:537
spindle_rpm_mode_t rpm_mode
{G96,G97}
Definition: gcode.h:538
Handlers and data for spindle support.
Definition: spindle_control.h:318
Definition: gcode.h:527
float rpm
Spindle speed. Must be second last!
Definition: gcode.h:532
spindle_state_t state
{M3,M4,M5}
Definition: gcode.h:528
spindle_rpm_mode_t rpm_mode
{G96,G97}
Definition: gcode.h:529
spindle_ptrs_t * hal
Spindle function pointers etc. Must be last!
Definition: gcode.h:533
spindle_css_data_t * css
Data used for Constant Surface Speed Mode calculations.
Definition: gcode.h:531
spindle_cond_t condition
TODO: move data from planner_cond_t here.
Definition: gcode.h:530
Tool data.
Definition: gcode.h:643
coord_data_t offset
Tool offset.
Definition: gcode.h:644
float radius
Radius of tool (currently unsupported)
Definition: gcode.h:645
tool_id_t tool_id
Tool number.
Definition: gcode.h:646
Definition: gcode.h:661
tool_data_t tool
Definition: gcode.h:662
pocket_id_t pocket_id
Definition: gcode.h:663
Tool table entry.
Definition: gcode.h:655
tool_data_t * data
Definition: gcode.h:657
pocket_id_t pocket
Definition: gcode.h:658
const char * name
Definition: gcode.h:656
Definition: vfs.h:95
Definition: nuts_bolts.h:254
Definition: coolant_control.h:27
Coordinate data.
Definition: nuts_bolts.h:297
Definition: gcode.h:541
uint8_t unassigned
Definition: gcode.h:552
uint8_t auto_restore
{M73} NOTE: set in snapshot when saving modal state
Definition: gcode.h:550
uint8_t distance_incremental
{G90,G91}
Definition: gcode.h:545
uint8_t value
Definition: gcode.h:542
uint8_t canned_cycle_active
Definition: gcode.h:548
uint8_t units_imperial
{G20,G21}
Definition: gcode.h:544
uint8_t scaling_active
{G50,G51}
Definition: gcode.h:547
uint8_t diameter_mode
{G7,G8} Lathe diameter mode.
Definition: gcode.h:546
Override flags.
Definition: gcode.h:400
uint16_t reserved2
Definition: gcode.h:418
uint16_t parking
Definition: gcode.h:415
uint16_t spindle_rpm
Definition: gcode.h:412
uint16_t parking_disable
Definition: gcode.h:406
uint16_t feed_hold
Definition: gcode.h:414
uint16_t feed_hold_disable
Definition: gcode.h:405
uint16_t spindle_rpm_disable
Definition: gcode.h:403
uint16_t sync
Definition: gcode.h:409
uint16_t feed_rates
Definition: gcode.h:413
uint16_t reserved
Definition: gcode.h:408
uint16_t reserved1
Definition: gcode.h:417
uint16_t value
Definition: gcode.h:401
uint16_t spindle
Definition: gcode.h:416
uint16_t spindle_wait_disable
Definition: gcode.h:407
uint16_t feed_rates_disable
Definition: gcode.h:404
Parser flags for special cases.
Definition: gcode.h:378
uint16_t set_coolant
Definition: gcode.h:389
uint16_t spindle_force_sync
Definition: gcode.h:386
uint16_t laser_disable
Definition: gcode.h:387
uint16_t canned_cycle_change
Definition: gcode.h:382
uint16_t probe_is_away
Definition: gcode.h:384
uint16_t jog_motion
Definition: gcode.h:381
uint16_t reserved
Definition: gcode.h:395
uint16_t probe_is_no_error
Definition: gcode.h:385
uint16_t laser_is_motion
Definition: gcode.h:388
uint16_t check_mode
Definition: gcode.h:393
uint16_t value
Definition: gcode.h:379
uint16_t motion_mode_changed
Definition: gcode.h:390
uint16_t fs_changed
Definition: gcode.h:394
uint16_t scale_changed
Definition: gcode.h:391
uint16_t spindle_event
Definition: gcode.h:392
uint16_t arc_is_clockwise
Definition: gcode.h:383
Definition: gcode.h:778
uint32_t G8
[G43,G43.1,G49] Tool length offset
Definition: gcode.h:789
uint32_t G0
[G4,G10,G28,G28.1,G30,G30.1,G53,G92,G92.1,G92.2,G92.3] Non-modal
Definition: gcode.h:781
uint32_t G13
[G61] Control mode (15)
Definition: gcode.h:793
uint32_t G16
[G65,G66,G67,M98] Macro call (12)
Definition: gcode.h:796
uint32_t G6
[G20,G21] Units
Definition: gcode.h:787
uint32_t G14
[G96,G97] Spindle Speed Mode (13)
Definition: gcode.h:794
uint32_t M8
[M7,M8,M9] Coolant control
Definition: gcode.h:802
uint32_t G5
[G93,G94,G95] Feed rate mode
Definition: gcode.h:786
uint32_t G4
[G91.1] Arc IJK distance mode
Definition: gcode.h:785
uint32_t G15
[G7,G8] Lathe Diameter Mode
Definition: gcode.h:795
uint32_t M7
[M3,M4,M5] Spindle turning
Definition: gcode.h:801
uint32_t M4
[M0,M1,M2,M30,M99] Stopping
Definition: gcode.h:798
uint32_t G10
[G98,G99] Return mode in canned cycles
Definition: gcode.h:790
uint32_t M10
User defined M commands.
Definition: gcode.h:804
uint32_t M6
[M6] Tool change
Definition: gcode.h:800
uint32_t G11
[G50,G51] Scaling
Definition: gcode.h:791
uint32_t G12
[G54,G55,G56,G57,G58,G59,G59.1,G59.2,G59.3] Coordinate system selection (14)
Definition: gcode.h:792
uint32_t G2
[G17,G18,G19] Plane selection
Definition: gcode.h:783
uint32_t M9
[M49,M50,M51,M53,M56] Override control
Definition: gcode.h:803
uint32_t G3
[G90,G91] Distance mode
Definition: gcode.h:784
uint32_t mask
Definition: gcode.h:779
uint32_t M5
[M62,M63,M64,M65,M66,M67,M68] Aux I/O
Definition: gcode.h:799
uint32_t G7
[G40,G41,G41.1,G42,G42.1] Cutter radius compensation mode. ONLY G40 SUPPORTED.
Definition: gcode.h:788
uint32_t G1
[G0,G1,G2,G3,G33,G33.1,G38.2,G38.3,G38.4,G38.5,G76,G80,G81,G82,G83,G84,G85,G86,G89] Motion
Definition: gcode.h:782
Parameter words found by parser - do NOT change order!
Definition: gcode.h:477
uint32_t a
A-axis or G65 argument.
Definition: gcode.h:482
uint32_t l
Number of repetitions in canned cycles, wait mode for M66.
Definition: gcode.h:493
uint32_t g
Unused (placeholder).
Definition: gcode.h:491
uint32_t b
B-axis or G65 argument.
Definition: gcode.h:483
uint32_t s
Spindle speed.
Definition: gcode.h:500
uint32_t d
Tool radius compensation.
Definition: gcode.h:488
uint32_t n
Line number.
Definition: gcode.h:495
uint32_t h
Tool length offset index.
Definition: gcode.h:492
uint32_t j
Y-axis offset for arcs.
Definition: gcode.h:486
uint32_t i
X-axis offset for arcs.
Definition: gcode.h:485
uint32_t e
Analog port number for M66 - M68.
Definition: gcode.h:489
uint32_t m
G65 argument.
Definition: gcode.h:494
uint32_t o
Subroutine identifier.
Definition: gcode.h:496
uint32_t p
Dwell time for G4 or in canned cycles, port number for M62 - M66.
Definition: gcode.h:497
uint32_t q
Feed increment for G83 canned cycle, tool number for M61, timeout for M66.
Definition: gcode.h:498
uint32_t y
Y-axis.
Definition: gcode.h:506
uint32_t v
V-axis or G65 argument.
Definition: gcode.h:503
uint32_t u
U-axis or G65 argument.
Definition: gcode.h:502
uint32_t x
X-axis.
Definition: gcode.h:505
uint32_t c
C-axis or G65 argument.
Definition: gcode.h:484
uint32_t w
W-axis or G65 argument.
Definition: gcode.h:504
uint32_t mask
All flags as a bitmap.
Definition: gcode.h:478
uint32_t z
Z-axis.
Definition: gcode.h:507
uint32_t k
Z-axis offset for arcs.
Definition: gcode.h:487
uint32_t r
Arc radius, canned cycle retract level.
Definition: gcode.h:499
uint32_t f
Feedrate.
Definition: gcode.h:490
uint32_t value
Synonymous with mask.
Definition: gcode.h:479
uint32_t t
Tool number.
Definition: gcode.h:501
Axis index to plane assignment.
Definition: nuts_bolts.h:399
Definition: nuts_bolts.h:363
Definition: gcode.h:511
uint8_t is_laser_ppi_mode
Definition: gcode.h:515
uint8_t is_rpm_rate_adjusted
Definition: gcode.h:514
uint8_t unassigned
Definition: gcode.h:516
uint8_t value
Definition: gcode.h:512
Definition: spindle_control.h:60