@@ -66,222 +66,202 @@ void ArduinoIoTCloudClass::addCallback(ArduinoIoTCloudEvent const event, OnCloud
6666 _cloud_event_callback[static_cast <size_t >(event)] = callback;
6767}
6868
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)
7071{
71- addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn );
72+ return addPropertyReal (property, _thing_property_container, name, -1 , permission );
7273}
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)
7575{
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);
9077}
91-
92- Property& ArduinoIoTCloudClass::addPropertyReal (Property& property, String name, Permission const permission)
78+ Property& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, Permission const permission)
9379{
94- return addPropertyToContainer (_thing_property_container, property , name, permission);
80+ return addPropertyReal (property, _thing_property_container , name, - 1 , permission);
9581}
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)
9883{
99- return addPropertyToContainer (_thing_property_container, property , name, permission, tag );
84+ return addPropertyReal (property, _thing_property_container , name, - 1 , permission );
10085}
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)
10387{
104- return addPropertyToContainer (prop_cont, property , name, permission, - 1 );
88+ return addPropertyReal (property, _thing_property_container , name, - 1 , permission );
10589}
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)
10891{
109- return addPropertyToContainer (prop_cont, property , name, permission, tag );
92+ return addPropertyReal (property, _thing_property_container , name, - 1 , permission );
11093}
11194
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)
11397{
114- addPropertyReal (property, name, - 1 , permission_type, seconds, fn, minDelta, synFn );
98+ return addPropertyReal (property, _thing_property_container, name, tag, permission );
11599}
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)
118101{
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);
121103}
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)
124105{
125- return addPropertyReal (property, _thing_property_container, name, - 1 , permission);
106+ return addPropertyReal (property, _thing_property_container, name, tag , permission);
126107}
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)
129109{
130110 return addPropertyReal (property, _thing_property_container, name, tag, permission);
131111}
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)
134113{
135- return addPropertyReal (property, prop_cont , name, - 1 , permission);
114+ return addPropertyReal (property, _thing_property_container , name, tag , permission);
136115}
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)
139117{
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);
142119}
143120
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+ }
144126void ArduinoIoTCloudClass::addPropertyReal (float & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
145127{
146128 addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
147129}
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))
150131{
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);
153133}
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))
156135{
157- return addPropertyReal (property, _thing_property_container, name, -1 , permission );
136+ addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn );
158137}
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))
161139{
162- return addPropertyReal (property, _thing_property_container, name, tag, permission );
140+ addPropertyReal (property, name, - 1 , permission_type, seconds, fn, minDelta, synFn );
163141}
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))
166143{
167- return addPropertyReal (property, prop_cont, name, -1 , permission );
144+ addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn );
168145}
169146
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))
171149{
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 );
174152}
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))
177154{
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);
179157}
180-
181158void ArduinoIoTCloudClass::addPropertyReal (int & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(Property & property))
182159{
183160 Property* p = new CloudWrapperInt (property);
184161 addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
185162}
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))
188164{
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);
190167}
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))
193169{
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);
195172}
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))
198174{
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+ }
200189}
201190
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)
203196{
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+ }
206201}
207202
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 */ )
209204{
210- addPropertyReal (property, name, - 1 , permission_type, seconds, fn, minDelta, synFn);
205+ /* do nothing */
211206}
212207
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)
214210{
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);
217212}
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)
220214{
221- return addPropertyReal (property, _thing_property_container , name, -1 , permission);
215+ return addPropertyReal (property, prop_cont , name, -1 , permission);
222216}
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)
225218{
226- return addPropertyReal (property, _thing_property_container , name, tag , permission);
219+ return addPropertyReal (property, prop_cont , name, - 1 , permission);
227220}
228-
229221Property& ArduinoIoTCloudClass::addPropertyReal (unsigned int & property, PropertyContainer &prop_cont, String name, Permission const permission)
230222{
231223 return addPropertyReal (property, prop_cont, name, -1 , permission);
232224}
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)
235226{
236- Property* p = new CloudWrapperUnsignedInt (property);
237- return addPropertyToContainer (prop_cont, *p, name, permission, tag);
227+ return addPropertyReal (property, prop_cont, name, -1 , permission);
238228}
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)
241230{
242- addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn );
231+ return addPropertyReal (property, prop_cont, name, -1 , permission );
243232}
244233
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)
246240{
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 );
249243}
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)
252245{
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);
254248}
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)
257250{
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);
259253}
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)
262255{
263- return addPropertyReal (property, prop_cont, name, -1 , permission);
256+ Property* p = new CloudWrapperUnsignedInt (property);
257+ return addPropertyReal (*p, prop_cont, name, tag, permission);
264258}
265-
266259Property& ArduinoIoTCloudClass::addPropertyReal (String& property, PropertyContainer &prop_cont, String name, int tag, Permission const permission)
267260{
268261 Property* p = new CloudWrapperString (property);
269- return addPropertyToContainer (prop_cont, *p, name, permission , tag);
262+ return addPropertyReal ( *p, prop_cont, name , tag, permission );
270263}
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)
285265{
286- /* do nothing */
287- }
266+ return addPropertyToContainer (prop_cont, property, name, permission, tag);
267+ }
0 commit comments