File tree Expand file tree Collapse file tree 2 files changed +15
-12
lines changed Expand file tree Collapse file tree 2 files changed +15
-12
lines changed Original file line number Diff line number Diff line change @@ -95,10 +95,9 @@ void Entry::update() {
95
95
lastUpdate = time;
96
96
String value = inFunction ();
97
97
if (value != " " ) {
98
- if (value != getValue () || force > getForce ()) {
99
- setValue (value.c_str ());
100
- force = 0 ;
101
- }
98
+ if (setValue (value.c_str (), force > getForce ())) {
99
+ force = 0 ;
100
+ }
102
101
}
103
102
}
104
103
}
@@ -166,14 +165,18 @@ char *Entry::getValue() {
166
165
return lastValue;
167
166
}
168
167
169
- void Entry::setValue (const char *value) {
170
- lastUpdate = millis ();
171
- if (lastValue) {
172
- free (lastValue);
168
+ bool Entry::setValue (const char *value, bool force) {
169
+ if (force || strcmp (value, lastValue) != 0 ) {
170
+ lastUpdate = millis ();
171
+ if (lastValue) {
172
+ free (lastValue);
173
+ }
174
+ lastValue = (char *)malloc (strlen (value)+1 );
175
+ strcpy (lastValue, value);
176
+ publish (value);
177
+ return true ;
173
178
}
174
- lastValue = (char *)malloc (strlen (value)+1 );
175
- strcpy (lastValue, value);
176
- publish (value);
179
+ return false ;
177
180
}
178
181
179
182
long Entry::getLastUpdate () {
Original file line number Diff line number Diff line change @@ -63,7 +63,7 @@ class Entry {
63
63
* Get last value
64
64
*/
65
65
char *getValue ();
66
- void setValue (const char *value);
66
+ bool setValue (const char *value, bool force = false );
67
67
68
68
/* *
69
69
*
You can’t perform that action at this time.
0 commit comments