@@ -66,222 +66,202 @@ void ArduinoIoTCloudClass::addCallback(ArduinoIoTCloudEvent const event, OnCloud
66
66
_cloud_event_callback[static_cast <size_t >(event)] = callback;
67
67
}
68
68
69
- void ArduinoIoTCloudClass::addPropertyReal (Property& property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
69
+ /* The following methods are used for non-LoRa boards */
70
+ Property& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, Permission const permission)
70
71
{
71
- addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn );
72
+ return addPropertyReal (property, _thing_property_container, name, -1 , permission );
72
73
}
73
-
74
- void ArduinoIoTCloudClass::addPropertyReal (Property& property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
74
+ Property& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, Permission const permission)
75
75
{
76
- Permission permission = Permission::ReadWrite;
77
- if (permission_type == READ) {
78
- permission = Permission::Read;
79
- } else if (permission_type == WRITE) {
80
- permission = Permission::Write;
81
- } else {
82
- permission = Permission::ReadWrite;
83
- }
84
-
85
- if (seconds == ON_CHANGE) {
86
- addPropertyToContainer (_thing_property_container, property, name, permission, tag).publishOnChange (minDelta, Property::DEFAULT_MIN_TIME_BETWEEN_UPDATES_MILLIS).onUpdate (fn).onSync (synFn);
87
- } else {
88
- addPropertyToContainer (_thing_property_container, property, name, permission, tag).publishEvery (seconds).onUpdate (fn).onSync (synFn);
89
- }
76
+ return addPropertyReal (property, _thing_property_container, name, -1 , permission);
90
77
}
91
-
92
- Property& ArduinoIoTCloudClass::addPropertyReal (Property& property, String name, Permission const permission)
78
+ Property& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, Permission const permission)
93
79
{
94
- return addPropertyToContainer (_thing_property_container, property , name, permission);
80
+ return addPropertyReal (property, _thing_property_container , name, - 1 , permission);
95
81
}
96
-
97
- Property& ArduinoIoTCloudClass::addPropertyReal (Property& property, String name, int tag, Permission const permission)
82
+ Property& ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, String name, Permission const permission)
98
83
{
99
- return addPropertyToContainer (_thing_property_container, property , name, permission, tag );
84
+ return addPropertyReal (property, _thing_property_container , name, - 1 , permission );
100
85
}
101
-
102
- Property& ArduinoIoTCloudClass::addPropertyReal (Property& property, PropertyContainer &prop_cont, String name, Permission const permission)
86
+ Property& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, Permission const permission)
103
87
{
104
- return addPropertyToContainer (prop_cont, property , name, permission, - 1 );
88
+ return addPropertyReal (property, _thing_property_container , name, - 1 , permission );
105
89
}
106
-
107
- Property& ArduinoIoTCloudClass::addPropertyReal (Property& property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
90
+ Property& ArduinoIoTCloudClass::addPropertyReal (Property& property, String name, Permission const permission)
108
91
{
109
- return addPropertyToContainer (prop_cont, property , name, permission, tag );
92
+ return addPropertyReal (property, _thing_property_container , name, - 1 , permission );
110
93
}
111
94
112
- void ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
95
+ /* The following methods are used for LoRa boards */
96
+ Property& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, int tag, Permission const permission)
113
97
{
114
- addPropertyReal (property, name, - 1 , permission_type, seconds, fn, minDelta, synFn );
98
+ return addPropertyReal (property, _thing_property_container, name, tag, permission );
115
99
}
116
-
117
- void ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
100
+ Property& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, int tag, Permission const permission)
118
101
{
119
- Property* p = new CloudWrapperBool (property);
120
- addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
102
+ return addPropertyReal (property, _thing_property_container, name, tag, permission);
121
103
}
122
-
123
- Property& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, Permission const permission)
104
+ Property& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, int tag, Permission const permission)
124
105
{
125
- return addPropertyReal (property, _thing_property_container, name, - 1 , permission);
106
+ return addPropertyReal (property, _thing_property_container, name, tag , permission);
126
107
}
127
-
128
- Property& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, int tag, Permission const permission)
108
+ Property& ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, String name, int tag, Permission const permission)
129
109
{
130
110
return addPropertyReal (property, _thing_property_container, name, tag, permission);
131
111
}
132
-
133
- Property& ArduinoIoTCloudClass::addPropertyReal (bool & property, PropertyContainer &prop_cont, String name, Permission const permission)
112
+ Property& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, int tag, Permission const permission)
134
113
{
135
- return addPropertyReal (property, prop_cont , name, - 1 , permission);
114
+ return addPropertyReal (property, _thing_property_container , name, tag , permission);
136
115
}
137
-
138
- Property& ArduinoIoTCloudClass::addPropertyReal (bool & property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
116
+ Property& ArduinoIoTCloudClass::addPropertyReal (Property& property, String name, int tag, Permission const permission)
139
117
{
140
- Property* p = new CloudWrapperBool (property);
141
- return addPropertyToContainer (prop_cont, *p, name, permission, tag);
118
+ return addPropertyReal (property, _thing_property_container, name, tag, permission);
142
119
}
143
120
121
+ /* The following methods are deprecated but still used for non-LoRa boards */
122
+ void ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
123
+ {
124
+ addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
125
+ }
144
126
void ArduinoIoTCloudClass::addPropertyReal (float & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
145
127
{
146
128
addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
147
129
}
148
-
149
- void ArduinoIoTCloudClass::addPropertyReal (float & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
130
+ void ArduinoIoTCloudClass::addPropertyReal (int & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
150
131
{
151
- Property* p = new CloudWrapperFloat (property);
152
- addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
132
+ addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
153
133
}
154
-
155
- Property& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, Permission const permission)
134
+ void ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
156
135
{
157
- return addPropertyReal (property, _thing_property_container, name, -1 , permission );
136
+ addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn );
158
137
}
159
-
160
- Property& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, int tag, Permission const permission)
138
+ void ArduinoIoTCloudClass::addPropertyReal (String& property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
161
139
{
162
- return addPropertyReal (property, _thing_property_container, name, tag, permission );
140
+ addPropertyReal (property, name, - 1 , permission_type, seconds, fn, minDelta, synFn );
163
141
}
164
-
165
- Property& ArduinoIoTCloudClass::addPropertyReal (float & property, PropertyContainer &prop_cont, String name, Permission const permission)
142
+ void ArduinoIoTCloudClass::addPropertyReal (Property& property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
166
143
{
167
- return addPropertyReal (property, prop_cont, name, -1 , permission );
144
+ addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn );
168
145
}
169
146
170
- Property& ArduinoIoTCloudClass::addPropertyReal (float & property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
147
+ /* The following methods are deprecated but still used for both LoRa and non-LoRa boards */
148
+ void ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
171
149
{
172
- Property* p = new CloudWrapperFloat (property);
173
- return addPropertyToContainer (prop_cont, *p, name, permission, tag );
150
+ Property* p = new CloudWrapperBool (property);
151
+ addPropertyReal ( *p, name, tag, permission_type, seconds, fn, minDelta, synFn );
174
152
}
175
-
176
- void ArduinoIoTCloudClass::addPropertyReal (int & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
153
+ void ArduinoIoTCloudClass::addPropertyReal (float & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
177
154
{
178
- addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
155
+ Property* p = new CloudWrapperFloat (property);
156
+ addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
179
157
}
180
-
181
158
void ArduinoIoTCloudClass::addPropertyReal (int & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
182
159
{
183
160
Property* p = new CloudWrapperInt (property);
184
161
addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
185
162
}
186
-
187
- Property& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, Permission const permission)
163
+ void ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
188
164
{
189
- return addPropertyReal (property, _thing_property_container, name, -1 , permission);
165
+ Property* p = new CloudWrapperUnsignedInt (property);
166
+ addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
190
167
}
191
-
192
- Property& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, int tag, Permission const permission)
168
+ void ArduinoIoTCloudClass::addPropertyReal (String& property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
193
169
{
194
- return addPropertyReal (property, _thing_property_container, name, tag, permission);
170
+ Property* p = new CloudWrapperString (property);
171
+ addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
195
172
}
196
-
197
- Property& ArduinoIoTCloudClass::addPropertyReal (int & property, PropertyContainer &prop_cont, String name, Permission const permission)
173
+ void ArduinoIoTCloudClass::addPropertyReal (Property& property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
198
174
{
199
- return addPropertyReal (property, prop_cont, name, -1 , permission);
175
+ Permission permission = Permission::ReadWrite;
176
+ if (permission_type == READ) {
177
+ permission = Permission::Read;
178
+ } else if (permission_type == WRITE) {
179
+ permission = Permission::Write;
180
+ } else {
181
+ permission = Permission::ReadWrite;
182
+ }
183
+
184
+ if (seconds == ON_CHANGE) {
185
+ addPropertyToContainer (_thing_property_container, property, name, permission, tag).publishOnChange (minDelta, Property::DEFAULT_MIN_TIME_BETWEEN_UPDATES_MILLIS).onUpdate (fn).onSync (synFn);
186
+ } else {
187
+ addPropertyToContainer (_thing_property_container, property, name, permission, tag).publishEvery (seconds).onUpdate (fn).onSync (synFn);
188
+ }
200
189
}
201
190
202
- Property& ArduinoIoTCloudClass::addPropertyReal (int & property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
191
+ /* *****************************************************************************
192
+ * PROTECTED MEMBER FUNCTIONS
193
+ ******************************************************************************/
194
+
195
+ void ArduinoIoTCloudClass::execCloudEventCallback (ArduinoIoTCloudEvent const event)
203
196
{
204
- Property* p = new CloudWrapperInt (property);
205
- return addPropertyToContainer (prop_cont, *p, name, permission, tag);
197
+ OnCloudEventCallback callback = _cloud_event_callback[static_cast <size_t >(event)];
198
+ if (callback) {
199
+ (*callback)();
200
+ }
206
201
}
207
202
208
- void ArduinoIoTCloudClass::addPropertyReal ( unsigned int & property, String name, permissionType permission_type, long seconds, void (*fn)( void ), float minDelta, void(*synFn)(Property & property) )
203
+ __attribute__ ((weak)) void setDebugMessageLevel( int const /* level */ )
209
204
{
210
- addPropertyReal (property, name, - 1 , permission_type, seconds, fn, minDelta, synFn);
205
+ /* do nothing */
211
206
}
212
207
213
- void ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
208
+ /* The following methods are used internally to handle hidden thing and device properties */
209
+ Property& ArduinoIoTCloudClass::addPropertyReal (bool & property, PropertyContainer &prop_cont, String name, Permission const permission)
214
210
{
215
- Property* p = new CloudWrapperUnsignedInt (property);
216
- addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
211
+ return addPropertyReal (property, prop_cont, name, -1 , permission);
217
212
}
218
-
219
- Property& ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, String name, Permission const permission)
213
+ Property& ArduinoIoTCloudClass::addPropertyReal (float & property, PropertyContainer &prop_cont, String name, Permission const permission)
220
214
{
221
- return addPropertyReal (property, _thing_property_container , name, -1 , permission);
215
+ return addPropertyReal (property, prop_cont , name, -1 , permission);
222
216
}
223
-
224
- Property& ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, String name, int tag, Permission const permission)
217
+ Property& ArduinoIoTCloudClass::addPropertyReal (int & property, PropertyContainer &prop_cont, String name, Permission const permission)
225
218
{
226
- return addPropertyReal (property, _thing_property_container , name, tag , permission);
219
+ return addPropertyReal (property, prop_cont , name, - 1 , permission);
227
220
}
228
-
229
221
Property& ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, PropertyContainer &prop_cont, String name, Permission const permission)
230
222
{
231
223
return addPropertyReal (property, prop_cont, name, -1 , permission);
232
224
}
233
-
234
- Property& ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
225
+ Property& ArduinoIoTCloudClass::addPropertyReal (String& property, PropertyContainer &prop_cont, String name, Permission const permission)
235
226
{
236
- Property* p = new CloudWrapperUnsignedInt (property);
237
- return addPropertyToContainer (prop_cont, *p, name, permission, tag);
227
+ return addPropertyReal (property, prop_cont, name, -1 , permission);
238
228
}
239
-
240
- void ArduinoIoTCloudClass::addPropertyReal (String& property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
229
+ Property& ArduinoIoTCloudClass::addPropertyReal (Property& property, PropertyContainer &prop_cont, String name, Permission const permission)
241
230
{
242
- addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn );
231
+ return addPropertyReal (property, prop_cont, name, -1 , permission );
243
232
}
244
233
245
- void ArduinoIoTCloudClass::addPropertyReal (String& property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
234
+ /* *****************************************************************************
235
+ * PRIVATE MEMBER FUNCTIONS
236
+ ******************************************************************************/
237
+
238
+ /* The following methods are used for both LoRa and non-LoRa boards */
239
+ Property& ArduinoIoTCloudClass::addPropertyReal (bool & property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
246
240
{
247
- Property* p = new CloudWrapperString (property);
248
- addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn );
241
+ Property* p = new CloudWrapperBool (property);
242
+ return addPropertyReal (*p, prop_cont, name, tag, permission );
249
243
}
250
-
251
- Property& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, Permission const permission)
244
+ Property& ArduinoIoTCloudClass::addPropertyReal (float & property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
252
245
{
253
- return addPropertyReal (property, _thing_property_container, name, -1 , permission);
246
+ Property* p = new CloudWrapperFloat (property);
247
+ return addPropertyReal (*p, prop_cont, name, tag, permission);
254
248
}
255
-
256
- Property& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, int tag, Permission const permission)
249
+ Property& ArduinoIoTCloudClass::addPropertyReal (int & property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
257
250
{
258
- return addPropertyReal (property, _thing_property_container, name, tag, permission);
251
+ Property* p = new CloudWrapperInt (property);
252
+ return addPropertyReal (*p, prop_cont, name, tag, permission);
259
253
}
260
-
261
- Property& ArduinoIoTCloudClass::addPropertyReal (String& property, PropertyContainer &prop_cont, String name, Permission const permission)
254
+ Property& ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
262
255
{
263
- return addPropertyReal (property, prop_cont, name, -1 , permission);
256
+ Property* p = new CloudWrapperUnsignedInt (property);
257
+ return addPropertyReal (*p, prop_cont, name, tag, permission);
264
258
}
265
-
266
259
Property& ArduinoIoTCloudClass::addPropertyReal (String& property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
267
260
{
268
261
Property* p = new CloudWrapperString (property);
269
- return addPropertyToContainer (prop_cont, *p, name, permission , tag);
262
+ return addPropertyReal ( *p, prop_cont, name , tag, permission );
270
263
}
271
-
272
- /* *****************************************************************************
273
- * PROTECTED MEMBER FUNCTIONS
274
- ******************************************************************************/
275
-
276
- void ArduinoIoTCloudClass::execCloudEventCallback (ArduinoIoTCloudEvent const event)
277
- {
278
- OnCloudEventCallback callback = _cloud_event_callback[static_cast <size_t >(event)];
279
- if (callback) {
280
- (*callback)();
281
- }
282
- }
283
-
284
- __attribute__ ((weak)) void setDebugMessageLevel(int const /* level */ )
264
+ Property& ArduinoIoTCloudClass::addPropertyReal (Property& property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
285
265
{
286
- /* do nothing */
287
- }
266
+ return addPropertyToContainer (prop_cont, property, name, permission, tag);
267
+ }
0 commit comments