From 8b76a39d5dfd31cc5e62ac6083118068354a472a Mon Sep 17 00:00:00 2001 From: Sonny Jeon Date: Tue, 18 Oct 2016 22:58:52 -0600 Subject: [PATCH] Improved option for v0.9 GUI compatibility. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Addressed an issue with backward compatibility with Grbl v0.9-style GUIs. - It still may not work due to new data and states coming back from Grbl v1.1. Regardless, DO NOT TRY TO USE THE COMPATIBILITY MODE UNTIL THERE IS A REALLY GOOD REASON TO. - v0.9 GUI compatibility mode will be removed in future versions. You’ve been warned. It’s highly recommended for GUIs to update to the new v1.1 interface. - Compability mode will only fit on an Arduino Uno due to size increases. - Removed the REPORT_GUI_MODE compile option since it’s part of the v1.1 interface standard. - Updated the documentation to better describe the compatibility mode build option. --- doc/csv/build_option_codes_en_US.csv | 2 +- doc/log/commit_log_v1.1.txt | 70 +++++ doc/markdown/interface.md | 2 +- grbl/config.h | 30 +- grbl/grbl.h | 2 +- grbl/report.c | 403 ++++++++++++++------------- grbl/settings.h | 2 +- 7 files changed, 300 insertions(+), 211 deletions(-) diff --git a/doc/csv/build_option_codes_en_US.csv b/doc/csv/build_option_codes_en_US.csv index 8a0a5a5..e53b975 100644 --- a/doc/csv/build_option_codes_en_US.csv +++ b/doc/csv/build_option_codes_en_US.csv @@ -7,7 +7,7 @@ "Z","Homing force origin","Enabled" "H","Homing single axis commands","Enabled" "L","Two limit switches on axis","Enabled" -"R","Classic status reporting","Enabled" +"R","Classic compatibility mode","Enabled" "*","Restore all EEPROM command","Disabled" "$","Restore EEPROM `$` settings command","Disabled" "#","Restore EEPROM parameter data command","Disabled" diff --git a/doc/log/commit_log_v1.1.txt b/doc/log/commit_log_v1.1.txt index 66dfe95..0f07fa3 100644 --- a/doc/log/commit_log_v1.1.txt +++ b/doc/log/commit_log_v1.1.txt @@ -1,3 +1,73 @@ +---------------- +Date: 2016-10-17 +Author: Sonny Jeon +Subject: v1.1d: Tweaked interface a bit. Added realtime spindle speed and build option data. Minor bug fixes. + +- Increment to v1.1d due to interface tweaks. + +- Based on GUI dev feedback, the toggle overrides report was removed +and replace with showing “accessory state”. This shows a character if a +particular accessory is enabled, like the spindle or flood coolant. +These can be directly altered by the toggle overrides, so when they +execute, a GUI will be able to observe the state altering as feedback. + +- Altered the real-time feed rate to show real-time spindle speed as +well. It was an over-sight on my part. It’s needed because it’s hard to +know what the current spindle speed is when overrides are altering it. +Especially during something like a laser cutting job when its important +to know how spindle speed overrides are effecting things. + +- Real-time spindle speed is not shown if VARIABLE_SPINDLE is disabled. +The old real-time feed rate data field will show instead. + +- Compile-time option data is now included in another message +immediately following the build info version string, starting with +`[OPT:`. A character code follows the data type name with each +indicating a particular option enabled or disabled. This will help +immensely with debugging Grbl as well as help GUIs know exactly how +Grbl was compiled. + +- These interface changes are detailed in the updated documentation. + +- Reduced the default planner buffer size from 17 to 16. Needed to free +up some memory… + +- For increasing the serial TX buffer size from 90 to 104 bytes. The +addition of real-time spindle speeds and accessory enable data required +a bigger buffer. This is to ensure Grbl is performing at optimal levels. + +- Refactored parts of the spindle and coolant control code to make it +more consistent to each other and how it was called. It was a little +messy. The changes made it easier to track what each function call was +doing based on what was calling it. + +- Created a couple of new get_state functions for the spindle and +coolant. These are called by the accessory state report to look +directly at the pin state, rather than track how it was set. This +guarantees that the state is reported correctly. + +- Updated the g-code parser, parking motion, sleep mode, and spindle +stop calls to refactored spindle and coolant code. + +- Added a compile-time option to enable homing individual axes, rather +than having only the main homing cycle. The actual use case for this is +pretty rare. It’s not recommended you enable this, unless you have a +specific application for it. Otherwise, just alter the homing cycle +itself. + +- Refactored the printFloat() function to not show a decimal point if +there are no trailing values after it. For example, `1.` now shows `1`. + +- Fixed an issue regarding spindle speed overrides no being applied to +blocks without motions. + +- Removed the toggle_ovr_mask system variable and replaced with +spindle_stop_ovr system variable. Coolant toggles don’t need to be +tracked. + +- Updated README + + ---------------- Date: 2016-10-17 Author: Will Winder diff --git a/doc/markdown/interface.md b/doc/markdown/interface.md index cfba365..ff53853 100644 --- a/doc/markdown/interface.md +++ b/doc/markdown/interface.md @@ -311,7 +311,7 @@ Feedback messages provide non-critical information on what Grbl is doing, what i | **`Z`** | Homing force origin enabled | | **`H`** | Homing single axis enabled | | **`L`** | Two limit switches on axis enabled | -| **`R`** | Classic status reporting enabled | +| **`R`** | Classic compatiblity mode enabled | | **`*`** | Restore all EEPROM disabled | | **`$`** | Restore EEPROM `$` settings disabled | | **`#`** | Restore EEPROM parameter data disabled | diff --git a/grbl/config.h b/grbl/config.h index 2d0be8f..4a49164 100644 --- a/grbl/config.h +++ b/grbl/config.h @@ -260,13 +260,7 @@ // to their default values at program end. #define RESTORE_OVERRIDES_AFTER_PROGRAM_END // Default enabled. Comment to disable. -// Enables minimal reporting feedback mode for GUIs, where human-readable strings are not as important. -// This saves nearly 2KB of flash space and may allow enough space to install other/future features. -// GUIs will need to install a look-up table for the error-codes that Grbl sends back in their place. -// NOTE: This feature is new and experimental. Make sure the GUI you are using supports this mode. -#define REPORT_GUI_MODE // Default enabled. Comment to disable. - -// The status report change for Grbl v1.0 and after also removed the ability to disable/enable most data +// The status report change for Grbl v1.1 and after also removed the ability to disable/enable most data // fields from the report. This caused issues for GUI developers, who've had to manage several scenarios // and configurations. The increased efficiency of the new reporting style allows for all data fields to // be sent without potential performance issues. @@ -293,13 +287,21 @@ #define REPORT_WCO_REFRESH_BUSY_COUNT 30 // (1-255) #define REPORT_WCO_REFRESH_IDLE_COUNT 10 // (1-255) Must be less than or equal to the busy count -// COMPATIBILITY OPTIONS: -// Grbl v1.0 and later altered the formatting of the realtime status reports to make it more consistent -// for parsing with cleaner delimiters and optimized messages. To use Grbl v0.9-style status reporting, -// enable this compile option. This is generally useful if older GUIs require this formatting. -// #define USE_CLASSIC_REALTIME_REPORT -// #define REPORT_ALL_PIN_STATES // Default disabled. Comment to enable. NOTE: Compatible with old-style reports only. -// #define REPORT_REALTIME_RATE // Disabled by default. Uncomment to enable. +// ----- COMPATIBILITY OPTIONS: ------ +// The following options enabled the old-style v0.9 Grbl interface. +// WARNING: DO NOT USE these compatibility options unless there is a really good reason to. If you are +// trying to use Grbl v1.1 with a GUI that supports a v0.9-style interface, it will still not likely work. +// A few things have been added, like override and accessory data and a new sleep state. These things will +// still likely require the GUI to be updated to handle these. In other words, IT WILL STILL NOT WORK! +// IT'S HIGHLY RECOMMENDED FOR GUIs TO UPDATE TO THE NEW INTERFACE FOR v1.1. Don't try to make it +// compatible with this old v0.9 style. It will be dropped in the near future. You have been warned. +// NOTE: The compiled size of Grbl with these options enabled will exceed the flash limit of FTDI-based +// Arduinos, like the Duemilanove and Nano. This will only fit on an Uno with the Optiboot bootloader. +// #define USE_CLASSIC_GRBL_INTERFACE // Default disabled. Uncomment to enable. +// #define REPORT_ALL_PIN_STATES // Default disabled. Uncomment to enable. Option obsolete in v1.1. +// #define REPORT_REALTIME_RATE // Disabled by default. Uncomment to enable. Option obsolete in v1.1. +// Enables minimal reporting feedback mode for GUIs, where human-readable strings are not as important. +// ----------------------------------- // The temporal resolution of the acceleration management subsystem. A higher number gives smoother // acceleration, particularly noticeable on machines that run at very high feedrates, but may negatively diff --git a/grbl/grbl.h b/grbl/grbl.h index ebce2a4..9d4d6e5 100644 --- a/grbl/grbl.h +++ b/grbl/grbl.h @@ -23,7 +23,7 @@ // Grbl versioning system #define GRBL_VERSION "1.1d" -#define GRBL_VERSION_BUILD "20161017" +#define GRBL_VERSION_BUILD "20161018" // Define standard libraries used by Grbl. #include diff --git a/grbl/report.c b/grbl/report.c index ade70ff..7a8a85c 100644 --- a/grbl/report.c +++ b/grbl/report.c @@ -42,65 +42,69 @@ static void report_util_axis_values(float *axis_value) { } } -// static void report_util_setting_string(uint8_t n) { -// serial_write(' '); -// serial_write('('); -// switch(n) { -// case 0: printPgmString(PSTR("stp pulse:us")); break; -// case 1: printPgmString(PSTR("idl delay:ms")); break; -// case 2: printPgmString(PSTR("stp inv:msk")); break; -// case 3: printPgmString(PSTR("dir inv:msk")); break; -// case 4: printPgmString(PSTR("stp enbl inv")); break; -// case 5: printPgmString(PSTR("lim inv")); break; -// case 6: printPgmString(PSTR("prb inv")); break; -// case 10: printPgmString(PSTR("rpt:msk")); break; -// case 11: printPgmString(PSTR("jnc dev:mm")); break; -// case 12: printPgmString(PSTR("arc tol:mm")); break; -// case 13: printPgmString(PSTR("rpt inch")); break; -// case 20: printPgmString(PSTR("sft lim")); break; -// case 21: printPgmString(PSTR("hrd lim")); break; -// case 22: printPgmString(PSTR("hm cyc")); break; -// case 23: printPgmString(PSTR("hm dir inv:msk")); break; -// case 24: printPgmString(PSTR("hm feed:mm/min")); break; -// case 25: printPgmString(PSTR("hm seek:mm/min")); break; -// case 26: printPgmString(PSTR("hm delay:ms")); break; -// case 27: printPgmString(PSTR("hm off:mm")); break; -// case 30: printPgmString(PSTR("rpm max")); break; -// case 31: printPgmString(PSTR("rpm min")); break; -// case 32: printPgmString(PSTR("laser")); break; -// default: -// n -= AXIS_SETTINGS_START_VAL; -// uint8_t idx = 0; -// while (n < 10) { -// if (n<10) { -// print_uint8_base10(n+idx); -// switch (idx) { -// case 0: printPgmString(PSTR(":stp/mm")); break; -// case 1: printPgmString(PSTR(":mm/min")); break; -// case 2: printPgmString(PSTR(":mm/s^2")); break; -// case 3: printPgmString(PSTR(":mm max")); break; -// } -// } else { -// n -= 10; -// idx++; -// } -// } -// } -// report_util_comment_line_feed(); -// } +/* +static void report_util_setting_string(uint8_t n) { + serial_write(' '); + serial_write('('); + switch(n) { + case 0: printPgmString(PSTR("stp pulse:us")); break; + case 1: printPgmString(PSTR("idl delay:ms")); break; + case 2: printPgmString(PSTR("stp inv:msk")); break; + case 3: printPgmString(PSTR("dir inv:msk")); break; + case 4: printPgmString(PSTR("stp enbl inv")); break; + case 5: printPgmString(PSTR("lim inv")); break; + case 6: printPgmString(PSTR("prb inv")); break; + case 10: printPgmString(PSTR("rpt:msk")); break; + case 11: printPgmString(PSTR("jnc dev:mm")); break; + case 12: printPgmString(PSTR("arc tol:mm")); break; + case 13: printPgmString(PSTR("rpt inch")); break; + case 20: printPgmString(PSTR("sft lim")); break; + case 21: printPgmString(PSTR("hrd lim")); break; + case 22: printPgmString(PSTR("hm cyc")); break; + case 23: printPgmString(PSTR("hm dir inv:msk")); break; + case 24: printPgmString(PSTR("hm feed:mm/min")); break; + case 25: printPgmString(PSTR("hm seek:mm/min")); break; + case 26: printPgmString(PSTR("hm delay:ms")); break; + case 27: printPgmString(PSTR("hm off:mm")); break; + case 30: printPgmString(PSTR("rpm max")); break; + case 31: printPgmString(PSTR("rpm min")); break; + case 32: printPgmString(PSTR("laser")); break; + default: + n -= AXIS_SETTINGS_START_VAL; + uint8_t idx = 0; + while (n < 10) { + if (n<10) { + print_uint8_base10(n+idx); + switch (idx) { + case 0: printPgmString(PSTR(":stp/mm")); break; + case 1: printPgmString(PSTR(":mm/min")); break; + case 2: printPgmString(PSTR(":mm/s^2")); break; + case 3: printPgmString(PSTR(":mm max")); break; + } + } else { + n -= 10; + idx++; + } + } + } + report_util_comment_line_feed(); +} +*/ -static void report_util_uint8_setting(uint8_t n, int val) { - report_util_setting_prefix(n); - print_uint8_base10(val); - report_util_line_feed(); -// report_util_setting_string(n); -} -static void report_util_float_setting(uint8_t n, float val, uint8_t n_decimal) { - report_util_setting_prefix(n); - printFloat(val,n_decimal); - report_util_line_feed(); -// report_util_setting_string(n); -} +#ifndef USE_CLASSIC_GRBL_INTERFACE + static void report_util_uint8_setting(uint8_t n, int val) { + report_util_setting_prefix(n); + print_uint8_base10(val); + report_util_line_feed(); + // report_util_setting_string(n); + } + static void report_util_float_setting(uint8_t n, float val, uint8_t n_decimal) { + report_util_setting_prefix(n); + printFloat(val,n_decimal); + report_util_line_feed(); + // report_util_setting_string(n); + } +#endif // Handles the primary confirmation protocol response for streaming interfaces and human-feedback. @@ -116,10 +120,7 @@ void report_status_message(uint8_t status_code) case STATUS_OK: // STATUS_OK printPgmString(PSTR("ok\r\n")); break; default: - #ifdef REPORT_GUI_MODE - printPgmString(PSTR("error:")); - print_uint8_base10(status_code); - #else + #ifdef USE_CLASSIC_GRBL_INTERFACE printPgmString(PSTR("error: ")); switch(status_code) { case STATUS_EXPECTED_COMMAND_LETTER: @@ -168,6 +169,9 @@ void report_status_message(uint8_t status_code) printPgmString(PSTR("Invalid gcode ID:")); print_uint8_base10(status_code); // Print error code for user reference } + #else + printPgmString(PSTR("error:")); + print_uint8_base10(status_code); #endif report_util_line_feed(); } @@ -176,10 +180,7 @@ void report_status_message(uint8_t status_code) // Prints alarm messages. void report_alarm_message(int8_t alarm_code) { - #ifdef REPORT_GUI_MODE - printPgmString(PSTR("ALARM:")); - print_uint8_base10(alarm_code); - #else + #ifdef USE_CLASSIC_GRBL_INTERFACE printPgmString(PSTR("ALARM: ")); switch (alarm_code) { case ALARM_HARD_LIMIT_ERROR: @@ -197,6 +198,9 @@ void report_alarm_message(int8_t alarm_code) case ALARM_HOMING_FAIL_APPROACH: printPgmString(PSTR("Homing fail")); break; } + #else + printPgmString(PSTR("ALARM:")); + print_uint8_base10(alarm_code); #endif report_util_line_feed(); delay_ms(500); // Force delay to ensure message clears serial write buffer. @@ -209,7 +213,11 @@ void report_alarm_message(int8_t alarm_code) // is installed, the message number codes are less than zero. void report_feedback_message(uint8_t message_code) { - printPgmString(PSTR("[MSG:")); + #ifdef USE_CLASSIC_GRBL_INTERFACE + serial_write('['); + #else + printPgmString(PSTR("[MSG:")); + #endif switch(message_code) { case MESSAGE_CRITICAL_EVENT: printPgmString(PSTR("Reset to continue")); break; @@ -246,9 +254,7 @@ void report_init_message() // Grbl help message void report_grbl_help() { - #ifdef REPORT_GUI_MODE - printPgmString(PSTR("[HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H ~ ! ? ctrl-x]\r\n")); - #else + #ifdef USE_CLASSIC_GRBL_INTERFACE printPgmString(PSTR("$$ (view Grbl settings)\r\n" "$# (view # parameters)\r\n" "$G (view parser state)\r\n" @@ -264,7 +270,9 @@ void report_grbl_help() { "~ (cycle start)\r\n" "! (feed hold)\r\n" "? (current status)\r\n" - "ctrl-x (reset Grbl)\r\n")); + "ctrl-x (reset Grbl)\r\n")); + #else + printPgmString(PSTR("[HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H ~ ! ? ctrl-x]\r\n")); #endif } @@ -273,8 +281,66 @@ void report_grbl_help() { // NOTE: The numbering scheme here must correlate to storing in settings.c void report_grbl_settings() { // Print Grbl settings. - #ifdef REPORT_GUI_MODE - + #ifdef USE_CLASSIC_GRBL_INTERFACE + printPgmString(PSTR("$0=")); print_uint8_base10(settings.pulse_microseconds); + printPgmString(PSTR(" (step pulse, usec)\r\n$1=")); print_uint8_base10(settings.stepper_idle_lock_time); + printPgmString(PSTR(" (step idle delay, msec)\r\n$2=")); print_uint8_base10(settings.step_invert_mask); + printPgmString(PSTR(" (step port invert mask)\r\n$3=")); print_uint8_base10(settings.dir_invert_mask); + printPgmString(PSTR(" (dir port invert mask)\r\n$4=")); print_uint8_base10(bit_istrue(settings.flags,BITFLAG_INVERT_ST_ENABLE)); + printPgmString(PSTR(" (step enable invert, bool)\r\n$5=")); print_uint8_base10(bit_istrue(settings.flags,BITFLAG_INVERT_LIMIT_PINS)); + printPgmString(PSTR(" (limit pins invert, bool)\r\n$6=")); print_uint8_base10(bit_istrue(settings.flags,BITFLAG_INVERT_PROBE_PIN)); + printPgmString(PSTR(" (probe pin invert, bool)\r\n$10=")); print_uint8_base10(settings.status_report_mask); + printPgmString(PSTR(" (status report mask)\r\n$11=")); printFloat(settings.junction_deviation,N_DECIMAL_SETTINGVALUE); + printPgmString(PSTR(" (junction deviation, mm)\r\n$12=")); printFloat(settings.arc_tolerance,N_DECIMAL_SETTINGVALUE); + printPgmString(PSTR(" (arc tolerance, mm)\r\n$13=")); print_uint8_base10(bit_istrue(settings.flags,BITFLAG_REPORT_INCHES)); + printPgmString(PSTR(" (report inches, bool)\r\n$20=")); print_uint8_base10(bit_istrue(settings.flags,BITFLAG_SOFT_LIMIT_ENABLE)); + printPgmString(PSTR(" (soft limits, bool)\r\n$21=")); print_uint8_base10(bit_istrue(settings.flags,BITFLAG_HARD_LIMIT_ENABLE)); + printPgmString(PSTR(" (hard limits, bool)\r\n$22=")); print_uint8_base10(bit_istrue(settings.flags,BITFLAG_HOMING_ENABLE)); + printPgmString(PSTR(" (homing cycle, bool)\r\n$23=")); print_uint8_base10(settings.homing_dir_mask); + printPgmString(PSTR(" (homing dir invert mask\r\n$24=")); printFloat(settings.homing_feed_rate,N_DECIMAL_SETTINGVALUE); + printPgmString(PSTR(" (homing feed, mm/min)\r\n$25=")); printFloat(settings.homing_seek_rate,N_DECIMAL_SETTINGVALUE); + printPgmString(PSTR(" (homing seek, mm/min)\r\n$26=")); print_uint8_base10(settings.homing_debounce_delay); + printPgmString(PSTR(" (homing debounce, msec)\r\n$27=")); printFloat(settings.homing_pulloff,N_DECIMAL_SETTINGVALUE); + printPgmString(PSTR(" (homing pull-off, mm)\r\n$30=")); printFloat(settings.rpm_max,N_DECIMAL_RPMVALUE); + printPgmString(PSTR(" (rpm max)\r\n$31=")); printFloat(settings.rpm_min,N_DECIMAL_RPMVALUE); + #ifdef VARIABLE_SPINDLE + printPgmString(PSTR(" (rpm min)\r\n$32=")); print_uint8_base10(bit_istrue(settings.flags,BITFLAG_LASER_MODE)); + printPgmString(PSTR(" (laser mode, bool)\r\n")); + #else + printPgmString(PSTR(" (rpm min)\r\n$32=0 (laser mode, bool)\r\n")); + #endif + // Print axis settings + uint8_t idx, set_idx; + uint8_t val = AXIS_SETTINGS_START_VAL; + for (set_idx=0; set_idx'); - printString(line); - serial_write(':'); - report_status_message(status_code); + #ifdef USE_CLASSIC_GRBL_INTERFACE + printString(line); + report_status_message(status_code); + #else + serial_write('>'); + printString(line); + serial_write(':'); + report_status_message(status_code); + #endif } // Prints build info line void report_build_info(char *line) { - printPgmString(PSTR("[VER:" GRBL_VERSION "." GRBL_VERSION_BUILD ":")); - printString(line); - report_util_feedback_line_feed(); - printPgmString(PSTR("[OPT:")); // Generate compile-time build option list - #ifdef VARIABLE_SPINDLE - serial_write('V'); + #ifdef USE_CLASSIC_GRBL_INTERFACE + printPgmString(PSTR("[" GRBL_VERSION "." GRBL_VERSION_BUILD ":")); + printString(line); + #else + printPgmString(PSTR("[VER:" GRBL_VERSION "." GRBL_VERSION_BUILD ":")); + printString(line); + report_util_feedback_line_feed(); + printPgmString(PSTR("[OPT:")); // Generate compile-time build option list + #ifdef VARIABLE_SPINDLE + serial_write('V'); + #endif + #ifdef USE_LINE_NUMBERS + serial_write('N'); + #endif + #ifdef ENABLE_M7 + serial_write('M'); + #endif + #ifdef COREXY + serial_write('C'); + #endif + #ifdef PARKING_ENABLE + serial_write('P'); + #endif + #ifdef HOMING_FORCE_SET_ORIGIN + serial_write('Z'); + #endif + #ifdef HOMING_SINGLE_AXIS_COMMANDS + serial_write('H'); + #endif + #ifdef LIMITS_TWO_SWITCHES_ON_AXES + serial_write('L'); + #endif + #ifdef USE_CLASSIC_GRBL_INTERFACE + serial_write('R'); + #endif + #ifndef ENABLE_RESTORE_EEPROM_WIPE_ALL // NOTE: Shown when disabled. + serial_write('*'); + #endif + #ifndef ENABLE_RESTORE_EEPROM_DEFAULT_SETTINGS // NOTE: Shown when disabled. + serial_write('$'); + #endif + #ifndef ENABLE_RESTORE_EEPROM_CLEAR_PARAMETERS // NOTE: Shown when disabled. + serial_write('#'); + #endif + #ifndef ENABLE_BUILD_INFO_WRITE_COMMAND // NOTE: Shown when disabled. + serial_write('I'); + #endif + #ifndef FORCE_BUFFER_SYNC_DURING_EEPROM_WRITE // NOTE: Shown when disabled. + serial_write('E'); + #endif + #ifndef FORCE_BUFFER_SYNC_DURING_WCO_CHANGE // NOTE: Shown when disabled. + serial_write('W'); + #endif + // NOTE: Compiled values, like override increments/max/min values, may be added at some point later. + // These will likely have a comma delimiter to separate them. #endif - #ifdef USE_LINE_NUMBERS - serial_write('N'); - #endif - #ifdef ENABLE_M7 - serial_write('M'); - #endif - #ifdef COREXY - serial_write('C'); - #endif - #ifdef PARKING_ENABLE - serial_write('P'); - #endif - #ifdef HOMING_FORCE_SET_ORIGIN - serial_write('Z'); - #endif - #ifdef HOMING_SINGLE_AXIS_COMMANDS - serial_write('H'); - #endif - #ifdef LIMITS_TWO_SWITCHES_ON_AXES - serial_write('L'); - #endif - #ifdef USE_CLASSIC_REALTIME_REPORT - serial_write('R'); - #endif - #ifndef ENABLE_RESTORE_EEPROM_WIPE_ALL // NOTE: Shown when disabled. - serial_write('*'); - #endif - #ifndef ENABLE_RESTORE_EEPROM_DEFAULT_SETTINGS // NOTE: Shown when disabled. - serial_write('$'); - #endif - #ifndef ENABLE_RESTORE_EEPROM_CLEAR_PARAMETERS // NOTE: Shown when disabled. - serial_write('#'); - #endif - #ifndef ENABLE_BUILD_INFO_WRITE_COMMAND // NOTE: Shown when disabled. - serial_write('I'); - #endif - #ifndef FORCE_BUFFER_SYNC_DURING_EEPROM_WRITE // NOTE: Shown when disabled. - serial_write('E'); - #endif - #ifndef FORCE_BUFFER_SYNC_DURING_WCO_CHANGE // NOTE: Shown when disabled. - serial_write('W'); - #endif - - // NOTE: Compiled values, like override increments/max/min values, may be added at some point later. - // These will likely have a comma delimiter to separate them. - + report_util_feedback_line_feed(); } @@ -597,7 +614,7 @@ void report_echo_line_received(char *line) // especially during g-code programs with fast, short line segments and high frequency reports (5-20Hz). void report_realtime_status() { - #ifdef USE_CLASSIC_REALTIME_REPORT + #ifdef USE_CLASSIC_GRBL_INTERFACE uint8_t idx; int32_t current_position[N_AXIS]; // Copy current state of the system position variable diff --git a/grbl/settings.h b/grbl/settings.h index 4c56550..0e5047a 100644 --- a/grbl/settings.h +++ b/grbl/settings.h @@ -40,7 +40,7 @@ #define BITFLAG_INVERT_PROBE_PIN bit(7) // Define status reporting boolean enable bit flags in settings.status_report_mask -#ifdef USE_CLASSIC_REALTIME_REPORT +#ifdef USE_CLASSIC_GRBL_INTERFACE #define BITFLAG_RT_STATUS_MACHINE_POSITION bit(0) #define BITFLAG_RT_STATUS_WORK_POSITION bit(1) #define BITFLAG_RT_STATUS_PLANNER_BUFFER bit(2)