Loading include/lib/ArduinoJson.h 0 → 100644 +19 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // 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/lib/ArduinoJson/Configuration.hpp 0 → 100644 +151 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // 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 include/lib/ArduinoJson/Data/Encoding.hpp 0 → 100644 +37 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // 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]; } }; } } include/lib/ArduinoJson/Data/JsonBufferAllocated.hpp 0 → 100644 +22 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // 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(); }; } } include/lib/ArduinoJson/Data/JsonFloat.hpp 0 → 100644 +18 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // MIT License #pragma once #include "../Configuration.hpp" namespace ArduinoJson { namespace Internals { #if ARDUINOJSON_USE_DOUBLE typedef double JsonFloat; #else typedef float JsonFloat; #endif } } Loading
include/lib/ArduinoJson.h 0 → 100644 +19 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // 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/lib/ArduinoJson/Configuration.hpp 0 → 100644 +151 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // 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
include/lib/ArduinoJson/Data/Encoding.hpp 0 → 100644 +37 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // 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]; } }; } }
include/lib/ArduinoJson/Data/JsonBufferAllocated.hpp 0 → 100644 +22 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // 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(); }; } }
include/lib/ArduinoJson/Data/JsonFloat.hpp 0 → 100644 +18 −0 Original line number Diff line number Diff line // ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // MIT License #pragma once #include "../Configuration.hpp" namespace ArduinoJson { namespace Internals { #if ARDUINOJSON_USE_DOUBLE typedef double JsonFloat; #else typedef float JsonFloat; #endif } }