ed417220e1
- 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.
52 lines
1.6 KiB
C
52 lines
1.6 KiB
C
/*
|
|
print.h - Functions for formatting output strings
|
|
Part of Grbl
|
|
|
|
Copyright (c) 2011-2014 Sungeun K. Jeon
|
|
Copyright (c) 2009-2011 Simen Svale Skogsrud
|
|
|
|
Grbl is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Grbl is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Grbl. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/* This code was initially inspired by the wiring_serial module by David A. Mellis which
|
|
used to be a part of the Arduino project. */
|
|
|
|
#ifndef print_h
|
|
#define print_h
|
|
|
|
void printString(const char *s);
|
|
|
|
void printPgmString(const char *s);
|
|
|
|
void printInteger(long n);
|
|
|
|
void print_uint32_base10(uint32_t n);
|
|
|
|
void print_uint8_base2(uint8_t n);
|
|
|
|
void print_uint8_base10(uint8_t n);
|
|
|
|
void printFloat(float n, uint8_t decimal_places);
|
|
|
|
// Floating value printing handlers for special variables types used in Grbl.
|
|
// - CoordValue: Handles all position or coordinate values in inches or mm reporting.
|
|
// - RateValue: Handles feed rate and current velocity in inches or mm reporting.
|
|
// - SettingValue: Handles all floating point settings values (always in mm.)
|
|
void printFloat_CoordValue(float n);
|
|
|
|
void printFloat_RateValue(float n);
|
|
|
|
void printFloat_SettingValue(float n);
|
|
|
|
#endif |