KPN Things Device SDK
senml_string_actuator.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 * support for string actuators
12 */
13
14#ifndef SENMLSTRINGACTUATOR
15#define SENMLSTRINGACTUATOR
16
17#include "../record/senml_string_record.h"
18
19#define STRING_ACTUATOR_SIGNATURE void (*callback)(const char *)
20
25 public:
26 SenMLStringActuator(const char *name, STRING_ACTUATOR_SIGNATURE)
27 : SenMLStringRecord(name, SENML_UNIT_NONE, NULL), callback(callback){};
28 SenMLStringActuator(const char *name, SenMLUnit unit, STRING_ACTUATOR_SIGNATURE)
29 : SenMLStringRecord(name, unit, NULL), callback(callback){};
30 SenMLStringActuator(const char *name, SenMLUnit unit, const char *value, STRING_ACTUATOR_SIGNATURE)
31 : SenMLStringRecord(name, unit, value), callback(callback){};
32 SenMLStringActuator(ThingsMLMeasurementIndex index, STRING_ACTUATOR_SIGNATURE)
33 : SenMLStringRecord(index), callback(callback){};
34 SenMLStringActuator(ThingsMLMeasurementIndex index, const char *value, STRING_ACTUATOR_SIGNATURE)
35 : SenMLStringRecord(index, value), callback(callback){};
36
37 SenMLStringActuator(const char *name) : SenMLStringRecord(name){};
38 SenMLStringActuator(const char *name, SenMLUnit unit) : SenMLStringRecord(name, unit){};
39 SenMLStringActuator(const char *name, SenMLUnit unit, const char *value) : SenMLStringRecord(name, unit, value){};
41 SenMLStringActuator(ThingsMLMeasurementIndex index, const char *value) : SenMLStringRecord(index, value){};
43
44 virtual bool set(const char * value, double time = (double)NAN, bool asSum = false);
45 protected:
49 virtual void actuate(const void *value, int dataLength, SenMLDataType dataType);
50
51 private:
52 STRING_ACTUATOR_SIGNATURE = NULL;
53 char * lastAllocated = nullptr;
54};
55
56#endif // SENMLSTRINGACTUATOR
bool asSum()
Definition: senml_record_t.h:51
Definition: senml_string_actuator.h:24
SenMLStringActuator(const char *name, SenMLUnit unit, const char *value)
Definition: senml_string_actuator.h:39
SenMLStringActuator(const char *name, SenMLUnit unit, const char *value, STRING_ACTUATOR_SIGNATURE)
Definition: senml_string_actuator.h:30
SenMLStringActuator(const char *name, SenMLUnit unit, STRING_ACTUATOR_SIGNATURE)
Definition: senml_string_actuator.h:28
virtual void actuate(const void *value, int dataLength, SenMLDataType dataType)
Definition: senml_string_actuator.cpp:19
SenMLStringActuator(const char *name, STRING_ACTUATOR_SIGNATURE)
Definition: senml_string_actuator.h:26
SenMLStringActuator(const char *name)
Definition: senml_string_actuator.h:37
~SenMLStringActuator()
Definition: senml_string_actuator.h:42
SenMLStringActuator(ThingsMLMeasurementIndex index)
Definition: senml_string_actuator.h:40
SenMLStringActuator(ThingsMLMeasurementIndex index, const char *value, STRING_ACTUATOR_SIGNATURE)
Definition: senml_string_actuator.h:34
SenMLStringActuator(const char *name, SenMLUnit unit)
Definition: senml_string_actuator.h:38
SenMLStringActuator(ThingsMLMeasurementIndex index, STRING_ACTUATOR_SIGNATURE)
Definition: senml_string_actuator.h:32
virtual bool set(const char *value, double time=(double) NAN, bool asSum=false)
Definition: senml_string_actuator.cpp:36
SenMLStringActuator(ThingsMLMeasurementIndex index, const char *value)
Definition: senml_string_actuator.h:41
Definition: senml_string_record.h:25
SenMLUnit
Definition: senml_enums.h:97
@ SENML_UNIT_NONE
Definition: senml_enums.h:98
ThingsMLMeasurementIndex
Definition: senml_enums.h:51
SenMLDataType
Definition: senml_enums.h:25