core function pointers and data structures definitions. More...
#include "system.h"
#include "stream.h"
#include "alarms.h"
#include "errors.h"
#include "settings.h"
#include "report.h"
#include "planner.h"
#include "machine_limits.h"
#include "vfs.h"
Go to the source code of this file.
Data Structures | |
struct | report_t |
struct | tool_table_t |
struct | user_mcode_ptrs_t |
Optional handlers for user defined M-codes. More... | |
struct | grbl_t |
Typedefs | |
typedef void(* | init_message_ptr) (stream_write_ptr write) |
typedef void(* | help_message_ptr) (void) |
typedef status_code_t(* | status_message_ptr) (status_code_t status_code) |
typedef message_code_t(* | feedback_message_ptr) (message_code_t message_code) |
typedef alarm_code_t(* | alarm_message_ptr) (alarm_code_t alarm_code) |
typedef bool(* | enqueue_gcode_ptr) (char *data) |
typedef bool(* | protocol_enqueue_realtime_command_ptr) (char c) |
typedef bool(* | travel_limits_ptr) (float *target, axes_signals_t axes, bool is_cartesian) |
typedef bool(* | arc_limits_ptr) (coord_data_t *target, coord_data_t *position, point_2d_t center, float radius, plane_t plane, int32_t turns) |
typedef void(* | apply_travel_limits_ptr) (float *target, float *position) |
typedef bool(* | home_machine_ptr) (axes_signals_t cycle, axes_signals_t auto_square) |
typedef void(* | on_parser_init_ptr) (parser_state_t *gc_state) |
typedef void(* | on_state_change_ptr) (sys_state_t state) |
typedef void(* | on_override_changed_ptr) (override_changed_t override) |
typedef void(* | on_spindle_programmed_ptr) (spindle_ptrs_t *spindle, spindle_state_t state, float rpm, spindle_rpm_mode_t mode) |
typedef void(* | on_wco_changed_ptr) (void) |
typedef void(* | on_program_completed_ptr) (program_flow_t program_flow, bool check_mode) |
typedef void(* | on_execute_realtime_ptr) (sys_state_t state) |
typedef void(* | on_unknown_accessory_override_ptr) (uint8_t cmd) |
typedef void(* | on_cycle_start_ptr) (void) |
typedef bool(* | on_unknown_realtime_cmd_ptr) (char c) |
typedef void(* | on_report_handlers_init_ptr) (void) |
typedef void(* | on_report_options_ptr) (bool newopt) |
typedef void(* | on_report_ngc_parameters_ptr) (void) |
typedef void(* | on_report_command_help_ptr) (void) |
typedef const char *(* | on_setting_get_description_ptr) (setting_id_t id) |
typedef void(* | on_global_settings_restore_ptr) (void) |
typedef void(* | on_realtime_report_ptr) (stream_write_ptr stream_write, report_tracking_flags_t report) |
typedef void(* | on_unknown_feedback_message_ptr) (stream_write_ptr stream_write) |
typedef void(* | on_stream_changed_ptr) (stream_type_t type) |
typedef bool(* | on_laser_ppi_enable_ptr) (uint_fast16_t ppi, uint_fast16_t pulse_length) |
typedef void(* | on_homing_rate_set_ptr) (axes_signals_t axes, float rate, homing_mode_t mode) |
typedef void(* | on_homing_completed_ptr) (axes_signals_t cycle, bool success) |
typedef bool(* | on_probe_toolsetter_ptr) (tool_data_t *tool, coord_data_t *position, bool at_g59_3, bool on) |
typedef bool(* | on_probe_start_ptr) (axes_signals_t axes, float *target, plan_line_data_t *pl_data) |
typedef void(* | on_probe_completed_ptr) (void) |
typedef void(* | on_tool_selected_ptr) (tool_data_t *tool) |
typedef void(* | on_tool_changed_ptr) (tool_data_t *tool) |
typedef void(* | on_toolchange_ack_ptr) (void) |
typedef void(* | on_reset_ptr) (void) |
typedef void(* | on_jog_cancel_ptr) (sys_state_t state) |
typedef bool(* | on_spindle_select_ptr) (spindle_ptrs_t *spindle) |
typedef void(* | on_spindle_selected_ptr) (spindle_ptrs_t *spindle) |
typedef char *(* | on_process_gcode_comment_ptr) (char *msg) |
typedef status_code_t(* | on_gcode_message_ptr) (char *msg) |
typedef void(* | on_rt_reports_added_ptr) (report_tracking_flags_t report) |
typedef const char *(* | on_set_axis_setting_unit_ptr) (setting_id_t setting_id, uint_fast8_t axis_idx) |
typedef status_code_t(* | on_file_open_ptr) (const char *fname, vfs_file_t *handle, bool stream) |
typedef status_code_t(* | on_file_end_ptr) (vfs_file_t *handle, status_code_t status) |
typedef status_code_t(* | on_unknown_sys_command_ptr) (sys_state_t state, char *line) |
typedef status_code_t(* | on_user_command_ptr) (char *line) |
typedef sys_commands_t *(* | on_get_commands_ptr) (void) |
typedef status_code_t(* | on_macro_execute_ptr) (macro_id_t macro) |
typedef void(* | on_macro_return_ptr) (void) |
typedef void(* | on_file_demarcate_ptr) (bool start) |
typedef bool(* | write_tool_data_ptr) (tool_data_t *tool_data) |
typedef bool(* | read_tool_data_ptr) (tool_id_t tool_id, tool_data_t *tool_data) |
typedef bool(* | clear_tool_data_ptr) (void) |
typedef user_mcode_type_t(* | user_mcode_check_ptr) (user_mcode_t mcode) |
Pointer to function for checking if user defined M-code is supported. More... | |
typedef status_code_t(* | user_mcode_validate_ptr) (parser_block_t *gc_block) |
Pointer to function for validating parameters for a user defined M-code. More... | |
typedef void(* | user_mcode_execute_ptr) (sys_state_t state, parser_block_t *gc_block) |
Pointer to function for executing a user defined M-code. More... | |
Enumerations | |
enum | override_changed_t { OverrideChanged_FeedRate = 0 , OverrideChanged_RapidRate = 0 , OverrideChanged_SpindleRPM = 0 , OverrideChanged_SpindleState = 0 , OverrideChanged_CoolantState = 0 , OverrideChanged_FanState = 0 } |
enum | user_mcode_type_t { UserMCode_Unsupported = 0 , UserMCode_Normal , UserMCode_NoValueWords } |
Variables | |
grbl_t | grbl |
core function pointers and data structures definitions.
typedef alarm_code_t(* alarm_message_ptr) (alarm_code_t alarm_code) |
typedef void(* apply_travel_limits_ptr) (float *target, float *position) |
typedef bool(* arc_limits_ptr) (coord_data_t *target, coord_data_t *position, point_2d_t center, float radius, plane_t plane, int32_t turns) |
typedef bool(* clear_tool_data_ptr) (void) |
typedef bool(* enqueue_gcode_ptr) (char *data) |
typedef message_code_t(* feedback_message_ptr) (message_code_t message_code) |
typedef void(* help_message_ptr) (void) |
typedef bool(* home_machine_ptr) (axes_signals_t cycle, axes_signals_t auto_square) |
typedef void(* init_message_ptr) (stream_write_ptr write) |
typedef void(* on_cycle_start_ptr) (void) |
typedef void(* on_execute_realtime_ptr) (sys_state_t state) |
typedef void(* on_file_demarcate_ptr) (bool start) |
typedef status_code_t(* on_file_end_ptr) (vfs_file_t *handle, status_code_t status) |
typedef status_code_t(* on_file_open_ptr) (const char *fname, vfs_file_t *handle, bool stream) |
typedef status_code_t(* on_gcode_message_ptr) (char *msg) |
typedef sys_commands_t*(* on_get_commands_ptr) (void) |
typedef void(* on_global_settings_restore_ptr) (void) |
typedef void(* on_homing_completed_ptr) (axes_signals_t cycle, bool success) |
typedef void(* on_homing_rate_set_ptr) (axes_signals_t axes, float rate, homing_mode_t mode) |
typedef void(* on_jog_cancel_ptr) (sys_state_t state) |
typedef bool(* on_laser_ppi_enable_ptr) (uint_fast16_t ppi, uint_fast16_t pulse_length) |
typedef status_code_t(* on_macro_execute_ptr) (macro_id_t macro) |
typedef void(* on_macro_return_ptr) (void) |
typedef void(* on_override_changed_ptr) (override_changed_t override) |
typedef void(* on_parser_init_ptr) (parser_state_t *gc_state) |
typedef void(* on_probe_completed_ptr) (void) |
typedef bool(* on_probe_start_ptr) (axes_signals_t axes, float *target, plan_line_data_t *pl_data) |
typedef bool(* on_probe_toolsetter_ptr) (tool_data_t *tool, coord_data_t *position, bool at_g59_3, bool on) |
typedef char*(* on_process_gcode_comment_ptr) (char *msg) |
typedef void(* on_program_completed_ptr) (program_flow_t program_flow, bool check_mode) |
typedef void(* on_realtime_report_ptr) (stream_write_ptr stream_write, report_tracking_flags_t report) |
typedef void(* on_report_command_help_ptr) (void) |
typedef void(* on_report_handlers_init_ptr) (void) |
typedef void(* on_report_ngc_parameters_ptr) (void) |
typedef void(* on_report_options_ptr) (bool newopt) |
typedef void(* on_reset_ptr) (void) |
typedef void(* on_rt_reports_added_ptr) (report_tracking_flags_t report) |
typedef const char*(* on_set_axis_setting_unit_ptr) (setting_id_t setting_id, uint_fast8_t axis_idx) |
typedef const char*(* on_setting_get_description_ptr) (setting_id_t id) |
typedef void(* on_spindle_programmed_ptr) (spindle_ptrs_t *spindle, spindle_state_t state, float rpm, spindle_rpm_mode_t mode) |
typedef bool(* on_spindle_select_ptr) (spindle_ptrs_t *spindle) |
typedef void(* on_spindle_selected_ptr) (spindle_ptrs_t *spindle) |
typedef void(* on_state_change_ptr) (sys_state_t state) |
typedef void(* on_stream_changed_ptr) (stream_type_t type) |
typedef void(* on_tool_changed_ptr) (tool_data_t *tool) |
typedef void(* on_tool_selected_ptr) (tool_data_t *tool) |
typedef void(* on_toolchange_ack_ptr) (void) |
typedef void(* on_unknown_accessory_override_ptr) (uint8_t cmd) |
typedef void(* on_unknown_feedback_message_ptr) (stream_write_ptr stream_write) |
typedef bool(* on_unknown_realtime_cmd_ptr) (char c) |
typedef status_code_t(* on_unknown_sys_command_ptr) (sys_state_t state, char *line) |
typedef status_code_t(* on_user_command_ptr) (char *line) |
typedef void(* on_wco_changed_ptr) (void) |
typedef bool(* protocol_enqueue_realtime_command_ptr) (char c) |
typedef bool(* read_tool_data_ptr) (tool_id_t tool_id, tool_data_t *tool_data) |
typedef status_code_t(* status_message_ptr) (status_code_t status_code) |
typedef bool(* travel_limits_ptr) (float *target, axes_signals_t axes, bool is_cartesian) |
typedef user_mcode_type_t(* user_mcode_check_ptr) (user_mcode_t mcode) |
Pointer to function for checking if user defined M-code is supported.
mcode | as a user_mcode_t enum. |
typedef void(* user_mcode_execute_ptr) (sys_state_t state, parser_block_t *gc_block) |
Pointer to function for executing a user defined M-code.
The M-code to execute is found in gc_block->user_mcode, parameter values in gc_block->values and claimed/validated parameter letters in the gc_block->words bitfield union.
state | as a sys_state_t variable. |
gc_block | pointer to a parser_block_t structure. |
typedef status_code_t(* user_mcode_validate_ptr) (parser_block_t *gc_block) |
Pointer to function for validating parameters for a user defined M-code.
The M-code to validate is found in gc_block->user_mcode, parameter values in gc_block->values and corresponding parameter letters in the gc_block->words bitfield union.
Parameter values claimed by the M-code must be flagged in the gc_block->words bitfield union by setting the respective parameter letters to false or the parser will raise the Status_GcodeUnusedWords error.
The validation function may set gc_block->user_mcode_sync to true if it is to be executed after all buffered motions are completed, otherwise it will be executed immediately.
NOTE: Valueless parameter letters are allowed for floats if the check function returns UserMCode_NoValueWords for the M-code. The corresponding values are set to NAN (not a number) if no value is given. The validation function should always test all parameter values by using the isnan() function in addition to any range checks when the check function returns UserMCode_NoValueWords for the M-code.
gc_block | pointer to a parser_block_t structure. |
typedef bool(* write_tool_data_ptr) (tool_data_t *tool_data) |
enum override_changed_t |
enum user_mcode_type_t |
|
extern |