-
Notifications
You must be signed in to change notification settings - Fork 5
/
webconfparameter.h
120 lines (107 loc) · 2.72 KB
/
webconfparameter.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#ifndef WEBCONFPARAMETER_H
#define WEBCONFPARAMETER_H
#include <IotWebConf.h>
/**
* Helper class to simplify the definition of user-parameters in IotWebConf.
*/
class WebConfParameter {
public:
/**
* @brief Constructor
*
* @param parent Parent of this parameter. Once created, the paramter wil be automatically added to the parent.
* @param label Displayable label.
* @param id Internal id of the parameter.
* @param length Length of the input field.
* @param type Type of the input field ("text", "number")
* @param defaultValue Default value.
* @param customHtml Custom html (eg. to set boundaries).
*/
WebConfParameter(IotWebConf &parent, const char* label, const char* id, int length,
const char* type = "text", const char* defaultValue = NULL, const char* customHtml = NULL)
{
_length = length;
_pBuffer = new char[length + 1];
memset(_pBuffer, 0, length + 1);
if (defaultValue != NULL)
{
strncpy(_pBuffer, defaultValue, length);
}
_pParameter = new IotWebConfParameter(label, id, _pBuffer, length, type, defaultValue, defaultValue, customHtml, true);
parent.addParameter(_pParameter);
}
/**
* @brief Overloaded constructor to create a separator.
*
* @param parent Parent of this parameter. Once created, the paramter wil be automatically added to the parent.
*/
WebConfParameter(IotWebConf &parent, const char *label) : _length(0), _pBuffer(NULL)
{
_pParameter = new IotWebConfSeparator(label);
parent.addParameter(_pParameter);
}
/**
* @brief Destructor
*/
~WebConfParameter()
{
delete _pParameter;
if (_pBuffer != NULL) {
delete[] _pBuffer;
}
}
/**
* @brief
*/
IotWebConfParameter *get()
{
return _pParameter;
}
/**
* @brief Checks, whether the parameter is empty.
*/
bool isEmpty()
{
return _pBuffer[0] == 0;
}
/**
* @brief Returns the current value of the parameter as text.
*/
const char* getText()
{
return _pBuffer;
}
/**
* @brief Returns the current value of the parameter as integer.
*/
int getInt()
{
return isEmpty() ? 0 : atoi(_pBuffer);
}
/**
* @brief Returns the current value of the parameter as float.
*/
float getFloat()
{
return isEmpty() ? 0.0f : (float)atof(_pBuffer);
}
/**
* @brief Sets the current value of the parameter.
*/
void setText(const char* text)
{
strncpy(_pBuffer, text, _length);
}
/**
* @brief Sets the current value of the parameter.
*/
void setInt(int value)
{
itoa(value, _pBuffer, 10);
}
private:
int _length;
char *_pBuffer;
IotWebConfParameter *_pParameter;
};
#endif // WEBCONFPARAMETER_H