@@ -263,10 +263,14 @@ ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_UndefinedKey(CborVal
263
263
ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_BaseVersion (CborValue * value_iter, MapData * map_data) {
264
264
MapParserState next_state = MapParserState::Error;
265
265
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
+ }
270
274
}
271
275
272
276
return next_state;
@@ -323,25 +327,25 @@ ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_Name(CborValue * val
323
327
ArduinoCloudThing::MapParserState ArduinoCloudThing::handle_Value (CborValue * value_iter, MapData * map_data) {
324
328
MapParserState next_state = MapParserState::Error;
325
329
326
- if (value_iter->type == CborIntegerType) {
330
+ if (value_iter->type == CborIntegerType) {
327
331
int val = 0 ;
328
332
if (cbor_value_get_int (value_iter, &val) == CborNoError) {
329
333
map_data->int_val .set (val);
330
334
}
331
335
}
332
- else if (value_iter->type == CborDoubleType) {
336
+ else if (value_iter->type == CborDoubleType) {
333
337
double val = 0.0 ;
334
338
if (cbor_value_get_double (value_iter, &val) == CborNoError) {
335
339
map_data->float_val .set (static_cast <float >(val));
336
340
}
337
341
}
338
- else if (value_iter->type == CborFloatType) {
342
+ else if (value_iter->type == CborFloatType) {
339
343
float val = 0 .0f ;
340
344
if (cbor_value_get_float (value_iter, &val) == CborNoError) {
341
345
map_data->float_val .set (val);
342
346
}
343
347
}
344
- else if (value_iter->type == CborHalfFloatType) {
348
+ else if (value_iter->type == CborHalfFloatType) {
345
349
uint16_t val = 0 ;
346
350
if (cbor_value_get_half_float (value_iter, &val) == CborNoError) {
347
351
map_data->float_val .set (static_cast <float >(convertCborHalfFloatToDouble (val)));
0 commit comments