1
0
mirror of https://github.com/bdring/Grbl_Esp32.git synced 2025-09-03 03:13:25 +02:00

Added $+ command to show extended $$ setting

If you don't have SHOW_EXTENDED_SETTING defined, you can see those settings by sending $+
This commit is contained in:
bdring
2020-01-15 08:02:03 -06:00
parent b33ced4094
commit cc78ba3afa
6 changed files with 33 additions and 25 deletions

View File

@@ -20,7 +20,7 @@
// Grbl versioning system
#define GRBL_VERSION "1.1f"
#define GRBL_VERSION_BUILD "20200114"
#define GRBL_VERSION_BUILD "20200115"
//#include <sdkconfig.h>
#include <Arduino.h>

View File

@@ -275,16 +275,23 @@ void report_init_message(uint8_t client)
// Grbl help message
void report_grbl_help(uint8_t client) {
grbl_send(client,"[HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H $F ~ ! ? ctrl-x]\r\n");
grbl_send(client,"[HLP:$$ $+ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H $F ~ ! ? ctrl-x]\r\n");
}
// Grbl global settings print out.
// NOTE: The numbering scheme here must correlate to storing in settings.c
void report_grbl_settings(uint8_t client) {
// Extended setting will be displayed if force_extended is true or #ifdef SHOW_EXTENDED_SETTINGS
void report_grbl_settings(uint8_t client, uint8_t show_extended) {
// Print Grbl settings.
char setting[20];
char rpt[1000];
char rpt[1000];
#ifdef SHOW_EXTENDED_SETTINGS
show_extended = true;
#endif
grbl_sendf(CLIENT_SERIAL, "[MSG:Extended %d]\r\n", show_extended);
rpt[0] = '\0';
@@ -322,7 +329,7 @@ void report_grbl_settings(uint8_t client) {
strcat(rpt, "$32=0\r\n");
#endif
#ifdef SHOW_EXTENDED_SETTINGS
if (show_extended) {
sprintf(setting, "$33=%5.3f\r\n", settings.spindle_pwm_freq); strcat(rpt, setting);
sprintf(setting, "$34=%3.3f\r\n", settings.spindle_pwm_off_value); strcat(rpt, setting);
sprintf(setting, "$35=%3.3f\r\n", settings.spindle_pwm_min_value); strcat(rpt, setting);
@@ -334,9 +341,8 @@ void report_grbl_settings(uint8_t client) {
for (uint8_t index = 0; index<USER_SETTING_COUNT; index++) {
sprintf(setting, "$%d=%5.3f\r\n", 90 + index, settings.machine_float[index]); strcat(rpt, setting);
}
#endif
}
}
// Print axis settings
uint8_t idx, set_idx;
@@ -348,12 +354,12 @@ void report_grbl_settings(uint8_t client) {
case 1: sprintf(setting, "$%d=%4.3f\r\n", val+idx, settings.max_rate[idx]); strcat(rpt, setting); break;
case 2: sprintf(setting, "$%d=%4.3f\r\n", val+idx, settings.acceleration[idx]/(60*60)); strcat(rpt, setting); break;
case 3: sprintf(setting, "$%d=%4.3f\r\n", val+idx, -settings.max_travel[idx]); strcat(rpt, setting); break;
#ifdef SHOW_EXTENDED_SETTINGS
case 4: sprintf(setting, "$%d=%4.3f\r\n", val+idx, settings.current[idx]); strcat(rpt, setting); break;
case 5: sprintf(setting, "$%d=%4.3f\r\n", val+idx, settings.hold_current[idx]); strcat(rpt, setting); break;
case 6: sprintf(setting, "$%d=%d\r\n", val+idx, settings.microsteps[idx]); strcat(rpt, setting); break;
case 7: sprintf(setting, "$%d=%d\r\n", val+idx, settings.stallguard[idx]); strcat(rpt, setting); break;
#endif
case 4: if (show_extended) {sprintf(setting, "$%d=%4.3f\r\n", val+idx, settings.current[idx]); strcat(rpt, setting);} break;
case 5: if (show_extended) {sprintf(setting, "$%d=%4.3f\r\n", val+idx, settings.hold_current[idx]); strcat(rpt, setting);} break;
case 6: if (show_extended) {sprintf(setting, "$%d=%d\r\n", val+idx, settings.microsteps[idx]); strcat(rpt, setting);} break;
case 7: if (show_extended) {sprintf(setting, "$%d=%d\r\n", val+idx, settings.stallguard[idx]); strcat(rpt, setting);} break;
}
}
val += AXIS_SETTINGS_INCREMENT;

View File

@@ -132,7 +132,7 @@ void report_init_message(uint8_t client);
void report_grbl_help(uint8_t client);
// Prints Grbl global settings
void report_grbl_settings(uint8_t client);
void report_grbl_settings(uint8_t client, uint8_t show_extended);
// Prints an echo of the pre-parsed line received right before execution.
void report_echo_line_received(char *line, uint8_t client);

View File

@@ -43,7 +43,7 @@ void settings_init()
if(!read_global_settings()) {
report_status_message(STATUS_SETTING_READ_FAIL, CLIENT_SERIAL);
settings_restore(SETTINGS_RESTORE_ALL); // Force restore all EEPROM data.
report_grbl_settings(CLIENT_SERIAL); // only the serial could be working at this point
report_grbl_settings(CLIENT_SERIAL, false); // only the serial could be working at this point
}
}

View File

@@ -75,11 +75,8 @@
// #define SETTING_INDEX_G92 N_COORDINATE_SYSTEM+2 // Coordinate offset (G92.2,G92.3 not supported)
// Define Grbl axis settings numbering scheme. Starts at START_VAL, every INCREMENT, over N_SETTINGS.
#ifndef SHOW_EXTENDED_SETTINGS
#define AXIS_N_SETTINGS 4
#else
#define AXIS_N_SETTINGS 8
#endif
#define AXIS_N_SETTINGS 8 // includes extended settings
#define AXIS_SETTINGS_START_VAL 100 // NOTE: Reserving settings values >= 100 for axis settings. Up to 255.
#define AXIS_SETTINGS_INCREMENT 10 // Must be greater than the number of axis settings

View File

@@ -183,13 +183,18 @@ uint8_t system_execute_line(char *line, uint8_t client)
if(line[2] != '=') { return(STATUS_INVALID_STATEMENT); }
return(gc_execute_line(line, client)); // NOTE: $J= is ignored inside g-code parser and used to detect jog motions.
break;
case '$': case 'G': case 'C': case 'X':
case '$': case 'G': case 'C': case 'X': case '+':
if ( line[2] != 0 ) { return(STATUS_INVALID_STATEMENT); }
switch( line[1] ) {
case '$' : // Prints Grbl settings
case '$': case '+' : // Prints Grbl settings
if ( sys.state & (STATE_CYCLE | STATE_HOLD) ) { return(STATUS_IDLE_ERROR); } // Block during cycle. Takes too long to print.
else { report_grbl_settings(client); }
break;
else {
if (line[1] == '$')
report_grbl_settings(client, false); // entended settings depend on SHOW_EXTENDED_SETTINGS
else
report_grbl_settings(client, true); // force display of extended settings
}
break;
case 'G' : // Prints gcode parser state
// TODO: Move this to realtime commands for GUIs to request this data during suspend-state.
report_gcode_modes(client);