KPN Things Device SDK
senml_record_t.h
Go to the documentation of this file.
1/* _ __ ____ _ _
2 * | |/ / | _ \ | \ | |
3 * | ' / | |_) | | \| |
4 * | . \ | __/ | |\ |
5 * |_|\_\ |_| |_| \_|
6 *
7 * (c) 2020 KPN
8 * License: MIT License.
9 * Author: Joseph Verburg, Jan Bogaerts
10 *
11 * record base class for simple data types
12 */
13
14#ifndef SENMLRECORDTEMPLATE
15#define SENMLRECORDTEMPLATE
16
17#include "senml_record.h"
18
25template <class T> class SenMLRecordTemplate : public SenMLRecord {
26 public:
27 SenMLRecordTemplate(const char *name) : SenMLRecord(name), _valAsSum(false){};
28 SenMLRecordTemplate(const char *name, SenMLUnit unit) : SenMLRecord(name, unit), _valAsSum(false){};
29 SenMLRecordTemplate(const char *name, SenMLUnit unit, T value)
30 : SenMLRecord(name, unit), _value(value), _valAsSum(false){};
33 : SenMLRecord(index), _value(value), _valAsSum(false){};
34
41 T get() {
42 return _value;
43 };
44
51 bool asSum() {
52 return this->_valAsSum;
53 };
54
55#ifdef __MBED__
56
64 bool set(T value) {
65 return this->set(value, (double)NAN, false);
66 };
67
79 bool set(T value, double time) {
80 return this->set(value, time, false);
81 };
82
94 bool set(T value, double time, bool asSum)
95
96#else
97
109 bool set(T value, double time = (double)NAN, bool asSum = false)
110#endif
111 {
112 this->_value = value;
113 this->_valAsSum = asSum;
114 // Do not remove time when none is provided
115 if (isnan(time)) {
116 return true;
117 }
118 return this->setTime(time);
119 };
120
121 protected:
122 private:
123 T _value;
124 bool _valAsSum;
125};
126
127#endif // SENMLRECORDTEMPLATE
Definition: senml_record.h:33
bool setTime(double value, bool absolute=true)
Definition: senml_record.cpp:25
Definition: senml_record_t.h:25
SenMLRecordTemplate(const char *name)
Definition: senml_record_t.h:27
bool set(T value, double time=(double) NAN, bool asSum=false)
Definition: senml_record_t.h:109
SenMLRecordTemplate(ThingsMLMeasurementIndex index)
Definition: senml_record_t.h:31
SenMLRecordTemplate(ThingsMLMeasurementIndex index, T value)
Definition: senml_record_t.h:32
bool asSum()
Definition: senml_record_t.h:51
SenMLRecordTemplate(const char *name, SenMLUnit unit, T value)
Definition: senml_record_t.h:29
SenMLRecordTemplate(const char *name, SenMLUnit unit)
Definition: senml_record_t.h:28
T get()
Definition: senml_record_t.h:41
SenMLUnit
Definition: senml_enums.h:97
ThingsMLMeasurementIndex
Definition: senml_enums.h:51