“c" looks like an int array instead of an object. Hope that helps
> On Aug 10, 2018, at 10:06 AM, Aditya Xavier <adityaxav...@me.com.INVALID>
> wrote:
>
> Hello !
>
>
> Require some guidance on how to write a CBOR parsing implementation for the
> following structure.
>
> {a:[1,2,3,4], b:[ {c:[1,2,3,4,5]}, {c:[1,2,3,4,5]}]}
>
> I tried the following implementation.
> ———————————————————————————————————————————————————————
>
> uint64_t a[5];
> Int a_count = 0;
>
> struct c_object{
> int c[6];
> }c_arr_objs[5];
> int c_obj_count = 0;
>
> struct cbor_attr_t c_attrs[] = {
> {
> .attribute = “c",
> .type = CborAttrObjectType,
> CBORATTR_STRUCT_OBJECT(struct c_object, c),
> .dflt.integer = 0
> },
> {
> .attribute = NULL
> }
> };
>
>
> struct cbor_attr_t root_attrs[] = {
> {
> .attribute = “a",
> .type = CborAttrArrayType,
> .addr.array.element_type = CborAttrUnsignedIntegerType,
> .addr.array.arr.uintegers.store = a,
> .addr.array.count = &a_count,
> .addr.array.maxlen = sizeof(a) / sizeof(a[0]),
> .nodefault = true
> },
> {
> .attribute = “b",
> .type = CborAttrArrayType,
> CBORATTR_STRUCT_ARRAY(c_arr_objs, c_attrs, &c_obj_count),
> .nodefault = true
> },
> {
> .attribute = NULL
> }
> };
>
> ———————————————————————————————————————————————————————
>
>
> I assumed this to work as I have been using the same albeit without ‘c’ being
> a int Array. It works when I use ‘c’ as a Int etc, but not as a int Array,
>
> The example :-
> https://github.com/apache/mynewt-core/blob/master/encoding/cborattr/test/src/testcases/cborattr_decode_object_array.c
>
> <https://github.com/apache/mynewt-core/blob/master/encoding/cborattr/test/src/testcases/cborattr_decode_object_array.c>
>
> Has a similar implementation for Text String instead of Int Array.
>
> Thanks,
> Aditya Xavier.
>
>
>