@@ -281,6 +281,21 @@ void ArduinoCloudThing::decode(uint8_t *payload, size_t length) {
281
281
cbor_value_get_double (&propValue, &val);
282
282
ArduinoCloudProperty<float >* p = (ArduinoCloudProperty<float >*) property;
283
283
p->write ((float )val);
284
+ } else if (propValue.type == CborIntegerType) {
285
+ int val;
286
+ cbor_value_get_int (&propValue, &val);
287
+ ArduinoCloudProperty<float >* p = (ArduinoCloudProperty<float >*) property;
288
+ p->write ((float )val);
289
+ } else if (propValue.type == CborFloatType) {
290
+ float val;
291
+ cbor_value_get_float (&propValue, &val);
292
+ ArduinoCloudProperty<float >* p = (ArduinoCloudProperty<float >*) property;
293
+ p->write (val);
294
+ } else if (propValue.type == CborHalfFloatType) {
295
+ float val;
296
+ cbor_value_get_half_float (&propValue, &val);
297
+ ArduinoCloudProperty<float >* p = (ArduinoCloudProperty<float >*) property;
298
+ p->write (val);
284
299
}
285
300
} else if (propType == INT && !cbor_value_map_find_value (&recursedMap, " v" , &propValue)) {
286
301
// if no key proper key was found, do nothing
@@ -295,6 +310,16 @@ void ArduinoCloudThing::decode(uint8_t *payload, size_t length) {
295
310
cbor_value_get_double (&propValue, &val);
296
311
ArduinoCloudProperty<int >* p = (ArduinoCloudProperty<int >*) property;
297
312
p->write ((int )val);
313
+ } else if (propValue.type == CborFloatType) {
314
+ float val;
315
+ cbor_value_get_float (&propValue, &val);
316
+ ArduinoCloudProperty<int >* p = (ArduinoCloudProperty<int >*) property;
317
+ p->write ((int )val);
318
+ } else if (propValue.type == CborHalfFloatType) {
319
+ float val;
320
+ cbor_value_get_half_float (&propValue, &val);
321
+ ArduinoCloudProperty<int >* p = (ArduinoCloudProperty<int >*) property;
322
+ p->write ((int )val);
298
323
}
299
324
} else if (propType == BOOL && !cbor_value_map_find_value (&recursedMap, " vb" , &propValue)) {
300
325
if (propValue.type == CborBooleanType) {
0 commit comments