@@ -263,10 +263,14 @@ ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_UndefinedKey(CborVal
263263ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_BaseVersion (CborValue * value_iter, MapData * map_data) {
264264 MapParserState next_state = MapParserState::Error;
265265
266- /* TODO: Parse BaseVersion */
267-
268- if (cbor_value_advance (value_iter) == CborNoError) {
269- next_state = MapParserState::MapKey;
266+ if (cbor_value_is_integer (value_iter)) {
267+ int val = 0 ;
268+ if (cbor_value_get_int (value_iter, &val) == CborNoError) {
269+ map_data->base_version .set (val);
270+ if (cbor_value_advance (value_iter) == CborNoError) {
271+ next_state = MapParserState::MapKey;
272+ }
273+ }
270274 }
271275
272276 return next_state;
@@ -323,25 +327,25 @@ ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_Name(CborValue * val
323327ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_Value (CborValue * value_iter, MapData * map_data) {
324328 MapParserState next_state = MapParserState::Error;
325329
326- if (value_iter->type == CborIntegerType) {
330+ if (value_iter->type == CborIntegerType) {
327331 int val = 0 ;
328332 if (cbor_value_get_int (value_iter, &val) == CborNoError) {
329333 map_data->int_val .set (val);
330334 }
331335 }
332- else if (value_iter->type == CborDoubleType) {
336+ else if (value_iter->type == CborDoubleType) {
333337 double val = 0.0 ;
334338 if (cbor_value_get_double (value_iter, &val) == CborNoError) {
335339 map_data->float_val .set (static_cast <float >(val));
336340 }
337341 }
338- else if (value_iter->type == CborFloatType) {
342+ else if (value_iter->type == CborFloatType) {
339343 float val = 0 .0f ;
340344 if (cbor_value_get_float (value_iter, &val) == CborNoError) {
341345 map_data->float_val .set (val);
342346 }
343347 }
344- else if (value_iter->type == CborHalfFloatType) {
348+ else if (value_iter->type == CborHalfFloatType) {
345349 uint16_t val = 0 ;
346350 if (cbor_value_get_half_float (value_iter, &val) == CborNoError) {
347351 map_data->float_val .set (static_cast <float >(convertCborHalfFloatToDouble (val)));
0 commit comments