Realtime rate reporting. Updated decimal places.
- Added a new optional compile-time feature for ‘realtime’ (within 50ms) feed rate reporting. When querying for a status report, a new data value will state the current operating rate. It’s only beta at the moment and has some kinks to work out. - Updated the code for printing floating point values to N decimal places. Generalized the main floating point print code to accept a new decimal places value and created a set of handler functions to print certain floating point value types used in Grbl, like position, rates, coordinate offsets, etc. All of these have different decimal requirements and change when printed in mm or inches mode. - Number of decimal places for the different value types can be re-defined in config.h, but there shouldn’t be a need for this, as these are physically limited. - Removed the decimal places settings, as this was now obsoleted by the new decimal places code. - The new decimal places code also saves almost 300kB in flash space, as it’s more efficient.
This commit is contained in:
15
stepper.c
15
stepper.c
@ -821,6 +821,21 @@ void st_prep_buffer()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Called by runtime status reporting to fetch the current speed being executed. This value
|
||||
// however is not exactly the current speed, but the speed computed in the last step segment
|
||||
// in the segment buffer. It will always be behind by up to the number of segment blocks (-1)
|
||||
// divided by the ACCELERATION TICKS PER SECOND in seconds.
|
||||
#ifdef REPORT_REALTIME_RATE
|
||||
float st_get_realtime_rate()
|
||||
{
|
||||
if (sys.state & (STATE_CYCLE | STATE_HOMING)){
|
||||
return prep.current_speed;
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
TODO: With feedrate overrides, increases to the override value will not significantly
|
||||
change the current planner and stepper operation. When the value increases, we simply
|
||||
|
Reference in New Issue
Block a user