You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
( e.value.i != *( e.value.bytes ) ) evaluates true for all values outside the range of 0-255 commenting out this section of code allows the code to work as expected; however; it is no longer checking then if the template_length is large enough to accommodate the correct integer.
The text was updated successfully, but these errors were encountered:
Board type
nrf52840dk
Modem
No response
Describe the bug
Element2byte_gen_t battery_level = { .type = E_INTEGER, .value.i = 256, .template_length = 4 };
Result:
NCE_SDK: Conversion Error, Check template length.
This function only works for .value.i = (0 to 255) any values outside of that cause
nce_iot_c_sdk.c line 289 ( e.value.i != *(e.value.bytes))) to evaluate true and returns NCE_SDK_BINARY_PAYLOAD_ERROR;
so currently only uint8_t is supported.
Expected Behavior
Expect support for 8, 16, 32, and 64-bit signed and unsigned integers.
Current Behavior
Only supports 8-bit unsigned integers
Reproduction Steps
Element2byte_gen_t battery_level = { .type = E_INTEGER, .value.i = 256, .template_length = 4 };
Element2byte_gen_t battery_level = { .type = E_INTEGER, .value.i = -1, .template_length = 1 };
Other information
I believe the error is in nce_iot_c_sdk.c line 289-293
( e.value.i != *( e.value.bytes ) ) evaluates true for all values outside the range of 0-255 commenting out this section of code allows the code to work as expected; however; it is no longer checking then if the template_length is large enough to accommodate the correct integer.
The text was updated successfully, but these errors were encountered: