forked from MarlinFirmware/Marlin
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ECHO outputs serial data with "echo:" attached in front of it. This allows you to send data to replicatorg witout causing error messages. Debugging level needs to be set to "INFO" in repg. Using the streaming lib, messages can be sent like this: ECHO ("Maximum feedrate "<<_FLOAT(max_feedrate,2)) will output "echo: Maximum feedrate 300.00" ECHOLN(x) is the same as ECHO, but adds a linebreak after.
- Loading branch information
Showing
4 changed files
with
109 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
|
||
|
||
#ifndef CONFIGURATION_H | ||
#define CONFIGURATION_H | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
/* | ||
Streaming.h - Arduino library for supporting the << streaming operator | ||
Copyright (c) 2010 Mikal Hart. All rights reserved. | ||
This library is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU Lesser General Public | ||
License as published by the Free Software Foundation; either | ||
version 2.1 of the License, or (at your option) any later version. | ||
This library 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 | ||
Lesser General Public License for more details. | ||
You should have received a copy of the GNU Lesser General Public | ||
License along with this library; if not, write to the Free Software | ||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
*/ | ||
|
||
#ifndef ARDUINO_STREAMING | ||
#define ARDUINO_STREAMING | ||
|
||
//#include <WProgram.h> | ||
|
||
#define STREAMING_LIBRARY_VERSION 4 | ||
|
||
// Generic template | ||
template<class T> | ||
inline Print &operator <<(Print &stream, T arg) | ||
{ stream.print(arg); return stream; } | ||
|
||
struct _BASED | ||
{ | ||
long val; | ||
int base; | ||
_BASED(long v, int b): val(v), base(b) | ||
{} | ||
}; | ||
|
||
#define _HEX(a) _BASED(a, HEX) | ||
#define _DEC(a) _BASED(a, DEC) | ||
#define _OCT(a) _BASED(a, OCT) | ||
#define _BIN(a) _BASED(a, BIN) | ||
#define _BYTE(a) _BASED(a, BYTE) | ||
|
||
// Specialization for class _BASED | ||
// Thanks to Arduino forum user Ben Combee who suggested this | ||
// clever technique to allow for expressions like | ||
// Serial << _HEX(a); | ||
|
||
inline Print &operator <<(Print &obj, const _BASED &arg) | ||
{ obj.print(arg.val, arg.base); return obj; } | ||
|
||
#if ARDUINO >= 18 | ||
// Specialization for class _FLOAT | ||
// Thanks to Michael Margolis for suggesting a way | ||
// to accommodate Arduino 0018's floating point precision | ||
// feature like this: | ||
// Serial << _FLOAT(gps_latitude, 6); // 6 digits of precision | ||
|
||
struct _FLOAT | ||
{ | ||
float val; | ||
int digits; | ||
_FLOAT(double v, int d): val(v), digits(d) | ||
{} | ||
}; | ||
|
||
inline Print &operator <<(Print &obj, const _FLOAT &arg) | ||
{ obj.print(arg.val, arg.digits); return obj; } | ||
#endif | ||
|
||
// Specialization for enum _EndLineCode | ||
// Thanks to Arduino forum user Paul V. who suggested this | ||
// clever technique to allow for expressions like | ||
// Serial << "Hello!" << endl; | ||
|
||
enum _EndLineCode { endl }; | ||
|
||
inline Print &operator <<(Print &obj, _EndLineCode arg) | ||
{ obj.println(); return obj; } | ||
|
||
#endif | ||
|