8#include <ArduinoJson.h>
9#if THINGSBOARD_ENABLE_STL
27#if THINGSBOARD_ENABLE_STL
29 typename std::enable_if<std::is_integral<T>::value>::type* =
nullptr>
32 typename ArduinoJson::ARDUINOJSON_VERSION_NAMESPACE::detail::enable_if<ArduinoJson::ARDUINOJSON_VERSION_NAMESPACE::detail::is_integral<T>::value>::type* =
nullptr>
35 : m_type(DataType::TYPE_INT)
39 m_value.integer = value;
48#if THINGSBOARD_ENABLE_STL
50 typename std::enable_if<std::is_floating_point<T>::value>::type* =
nullptr>
53 typename ArduinoJson::ARDUINOJSON_VERSION_NAMESPACE::detail::enable_if<ArduinoJson::ARDUINOJSON_VERSION_NAMESPACE::detail::is_floating_point<T>::value>::type* =
nullptr>
56 : m_type(DataType::TYPE_REAL)
71 Telemetry(
char const * key,
char const * value);
81 template <
typename TSource>
84 case DataType::TYPE_BOOL:
86 source[m_key] = m_value.boolean;
87 return source.containsKey(m_key);
89 return source.set(m_value.boolean);
90 case DataType::TYPE_INT:
92 source[m_key] = m_value.integer;
93 return source.containsKey(m_key);
95 return source.set(m_value.integer);
96 case DataType::TYPE_REAL:
98 source[m_key] = m_value.real;
99 return source.containsKey(m_key);
101 return source.set(m_value.real);
102 case DataType::TYPE_STR:
104 source[m_key] = m_value.str;
105 return source.containsKey(m_key);
107 return source.set(m_value.str);
133 DataType m_type = {};
134 const char *m_key = {};
Telemetry record class, allows to store different data using a common interface.
Definition: Telemetry.h:16
bool IsEmpty() const
Whether this record is empty or not.
Definition: Telemetry.cpp:28
Telemetry()
Creates an empty Telemetry record containg neither a key nor value.
Definition: Telemetry.cpp:4
Telemetry(char const *key, T const &value)
Constructs a telemetry record from integral value.
Definition: Telemetry.h:34
bool SerializeKeyValue(TSource &source) const
Serializes a key-value pair or only a value, depending on the constructor used.
Definition: Telemetry.h:82