@@ -264,7 +264,7 @@ ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_Name(CborValue * val
264264 map_data->name_identifier .set (val & 255 );
265265 map_data->attribute_identifier .set (val >> 8 );
266266 map_data->light_payload .set (true );
267- String name = getPropertyNameByIdentifier (val);
267+ String name = getPropertyNameByIdentifier (*_property_container, val);
268268 map_data->name .set (name);
269269
270270
@@ -353,7 +353,7 @@ ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_LeaveMap(CborValue *
353353
354354 if (_currentPropertyName != " " && propertyName != _currentPropertyName) {
355355 /* Update the property containers depending on the parsed data */
356- updateProperty (_currentPropertyName, _currentPropertyBaseTime + _currentPropertyTime);
356+ updateProperty (*_property_container, _currentPropertyName, _currentPropertyBaseTime + _currentPropertyTime, _isSyncMessage, &_map_data_list );
357357 /* Reset current property data */
358358 freeMapDataList (&_map_data_list);
359359 _currentPropertyBaseTime = 0 ;
@@ -376,7 +376,7 @@ ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_LeaveMap(CborValue *
376376 next_state = MapParserState::EnterMap;
377377 } else {
378378 /* Update the property containers depending on the parsed data */
379- updateProperty (_currentPropertyName, _currentPropertyBaseTime + _currentPropertyTime);
379+ updateProperty (*_property_container, _currentPropertyName, _currentPropertyBaseTime + _currentPropertyTime, _isSyncMessage, &_map_data_list );
380380 /* Reset last property data */
381381 freeMapDataList (&_map_data_list);
382382 next_state = MapParserState::Complete;
@@ -397,31 +397,6 @@ void ArduinoCloudThing::freeMapDataList(std::list<CborMapData *> * map_data_list
397397 map_data_list->clear ();
398398}
399399
400- void ArduinoCloudThing::updateProperty (String propertyName, unsigned long cloudChangeEventTime) {
401- Property* property = getProperty (*_property_container, propertyName);
402- if (property && property->isWriteableByCloud ()) {
403- property->setLastCloudChangeTimestamp (cloudChangeEventTime);
404- property->setAttributesFromCloud (&_map_data_list);
405- if (_isSyncMessage) {
406- property->execCallbackOnSync ();
407- } else {
408- property->fromCloudToLocal ();
409- property->execCallbackOnChange ();
410- }
411- }
412- }
413-
414- // retrieve the property name by the identifier
415- String ArduinoCloudThing::getPropertyNameByIdentifier (int propertyIdentifier) {
416- Property* property;
417- if (propertyIdentifier > 255 ) {
418- property = getProperty (*_property_container, propertyIdentifier & 255 );
419- } else {
420- property = getProperty (*_property_container, propertyIdentifier);
421- }
422- return property->name ();
423- }
424-
425400bool ArduinoCloudThing::ifNumericConvertToDouble (CborValue * value_iter, double * numeric_val) {
426401
427402 if (cbor_value_is_integer (value_iter)) {
0 commit comments