-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
84 changed files
with
5,363 additions
and
1 deletion.
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 +1 @@ | ||
#include <ArduinoJson.hpp> | ||
#include "../../../../third_party/ArduinoJson5/ArduinoJson.hpp" |
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,17 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
#ifdef __cplusplus | ||
|
||
#include "ArduinoJson.hpp" | ||
|
||
using namespace ArduinoJson; | ||
|
||
#else | ||
|
||
#error ArduinoJson requires a C++ compiler, please change file extension to .cc or .cpp | ||
|
||
#endif |
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,21 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
#include "ArduinoJson/version.hpp" | ||
|
||
#include "ArduinoJson/DynamicJsonBuffer.hpp" | ||
#include "ArduinoJson/JsonArray.hpp" | ||
#include "ArduinoJson/JsonObject.hpp" | ||
#include "ArduinoJson/StaticJsonBuffer.hpp" | ||
|
||
#include "ArduinoJson/Deserialization/JsonParserImpl.hpp" | ||
#include "ArduinoJson/JsonArrayImpl.hpp" | ||
#include "ArduinoJson/JsonBufferImpl.hpp" | ||
#include "ArduinoJson/JsonObjectImpl.hpp" | ||
#include "ArduinoJson/JsonVariantImpl.hpp" | ||
#include "ArduinoJson/Serialization/JsonSerializerImpl.hpp" | ||
|
||
#include "ArduinoJson/compatibility.hpp" |
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,151 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
// Small or big machine? | ||
#ifndef ARDUINOJSON_EMBEDDED_MODE | ||
#if defined(ARDUINO) || defined(__IAR_SYSTEMS_ICC__) || defined(__XC) || \ | ||
defined(__ARMCC_VERSION) | ||
#define ARDUINOJSON_EMBEDDED_MODE 1 | ||
#else | ||
#define ARDUINOJSON_EMBEDDED_MODE 0 | ||
#endif | ||
#endif | ||
|
||
#if ARDUINOJSON_EMBEDDED_MODE | ||
|
||
// Store floats by default to reduce the memory usage (issue #134) | ||
#ifndef ARDUINOJSON_USE_DOUBLE | ||
#define ARDUINOJSON_USE_DOUBLE 0 | ||
#endif | ||
|
||
// Store longs by default, because they usually match the size of a float. | ||
#ifndef ARDUINOJSON_USE_LONG_LONG | ||
#define ARDUINOJSON_USE_LONG_LONG 0 | ||
#endif | ||
#ifndef ARDUINOJSON_USE_INT64 | ||
#define ARDUINOJSON_USE_INT64 0 | ||
#endif | ||
|
||
// Embedded systems usually don't have std::string | ||
#ifndef ARDUINOJSON_ENABLE_STD_STRING | ||
#define ARDUINOJSON_ENABLE_STD_STRING 0 | ||
#endif | ||
|
||
// Embedded systems usually don't have std::stream | ||
#ifndef ARDUINOJSON_ENABLE_STD_STREAM | ||
#define ARDUINOJSON_ENABLE_STD_STREAM 0 | ||
#endif | ||
|
||
// Limit nesting as the stack is likely to be small | ||
#ifndef ARDUINOJSON_DEFAULT_NESTING_LIMIT | ||
#define ARDUINOJSON_DEFAULT_NESTING_LIMIT 10 | ||
#endif | ||
|
||
#else // ARDUINOJSON_EMBEDDED_MODE | ||
|
||
// On a computer we have plenty of memory so we can use doubles | ||
#ifndef ARDUINOJSON_USE_DOUBLE | ||
#define ARDUINOJSON_USE_DOUBLE 1 | ||
#endif | ||
|
||
// Use long long when available | ||
#ifndef ARDUINOJSON_USE_LONG_LONG | ||
#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800) | ||
#define ARDUINOJSON_USE_LONG_LONG 1 | ||
#else | ||
#define ARDUINOJSON_USE_LONG_LONG 0 | ||
#endif | ||
#endif | ||
|
||
// Use _int64 on old versions of Visual Studio | ||
#ifndef ARDUINOJSON_USE_INT64 | ||
#if defined(_MSC_VER) && _MSC_VER <= 1700 | ||
#define ARDUINOJSON_USE_INT64 1 | ||
#else | ||
#define ARDUINOJSON_USE_INT64 0 | ||
#endif | ||
#endif | ||
|
||
// On a computer, we can use std::string | ||
#ifndef ARDUINOJSON_ENABLE_STD_STRING | ||
#define ARDUINOJSON_ENABLE_STD_STRING 1 | ||
#endif | ||
|
||
// On a computer, we can assume std::stream | ||
#ifndef ARDUINOJSON_ENABLE_STD_STREAM | ||
#define ARDUINOJSON_ENABLE_STD_STREAM 1 | ||
#endif | ||
|
||
// On a computer, the stack is large so we can increase nesting limit | ||
#ifndef ARDUINOJSON_DEFAULT_NESTING_LIMIT | ||
#define ARDUINOJSON_DEFAULT_NESTING_LIMIT 50 | ||
#endif | ||
|
||
#endif // ARDUINOJSON_EMBEDDED_MODE | ||
|
||
#ifdef ARDUINO | ||
|
||
// Enable support for Arduino String | ||
#ifndef ARDUINOJSON_ENABLE_ARDUINO_STRING | ||
#define ARDUINOJSON_ENABLE_ARDUINO_STRING 1 | ||
#endif | ||
|
||
// Enable support for Arduino Stream | ||
#ifndef ARDUINOJSON_ENABLE_ARDUINO_STREAM | ||
#define ARDUINOJSON_ENABLE_ARDUINO_STREAM 1 | ||
#endif | ||
|
||
#else // ARDUINO | ||
|
||
// Disable support for Arduino String | ||
#ifndef ARDUINOJSON_ENABLE_ARDUINO_STRING | ||
#define ARDUINOJSON_ENABLE_ARDUINO_STRING 0 | ||
#endif | ||
|
||
// Disable support for Arduino Stream | ||
#ifndef ARDUINOJSON_ENABLE_ARDUINO_STREAM | ||
#define ARDUINOJSON_ENABLE_ARDUINO_STREAM 0 | ||
#endif | ||
|
||
#endif // ARDUINO | ||
|
||
#ifndef ARDUINOJSON_ENABLE_PROGMEM | ||
#ifdef PROGMEM | ||
#define ARDUINOJSON_ENABLE_PROGMEM 1 | ||
#else | ||
#define ARDUINOJSON_ENABLE_PROGMEM 0 | ||
#endif | ||
#endif | ||
|
||
#ifndef ARDUINOJSON_ENABLE_ALIGNMENT | ||
#ifdef ARDUINO_ARCH_AVR | ||
// alignment isn't needed for 8-bit AVR | ||
#define ARDUINOJSON_ENABLE_ALIGNMENT 0 | ||
#else | ||
// but most processors need pointers to be align on word size | ||
#define ARDUINOJSON_ENABLE_ALIGNMENT 1 | ||
#endif | ||
#endif | ||
|
||
// Enable deprecated functions by default | ||
#ifndef ARDUINOJSON_ENABLE_DEPRECATED | ||
#define ARDUINOJSON_ENABLE_DEPRECATED 1 | ||
#endif | ||
|
||
// Control the exponentiation threshold for big numbers | ||
// CAUTION: cannot be more that 1e9 !!!! | ||
#ifndef ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD | ||
#define ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD 1e7 | ||
#endif | ||
|
||
// Control the exponentiation threshold for small numbers | ||
#ifndef ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD | ||
#define ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD 1e-5 | ||
#endif | ||
|
||
#if ARDUINOJSON_USE_LONG_LONG && ARDUINOJSON_USE_INT64 | ||
#error ARDUINOJSON_USE_LONG_LONG and ARDUINOJSON_USE_INT64 cannot be set together | ||
#endif |
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,37 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
namespace ArduinoJson { | ||
namespace Internals { | ||
|
||
class Encoding { | ||
public: | ||
// Optimized for code size on a 8-bit AVR | ||
static char escapeChar(char c) { | ||
const char *p = escapeTable(false); | ||
while (p[0] && p[1] != c) { | ||
p += 2; | ||
} | ||
return p[0]; | ||
} | ||
|
||
// Optimized for code size on a 8-bit AVR | ||
static char unescapeChar(char c) { | ||
const char *p = escapeTable(true); | ||
for (;;) { | ||
if (p[0] == '\0') return c; | ||
if (p[0] == c) return p[1]; | ||
p += 2; | ||
} | ||
} | ||
|
||
private: | ||
static const char *escapeTable(bool excludeIdenticals) { | ||
return &"\"\"\\\\b\bf\fn\nr\rt\t"[excludeIdenticals ? 4 : 0]; | ||
} | ||
}; | ||
} // namespace Internals | ||
} // namespace ArduinoJson |
22 changes: 22 additions & 0 deletions
22
third_party/ArduinoJson5/ArduinoJson/Data/JsonBufferAllocated.hpp
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,22 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
#include "../JsonBuffer.hpp" | ||
|
||
namespace ArduinoJson { | ||
namespace Internals { | ||
|
||
class JsonBufferAllocated { | ||
public: | ||
void *operator new(size_t n, JsonBuffer *jsonBuffer) throw() { | ||
if (!jsonBuffer) return NULL; | ||
return jsonBuffer->alloc(n); | ||
} | ||
|
||
void operator delete(void *, JsonBuffer *)throw(); | ||
}; | ||
} // namespace Internals | ||
} // namespace ArduinoJson |
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,18 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
#include "../Configuration.hpp" | ||
|
||
namespace ArduinoJson { | ||
namespace Internals { | ||
|
||
#if ARDUINOJSON_USE_DOUBLE | ||
typedef double JsonFloat; | ||
#else | ||
typedef float JsonFloat; | ||
#endif | ||
} // namespace Internals | ||
} // namespace ArduinoJson |
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,23 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
#include "../Configuration.hpp" | ||
|
||
namespace ArduinoJson { | ||
namespace Internals { | ||
|
||
#if ARDUINOJSON_USE_LONG_LONG | ||
typedef long long JsonInteger; | ||
typedef unsigned long long JsonUInt; | ||
#elif ARDUINOJSON_USE_INT64 | ||
typedef __int64 JsonInteger; | ||
typedef unsigned _int64 JsonUInt; | ||
#else | ||
typedef long JsonInteger; | ||
typedef unsigned long JsonUInt; | ||
#endif | ||
} // namespace Internals | ||
} // namespace ArduinoJson |
42 changes: 42 additions & 0 deletions
42
third_party/ArduinoJson5/ArduinoJson/Data/JsonVariantAs.hpp
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,42 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
namespace ArduinoJson { | ||
namespace Internals { | ||
|
||
// A metafunction that returns the type of the value returned by | ||
// JsonVariant::as<T>() | ||
template <typename T> | ||
struct JsonVariantAs { | ||
typedef T type; | ||
}; | ||
|
||
template <> | ||
struct JsonVariantAs<char*> { | ||
typedef const char* type; | ||
}; | ||
|
||
template <> | ||
struct JsonVariantAs<JsonArray> { | ||
typedef JsonArray& type; | ||
}; | ||
|
||
template <> | ||
struct JsonVariantAs<const JsonArray> { | ||
typedef const JsonArray& type; | ||
}; | ||
|
||
template <> | ||
struct JsonVariantAs<JsonObject> { | ||
typedef JsonObject& type; | ||
}; | ||
|
||
template <> | ||
struct JsonVariantAs<const JsonObject> { | ||
typedef const JsonObject& type; | ||
}; | ||
} // namespace Internals | ||
} // namespace ArduinoJson |
27 changes: 27 additions & 0 deletions
27
third_party/ArduinoJson5/ArduinoJson/Data/JsonVariantContent.hpp
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,27 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
#include "JsonFloat.hpp" | ||
#include "JsonInteger.hpp" | ||
|
||
namespace ArduinoJson { | ||
|
||
// Forward declarations | ||
class JsonArray; | ||
class JsonObject; | ||
|
||
namespace Internals { | ||
// A union that defines the actual content of a JsonVariant. | ||
// The enum JsonVariantType determines which member is in use. | ||
union JsonVariantContent { | ||
JsonFloat asFloat; // used for double and float | ||
JsonUInt asInteger; // used for bool, char, short, int and longs | ||
const char* asString; // asString can be null | ||
JsonArray* asArray; // asArray cannot be null | ||
JsonObject* asObject; // asObject cannot be null | ||
}; | ||
} // namespace Internals | ||
} // namespace ArduinoJson |
23 changes: 23 additions & 0 deletions
23
third_party/ArduinoJson5/ArduinoJson/Data/JsonVariantDefault.hpp
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,23 @@ | ||
// ArduinoJson - arduinojson.org | ||
// Copyright Benoit Blanchon 2014-2019 | ||
// MIT License | ||
|
||
#pragma once | ||
|
||
namespace ArduinoJson { | ||
namespace Internals { | ||
|
||
template <typename T> | ||
struct JsonVariantDefault { | ||
static T get() { | ||
return T(); | ||
} | ||
}; | ||
|
||
template <typename T> | ||
struct JsonVariantDefault<const T> : JsonVariantDefault<T> {}; | ||
|
||
template <typename T> | ||
struct JsonVariantDefault<T&> : JsonVariantDefault<T> {}; | ||
} // namespace Internals | ||
} // namespace ArduinoJson |
Oops, something went wrong.