Tool number bug fix. Updated documentation.
- [fix] Tool numbers were not being tracked and reported correctly. Now shows tool number values in $G when programmed. - [fix] Added a max tool number value check to the g-code parser. - [doc] Added a new error code for invalid tool number. Updated CSV and interface documents. - [doc] Added a implementation note for buffer state in status reports. Don’t rely on this data for streaming.
This commit is contained in:
@ -98,7 +98,7 @@
|
||||
#define COOLANT_FLOOD_BIT 3 // Uno Analog Pin 3
|
||||
#define COOLANT_MIST_DDR DDRC
|
||||
#define COOLANT_MIST_PORT PORTC
|
||||
#define COOLANT_MIST_BIT 4 // Uno Analog Pin 3
|
||||
#define COOLANT_MIST_BIT 4 // Uno Analog Pin 4
|
||||
|
||||
// Define user-control controls (cycle start, reset, feed hold) input pins.
|
||||
// NOTE: All CONTROLs pins must be on the same port and not on a port with other input pins (limits).
|
||||
|
@ -25,6 +25,7 @@
|
||||
// arbitrary value, and some GUIs may require more. So we increased it based on a max safe
|
||||
// value when converting a float (7.2 digit precision)s to an integer.
|
||||
#define MAX_LINE_NUMBER 10000000
|
||||
#define MAX_TOOL_NUMBER 255 // Limited by max unsigned 8-bit value
|
||||
|
||||
#define AXIS_COMMAND_NONE 0
|
||||
#define AXIS_COMMAND_NON_MODAL 1
|
||||
@ -310,7 +311,10 @@ uint8_t gc_execute_line(char *line)
|
||||
// case 'Q': // Not supported
|
||||
case 'R': word_bit = WORD_R; gc_block.values.r = value; break;
|
||||
case 'S': word_bit = WORD_S; gc_block.values.s = value; break;
|
||||
case 'T': word_bit = WORD_T; break; // gc.values.t = int_value;
|
||||
case 'T': word_bit = WORD_T;
|
||||
if (value > MAX_TOOL_NUMBER) { FAIL(STATUS_GCODE_MAX_VALUE_EXCEEDED); }
|
||||
gc_block.values.t = int_value;
|
||||
break;
|
||||
case 'X': word_bit = WORD_X; gc_block.values.xyz[X_AXIS] = value; axis_words |= (1<<X_AXIS); break;
|
||||
case 'Y': word_bit = WORD_Y; gc_block.values.xyz[Y_AXIS] = value; axis_words |= (1<<Y_AXIS); break;
|
||||
case 'Z': word_bit = WORD_Z; gc_block.values.xyz[Z_AXIS] = value; axis_words |= (1<<Z_AXIS); break;
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
// Grbl versioning system
|
||||
#define GRBL_VERSION "1.1e"
|
||||
#define GRBL_VERSION_BUILD "20170103"
|
||||
#define GRBL_VERSION_BUILD "20170114"
|
||||
|
||||
// Define standard libraries used by Grbl.
|
||||
#include <avr/io.h>
|
||||
|
@ -57,6 +57,7 @@
|
||||
#define STATUS_GCODE_NO_OFFSETS_IN_PLANE 35
|
||||
#define STATUS_GCODE_UNUSED_WORDS 36
|
||||
#define STATUS_GCODE_G43_DYNAMIC_AXIS_ERROR 37
|
||||
#define STATUS_GCODE_MAX_VALUE_EXCEEDED 38
|
||||
|
||||
// Define Grbl alarm codes. Valid values (1-255). 0 is reserved.
|
||||
#define ALARM_HARD_LIMIT_ERROR EXEC_ALARM_HARD_LIMIT
|
||||
|
Reference in New Issue
Block a user