91 lines
1.9 KiB
C++
91 lines
1.9 KiB
C++
/*
|
|
Name: PropData.h
|
|
Created: 29/10/2019 09:20:31
|
|
Author: Marie Faure <dev at faure dot systems>
|
|
Editor: https://github.com/fauresystems
|
|
License: MIT License (c) Marie Faure <dev at faure dot systems>
|
|
|
|
Variable wrapper for connected prop.
|
|
*/
|
|
#ifndef PROPSDATA_H
|
|
#define PROPSDATA_H
|
|
|
|
#if defined(ARDUINO) && ARDUINO >= 100
|
|
#include "arduino.h"
|
|
#else
|
|
#include "WProgram.h"
|
|
#endif
|
|
|
|
#include <inttypes.h>
|
|
#include <WString.h>
|
|
|
|
class PropData
|
|
{
|
|
public:
|
|
virtual String fetch() = 0;
|
|
virtual String fetchChange() = 0;
|
|
};
|
|
|
|
class PropDataDecimal : public PropData
|
|
{
|
|
public:
|
|
PropDataDecimal(const char *, uint8_t digits = 2, double precision = 0.1, double initial = 0);
|
|
String fetch();
|
|
String fetchChange();
|
|
void setValue(const double);
|
|
double value() const;
|
|
private:
|
|
const char *_id;
|
|
double _current;
|
|
double _previous;
|
|
double _precision;
|
|
uint8_t _digits;
|
|
};
|
|
|
|
class PropDataInteger : public PropData
|
|
{
|
|
public:
|
|
PropDataInteger(const char *, double precision = 0.1, long initial = 0);
|
|
String fetch();
|
|
String fetchChange();
|
|
void setValue(const long);
|
|
long value() const;
|
|
private:
|
|
const char *_id;
|
|
long _current;
|
|
long _previous;
|
|
double _precision;
|
|
};
|
|
|
|
class PropDataLogical : public PropData
|
|
{
|
|
public:
|
|
PropDataLogical(const char *, const char *trueval = NULL, const char *falseval = NULL, bool initial = false);
|
|
String fetch();
|
|
String fetchChange();
|
|
void setValue(const bool);
|
|
bool value() const;
|
|
private:
|
|
const char *_id;
|
|
bool _current;
|
|
bool _previous;
|
|
const char *_trueString;
|
|
const char *_falseString;
|
|
};
|
|
|
|
class PropDataText : public PropData
|
|
{
|
|
public:
|
|
PropDataText(const char *);
|
|
String fetch();
|
|
String fetchChange();
|
|
void setValue(String);
|
|
String value() const;
|
|
private:
|
|
const char *_id;
|
|
String _current;
|
|
String _previous;
|
|
};
|
|
|
|
#endif
|