grblHAL core  20250806
ngc_params.h
Go to the documentation of this file.
1 /*
2  ngc_params.h - get/set NGC parameter value by id or name
3 
4  Part of grblHAL
5 
6  Copyright (c) 2021-2025 Terje Io
7 
8  grblHAL is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  grblHAL is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with grblHAL. If not, see <http://www.gnu.org/licenses/>.
20 */
21 
22 /*
23  All predefined parameters defined in NIST RS274NGC version 3 (ref section 3.2.1) are implemented.
24  Most additional predefined parameters defined by LinuxCNC (ref section 5.2.3.1) are implemented.
25  Currently it is not possible to set any parameters or reference them from gcode.
26 */
27 
28 #ifndef _NGC_PARAMS_H_
29 #define _NGC_PARAMS_H_
30 
31 #include "gcode.h"
32 
33 #ifndef NGC_MAX_PARAM_LENGTH
34 #define NGC_MAX_PARAM_LENGTH 30
35 #endif
36 
37 #define NGC_MAX_PARAM_ID 65535
38 
39 typedef uint16_t ngc_param_id_t;
40 typedef uint32_t ngc_string_id_t;
41 
42 typedef struct {
44  float value;
45 } ngc_param_t;
46 
47 typedef enum {
110 
111 typedef enum {
118 
119 void ngc_params_init (void);
120 uint8_t ngc_float_decimals (void);
121 bool ngc_param_get (ngc_param_id_t id, float *value);
122 bool ngc_param_set (ngc_param_id_t id, float value);
125 bool ngc_named_param_get (char *name, float *value);
127 bool ngc_named_param_set (char *name, float value);
128 bool ngc_named_param_exists (char *name);
129 
130 bool ngc_string_param_set (ngc_param_id_t id, char *value);
135 
136 bool ngc_call_push (void *context);
137 bool ngc_call_pop (void);
138 uint_fast8_t ngc_call_level (void);
139 bool ngc_modal_state_save (gc_modal_t *state, bool auto_restore);
140 bool ngc_modal_state_restore (void);
141 void ngc_modal_state_invalidate (void);
142 
143 #endif // _NGC_PARAMS_H_
bool ngc_param_set(ngc_param_id_t id, float value)
Definition: ngc_params.c:320
bool ngc_call_push(void *context)
Definition: ngc_params.c:942
uint8_t ngc_float_decimals(void)
Definition: ngc_params.c:1011
char * ngc_string_param_get(ngc_string_id_t id)
Definition: ngc_params.c:862
void ngc_modal_state_invalidate(void)
Definition: ngc_params.c:927
bool ngc_named_param_get(char *name, float *value)
Definition: ngc_params.c:704
ngc_string_id_t ngc_string_param_set_name(char *name)
Definition: ngc_params.c:884
bool ngc_param_get(ngc_param_id_t id, float *value)
Definition: ngc_params.c:284
bool ngc_call_pop(void)
Definition: ngc_params.c:952
float ngc_named_param_get_by_id(ncg_name_param_id_t id)
Definition: ngc_params.c:422
void ngc_params_init(void)
Definition: ngc_params.c:1147
bool ngc_param_is_rw(ngc_param_id_t id)
Definition: ngc_params.c:310
void ngc_string_param_delete(ngc_string_id_t id)
Definition: ngc_params.c:894
bool ngc_named_param_set(char *name, float value)
Definition: ngc_params.c:744
uint_fast8_t ngc_call_level(void)
Definition: ngc_params.c:1006
uint16_t ngc_param_id_t
Definition: ngc_params.h:39
uint32_t ngc_string_id_t
Definition: ngc_params.h:40
bool ngc_param_exists(ngc_param_id_t id)
Definition: ngc_params.c:315
bool ngc_string_param_set(ngc_param_id_t id, char *value)
Definition: ngc_params.c:879
bool ngc_string_param_exists(ngc_string_id_t id)
Definition: ngc_params.c:874
ncg_name_param_id_t
Definition: ngc_params.h:47
@ NGCParam_c
Definition: ngc_params.h:85
@ NGCParam_motion_mode
Definition: ngc_params.h:51
@ NGCParam_lathe_radius_mode
Definition: ngc_params.h:69
@ NGCParam_coord_system
Definition: ngc_params.h:61
@ NGCParam_lathe_diameter_mode
Definition: ngc_params.h:68
@ NGCParam_selected_pocket
Definition: ngc_params.h:101
@ NGCParam_feed
Definition: ngc_params.h:78
@ NGCParam_toolsetter_state
Definition: ngc_params.h:104
@ NGCParam_spindle_cw
Definition: ngc_params.h:71
@ NGCParam_y
Definition: ngc_params.h:81
@ NGCParam_abs_b
Definition: ngc_params.h:93
@ NGCParam_units_per_minute
Definition: ngc_params.h:59
@ NGCParam_ccomp
Definition: ngc_params.h:53
@ NGCParam_speed_override
Definition: ngc_params.h:74
@ NGCParam_adaptive_feed
Definition: ngc_params.h:76
@ NGCParam_vmajor
Definition: ngc_params.h:48
@ NGCParam_abs_a
Definition: ngc_params.h:92
@ NGCParam_inverse_time
Definition: ngc_params.h:58
@ NGCParam_probe_state
Definition: ngc_params.h:103
@ NGCParam_abs_c
Definition: ngc_params.h:94
@ NGCParam_u
Definition: ngc_params.h:86
@ NGCParam_mist
Definition: ngc_params.h:72
@ NGCParam_flood
Definition: ngc_params.h:73
@ NGCParam_homed_state
Definition: ngc_params.h:105
@ NGCParam_metric
Definition: ngc_params.h:54
@ NGCParam_current_tool
Definition: ngc_params.h:98
@ NGCParam_abs_u
Definition: ngc_params.h:95
@ NGCParam_abs_y
Definition: ngc_params.h:90
@ NGCParam_abs_x
Definition: ngc_params.h:89
@ NGCParam_retract_r_plane
Definition: ngc_params.h:63
@ NGCParam_spindle_on
Definition: ngc_params.h:70
@ NGCParam_abs_w
Definition: ngc_params.h:97
@ NGCParam_imperial
Definition: ngc_params.h:55
@ NGCParam_spindle_rpm_mode
Definition: ngc_params.h:65
@ NGCParam_a
Definition: ngc_params.h:83
@ NGCParam_units_per_rev
Definition: ngc_params.h:60
@ NGCParam_feed_override
Definition: ngc_params.h:75
@ NGCParam_tool_table_size
Definition: ngc_params.h:107
@ NGCParam_Last
Definition: ngc_params.h:108
@ NGCParam_x
Definition: ngc_params.h:80
@ NGCParam_z
Definition: ngc_params.h:82
@ NGCParam_selected_tool
Definition: ngc_params.h:100
@ NGCParam_line
Definition: ngc_params.h:50
@ NGCParam_plane
Definition: ngc_params.h:52
@ NGCParam_ijk_absolute_mode
Definition: ngc_params.h:67
@ NGCParam_call_level
Definition: ngc_params.h:102
@ NGCParam_v
Definition: ngc_params.h:87
@ NGCParam_rpm
Definition: ngc_params.h:79
@ NGCParam_retract_old_z
Definition: ngc_params.h:64
@ NGCParam_homed_axes
Definition: ngc_params.h:106
@ NGCParam_absolute
Definition: ngc_params.h:56
@ NGCParam_current_pocket
Definition: ngc_params.h:99
@ NGCParam_vminor
Definition: ngc_params.h:49
@ NGCParam_w
Definition: ngc_params.h:88
@ NGCParam_abs_v
Definition: ngc_params.h:96
@ NGCParam_incremental
Definition: ngc_params.h:57
@ NGCParam_abs_z
Definition: ngc_params.h:91
@ NGCParam_tool_offset
Definition: ngc_params.h:62
@ NGCParam_feed_hold
Definition: ngc_params.h:77
@ NGCParam_b
Definition: ngc_params.h:84
@ NGCParam_spindle_css_mode
Definition: ngc_params.h:66
bool ngc_modal_state_save(gc_modal_t *state, bool auto_restore)
Definition: ngc_params.c:914
bool ngc_named_param_exists(char *name)
Definition: ngc_params.c:737
g65_inbuilt_t
Definition: ngc_params.h:111
@ G65Macro_ParameterRW
Definition: ngc_params.h:114
@ G65Macro_GetSetting
Definition: ngc_params.h:112
@ G65Macro_SelectProbe
Definition: ngc_params.h:116
@ G65Macro_GetMachineState
Definition: ngc_params.h:115
@ G65Macro_GetToolOffset
Definition: ngc_params.h:113
bool ngc_modal_state_restore(void)
Definition: ngc_params.c:937
Definition: gcode.h:536
Definition: ngc_params.h:42
float value
Definition: ngc_params.h:44
ngc_param_id_t id
Definition: ngc_params.h:43