Loading EtsiClientGen/patches/applyPatches.sh +1 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ patch -u ../model/trackable_type.h -i fixHeaderTrackableType.patch patch -u ../model/unit_system.h -i fixHeaderUnitSystem.patch patch -u ../model/world_link.h -i fixHeaderWorldLink.patch patch -u ../api/RelocalizationInformationAPI.c -i fixRelocalizationInformationAPI.patch patch -u ../model/relocalization_information.c -i fixCRelocInfo.patch patch -u ../model/unit_system.c -i fixCUnitSystem.patch patch -u ../model/type_world_storage.c -i fixCTypeWorldStorage.patch patch -u ../model/type_world_storage.h -i fixHeaderTypeWorldStorage.patch Loading EtsiClientGen/patches/fixCRelocInfo.patch 0 → 100644 +46 −0 Original line number Diff line number Diff line diff --git a/EtsiClientGen/model/relocalization_information.c b/../../world-storage-c-client/EtsiClientGen/model/relocalization_information.c index 910561e..f527502 100644 --- a/EtsiClientGen/model/relocalization_information.c +++ b/../../world-storage-c-client/EtsiClientGen/model/relocalization_information.c @@ -75,11 +75,17 @@ cJSON *relocalization_information_convertToJSON(relocalization_information_t *re // relocalization_information->request_type if(relocalization_information->request_type != world_storage_api_relocalization_information__NULL) { - cJSON *request_type_local_JSON = type_world_storage_convertToJSON(relocalization_information->request_type); + cJSON *request_type_local_JSON = type_world_storage_type_world_storage_convertToJSON(*relocalization_information->request_type); if(request_type_local_JSON == NULL) { goto fail; // custom } - cJSON_AddItemToObject(item, "requestType", request_type_local_JSON); + char *type_str = cJSON_GetStringValue(request_type_local_JSON); + if (type_str == NULL) { + goto fail; + } + if (cJSON_AddStringToObject(item, "requestType", type_str) == NULL) { + goto fail; + } if(item->child == NULL) { goto fail; } @@ -96,7 +102,7 @@ cJSON *relocalization_information_convertToJSON(relocalization_information_t *re listEntry_t *reloc_objectsListEntry; if (relocalization_information->reloc_objects) { list_ForEach(reloc_objectsListEntry, relocalization_information->reloc_objects) { - cJSON *itemLocal = relocalization_information_reloc_objects_inner_convertToJSON(reloc_objectsListEntry->data); + cJSON *itemLocal = relocalization_information_reloc_objects_inner_convertToJSON((relocalization_information_reloc_objects_inner_t* )reloc_objectsListEntry->data); if(itemLocal == NULL) { goto fail; } @@ -133,9 +139,11 @@ relocalization_information_t *relocalization_information_parseFromJSON(cJSON *re } // relocalization_information->request_type + request_type_local_nonprim = (type_world_storage_t *)malloc(sizeof(type_world_storage_t)); + cJSON *request_type = cJSON_GetObjectItemCaseSensitive(relocalization_informationJSON, "requestType"); if (request_type) { - request_type_local_nonprim = type_world_storage_parseFromJSON(request_type); //custom + *request_type_local_nonprim = type_world_storage_type_world_storage_parseFromJSON(request_type); //custom } // relocalization_information->reloc_objects EtsiClientGen/patches/fixCTrackable.patch +107 −57 Original line number Diff line number Diff line diff --git a/EtsiClientGen/model/trackable.c b/../../world-storage-c-client/EtsiClientGen/model/trackable.c index 1a27417..f26b4d7 100644 index 1a27417..0270bbc 100644 --- a/EtsiClientGen/model/trackable.c +++ b/../../world-storage-c-client/EtsiClientGen/model/trackable.c @@ -3,42 +3,6 @@ Loading Loading @@ -83,23 +83,6 @@ index 1a27417..f26b4d7 100644 // trackable->trackable_encoding_information if (!trackable->trackable_encoding_information) { @@ -188,14 +160,14 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { goto fail; } - +/* // trackable->trackable_payload if (!trackable->trackable_payload) { goto fail; } if(cJSON_AddStringToObject(item, "trackablePayload", trackable->trackable_payload) == NULL) { goto fail; //ByteArray - } + }*/ // trackable->local_crs @@ -217,14 +189,21 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { Loading @@ -125,7 +108,7 @@ index 1a27417..f26b4d7 100644 if(item->child == NULL) { goto fail; } @@ -243,11 +222,12 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { @@ -243,28 +222,31 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { list_ForEach(trackable_sizeListEntry, trackable->trackable_size) { if(cJSON_AddNumberToObject(trackable_size, "", *(double *)trackable_sizeListEntry->data) == NULL) { Loading @@ -135,20 +118,44 @@ index 1a27417..f26b4d7 100644 } - + /* // trackable->keyvalue_tags if (!trackable->keyvalue_tags) { goto fail; @@ -262,7 +242,7 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { list_ForEach(keyvalue_tagsListEntry, trackable->keyvalue_tags) { keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; } - // trackable->keyvalue_tags - if (!trackable->keyvalue_tags) { - goto fail; - } + }*/ - cJSON *keyvalue_tags = cJSON_AddObjectToObject(item, "keyvalueTags"); - if(keyvalue_tags == NULL) { - goto fail; //primitive map container - } - cJSON *localMapObject = keyvalue_tags; - listEntry_t *keyvalue_tagsListEntry; + // trackable->keyvalue_tags if (trackable->keyvalue_tags) { - list_ForEach(keyvalue_tagsListEntry, trackable->keyvalue_tags) { - keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; - } + cJSON *keyvalue_tags_JSON = cJSON_CreateObject(); + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, trackable->keyvalue_tags) { + + keyValuePair_t *pair = (keyValuePair_t *)listEntry->data; + if (pair && pair->value) { + cJSON *values_array = cJSON_CreateArray(); + listEntry_t *valueEntry = NULL; + list_ForEach(valueEntry, (list_t*)pair->value) { + char *value = (char *)valueEntry->data; + cJSON_AddItemToArray(values_array, cJSON_CreateString(value)); + } + cJSON_AddItemToObject(keyvalue_tags_JSON, pair->key, values_array); + } + } + cJSON_AddItemToObject(item, "keyvalueTags", keyvalue_tags_JSON); } - // trackable->confidence @@ -305,12 +285,16 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ if(trackable->confidence) { if(cJSON_AddNumberToObject(item, "confidence", trackable->confidence) == NULL) { @@ -305,12 +287,16 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ // trackable->uuid cJSON *uuid = cJSON_GetObjectItemCaseSensitive(trackableJSON, "UUID"); if (uuid) { Loading @@ -166,7 +173,7 @@ index 1a27417..f26b4d7 100644 // trackable->name cJSON *name = cJSON_GetObjectItemCaseSensitive(trackableJSON, "name"); if (!name) { @@ -322,7 +306,6 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -322,7 +308,6 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ { goto end; //String } Loading @@ -174,7 +181,7 @@ index 1a27417..f26b4d7 100644 // trackable->creator_uuid cJSON *creator_uuid = cJSON_GetObjectItemCaseSensitive(trackableJSON, "creatorUUID"); if (!creator_uuid) { @@ -334,7 +317,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -334,7 +319,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ { goto end; //String } Loading @@ -183,7 +190,7 @@ index 1a27417..f26b4d7 100644 // trackable->trackable_type cJSON *trackable_type = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableType"); if (!trackable_type) { @@ -342,35 +325,38 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -342,27 +327,30 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ } Loading @@ -201,9 +208,8 @@ index 1a27417..f26b4d7 100644 trackable_encoding_information_local_nonprim = encoding_information_structure_parseFromJSON(trackable_encoding_information); //nonprimitive - // trackable->trackable_payload - cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); - if (!trackable_payload) { + /* cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); + + if (!trackable_payload) { goto end; Loading @@ -216,12 +222,11 @@ index 1a27417..f26b4d7 100644 if(!cJSON_IsString(trackable_payload)) { goto end; //ByteArray - } + } + } +*/ // trackable->local_crs cJSON *local_crs = cJSON_GetObjectItemCaseSensitive(trackableJSON, "localCRS"); @@ -370,7 +358,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ if (!local_crs) { goto end; } Loading @@ -230,7 +235,7 @@ index 1a27417..f26b4d7 100644 cJSON *local_crs_local = NULL; if(!cJSON_IsArray(local_crs)) { @@ -392,15 +378,15 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -392,15 +380,15 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ *local_crs_local_value = local_crs_local->valuedouble; list_addElement(local_crsList , local_crs_local_value); } Loading @@ -248,25 +253,76 @@ index 1a27417..f26b4d7 100644 // trackable->trackable_size cJSON *trackable_size = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableSize"); @@ -429,7 +415,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -429,30 +417,49 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ *trackable_size_local_value = trackable_size_local->valuedouble; list_addElement(trackable_sizeList , trackable_size_local_value); } - + /* + // trackable->keyvalue_tags cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(trackableJSON, "keyvalueTags"); if (!keyvalue_tags) { @@ -452,7 +438,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ list_addElement(keyvalue_tagsList , localMapKeyPair); - cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(trackableJSON, "keyvalueTags"); - if (!keyvalue_tags) { - goto end; - } - - cJSON *keyvalue_tags_local_map = NULL; - if(!cJSON_IsObject(keyvalue_tags) && !cJSON_IsNull(keyvalue_tags)) - { - goto end;//primitive map container - } - if(cJSON_IsObject(keyvalue_tags)) - { + cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(trackableJSON, "keyvalueTags"); + if (keyvalue_tags) { + if (!cJSON_IsObject(keyvalue_tags)) { + goto end; + } keyvalue_tagsList = list_createList(); - keyValuePair_t *localMapKeyPair; - cJSON_ArrayForEach(keyvalue_tags_local_map, keyvalue_tags) - { - cJSON *localMapObject = keyvalue_tags_local_map; - list_addElement(keyvalue_tagsList , localMapKeyPair); + if (!keyvalue_tagsList) { + goto end; + } + cJSON *key = NULL; + cJSON_ArrayForEach(key, keyvalue_tags) { + if (cJSON_IsArray(key)) { + list_t *valuesList = list_createList(); + if (!valuesList) { + goto end; + } + cJSON *value = NULL; + cJSON_ArrayForEach(value, key) { + if (cJSON_IsString(value)) { + char *valueString = strdup(value->valuestring); + if (!valueString) { + goto end; + } + list_addElement(valuesList, valueString); + } + } + keyValuePair_t *pair = malloc(sizeof(keyValuePair_t)); + if (!pair) { + goto end; + } + pair->key = strdup(key->string); + if (!pair->key) { + free(pair); + goto end; + } + pair->value = valuesList; + list_addElement(keyvalue_tagsList, pair); + } } } - + */ // trackable->confidence cJSON *confidence = cJSON_GetObjectItemCaseSensitive(trackableJSON, "confidence"); if (confidence) { @@ -462,25 +448,24 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -462,7 +469,6 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ } } Loading @@ -274,17 +330,11 @@ index 1a27417..f26b4d7 100644 trackable_local_var = trackable_create ( uuid && !cJSON_IsNull(uuid) ? strdup(uuid->valuestring) : NULL, strdup(name->valuestring), strdup(creator_uuid->valuestring), trackable_type_local_nonprim, trackable_encoding_information_local_nonprim, - strdup(trackable_payload->valuestring), + NULL,//strdup(trackable_payload->valuestring), local_crsList, @@ -474,13 +480,13 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ unit_local_nonprim, trackable_sizeList, - keyvalue_tagsList, keyvalue_tagsList, - confidence ? confidence->valuedouble : 0 + NULL,//keyvalue_tagsList, + confidence ? confidence->valuedouble : 0.0 ); Loading @@ -296,7 +346,7 @@ index 1a27417..f26b4d7 100644 trackable_type_local_nonprim = NULL; } if (trackable_encoding_information_local_nonprim) { @@ -497,7 +482,7 @@ end: @@ -497,7 +503,7 @@ end: local_crsList = NULL; } if (unit_local_nonprim) { Loading EtsiClientGen/patches/fixCWorldAnchor.patch +85 −34 Original line number Diff line number Diff line diff --git a/EtsiClientGen/model/world_anchor.c b/../../world-storage-c-client/EtsiClientGen/model/world_anchor.c index 5e8a79c..7af4a19 100644 index 5e8a79c..6834828 100644 --- a/EtsiClientGen/model/world_anchor.c +++ b/../../world-storage-c-client/EtsiClientGen/model/world_anchor.c @@ -146,16 +146,23 @@ cJSON *world_anchor_convertToJSON(world_anchor_t *world_anchor) { Loading Loading @@ -28,40 +28,45 @@ index 5e8a79c..7af4a19 100644 // world_anchor->world_anchor_size if (!world_anchor->world_anchor_size) { goto fail; @@ -173,22 +180,24 @@ cJSON *world_anchor_convertToJSON(world_anchor_t *world_anchor) { @@ -173,21 +180,24 @@ cJSON *world_anchor_convertToJSON(world_anchor_t *world_anchor) { } } - // world_anchor->keyvalue_tags - if (!world_anchor->keyvalue_tags) { + /* if (!world_anchor->keyvalue_tags) { goto fail; } cJSON *keyvalue_tags = cJSON_AddObjectToObject(item, "keyvalueTags"); - goto fail; - } - cJSON *keyvalue_tags = cJSON_AddObjectToObject(item, "keyvalueTags"); - if(keyvalue_tags == NULL) { - goto fail; //primitive map container + if (keyvalue_tags == NULL) { + goto fail; // primitive map container } - cJSON *localMapObject = keyvalue_tags; listEntry_t *keyvalue_tagsListEntry; - if (world_anchor->keyvalue_tags) { list_ForEach(keyvalue_tagsListEntry, world_anchor->keyvalue_tags) { keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; - } - cJSON *localMapObject = keyvalue_tags; - listEntry_t *keyvalue_tagsListEntry; if (world_anchor->keyvalue_tags) { - list_ForEach(keyvalue_tagsListEntry, world_anchor->keyvalue_tags) { - keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; - } + if (localKeyValue == NULL || localKeyValue->key == NULL || localKeyValue->value == NULL) { + goto fail; + cJSON *keyvalue_tags_JSON = cJSON_CreateObject(); + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, world_anchor->keyvalue_tags) { + + keyValuePair_t *pair = (keyValuePair_t *)listEntry->data; + if (pair && pair->value) { + cJSON *values_array = cJSON_CreateArray(); + listEntry_t *valueEntry = NULL; + list_ForEach(valueEntry, (list_t*)pair->value) { + char *value = (char *)valueEntry->data; + cJSON_AddItemToArray(values_array, cJSON_CreateString(value)); + } + cJSON_AddItemToObject(keyvalue_tags_JSON, pair->key, values_array); + } + //if (cJSON_AddStringToObject(keyvalue_tags, localKeyValue->key, (char *)localKeyValue->value) == NULL) { + // goto fail; // add key-value pair + //} + }*/ + } + cJSON_AddItemToObject(item, "keyvalueTags", keyvalue_tags_JSON); } return item; fail: @@ -276,13 +285,14 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ @@ -276,13 +286,14 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ } // world_anchor->unit Loading @@ -77,31 +82,77 @@ index 5e8a79c..7af4a19 100644 // world_anchor->world_anchor_size cJSON *world_anchor_size = cJSON_GetObjectItemCaseSensitive(world_anchorJSON, "worldAnchorSize"); @@ -313,7 +323,7 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ } @@ -314,28 +325,45 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ // world_anchor->keyvalue_tags - cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(world_anchorJSON, "keyvalueTags"); + /* cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(world_anchorJSON, "keyvalueTags"); if (!keyvalue_tags) { goto end; } @@ -334,8 +344,7 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ list_addElement(keyvalue_tagsList , localMapKeyPair); cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(world_anchorJSON, "keyvalueTags"); - if (!keyvalue_tags) { - goto end; - } - - - cJSON *keyvalue_tags_local_map = NULL; - if(!cJSON_IsObject(keyvalue_tags) && !cJSON_IsNull(keyvalue_tags)) - { - goto end;//primitive map container - } - if(cJSON_IsObject(keyvalue_tags)) - { + if (keyvalue_tags) { + if (!cJSON_IsObject(keyvalue_tags)) { + goto end; + } keyvalue_tagsList = list_createList(); - keyValuePair_t *localMapKeyPair; - cJSON_ArrayForEach(keyvalue_tags_local_map, keyvalue_tags) - { - cJSON *localMapObject = keyvalue_tags_local_map; - list_addElement(keyvalue_tagsList , localMapKeyPair); + if (!keyvalue_tagsList) { + goto end; + } + cJSON *key = NULL; + cJSON_ArrayForEach(key, keyvalue_tags) { + if (cJSON_IsArray(key)) { + list_t *valuesList = list_createList(); + if (!valuesList) { + goto end; + } + cJSON *value = NULL; + cJSON_ArrayForEach(value, key) { + if (cJSON_IsString(value)) { + char *valueString = strdup(value->valuestring); + if (!valueString) { + goto end; + } + list_addElement(valuesList, valueString); + } + } + keyValuePair_t *pair = malloc(sizeof(keyValuePair_t)); + if (!pair) { + goto end; + } + pair->key = strdup(key->string); + if (!pair->key) { + free(pair); + goto end; + } + pair->value = valuesList; + list_addElement(keyvalue_tagsList, pair); + } } } - - +*/ world_anchor_local_var = world_anchor_create ( uuid && !cJSON_IsNull(uuid) ? strdup(uuid->valuestring) : NULL, strdup(name->valuestring), @@ -343,7 +352,7 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ @@ -343,7 +371,7 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ local_crsList, unit_local_nonprim, world_anchor_sizeList, - keyvalue_tagsList + NULL// keyvalue_tagsList + keyvalue_tagsList ); return world_anchor_local_var; EtsiClientGen/patches/fixCWorldLink.patch +98 −35 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
EtsiClientGen/patches/applyPatches.sh +1 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ patch -u ../model/trackable_type.h -i fixHeaderTrackableType.patch patch -u ../model/unit_system.h -i fixHeaderUnitSystem.patch patch -u ../model/world_link.h -i fixHeaderWorldLink.patch patch -u ../api/RelocalizationInformationAPI.c -i fixRelocalizationInformationAPI.patch patch -u ../model/relocalization_information.c -i fixCRelocInfo.patch patch -u ../model/unit_system.c -i fixCUnitSystem.patch patch -u ../model/type_world_storage.c -i fixCTypeWorldStorage.patch patch -u ../model/type_world_storage.h -i fixHeaderTypeWorldStorage.patch Loading
EtsiClientGen/patches/fixCRelocInfo.patch 0 → 100644 +46 −0 Original line number Diff line number Diff line diff --git a/EtsiClientGen/model/relocalization_information.c b/../../world-storage-c-client/EtsiClientGen/model/relocalization_information.c index 910561e..f527502 100644 --- a/EtsiClientGen/model/relocalization_information.c +++ b/../../world-storage-c-client/EtsiClientGen/model/relocalization_information.c @@ -75,11 +75,17 @@ cJSON *relocalization_information_convertToJSON(relocalization_information_t *re // relocalization_information->request_type if(relocalization_information->request_type != world_storage_api_relocalization_information__NULL) { - cJSON *request_type_local_JSON = type_world_storage_convertToJSON(relocalization_information->request_type); + cJSON *request_type_local_JSON = type_world_storage_type_world_storage_convertToJSON(*relocalization_information->request_type); if(request_type_local_JSON == NULL) { goto fail; // custom } - cJSON_AddItemToObject(item, "requestType", request_type_local_JSON); + char *type_str = cJSON_GetStringValue(request_type_local_JSON); + if (type_str == NULL) { + goto fail; + } + if (cJSON_AddStringToObject(item, "requestType", type_str) == NULL) { + goto fail; + } if(item->child == NULL) { goto fail; } @@ -96,7 +102,7 @@ cJSON *relocalization_information_convertToJSON(relocalization_information_t *re listEntry_t *reloc_objectsListEntry; if (relocalization_information->reloc_objects) { list_ForEach(reloc_objectsListEntry, relocalization_information->reloc_objects) { - cJSON *itemLocal = relocalization_information_reloc_objects_inner_convertToJSON(reloc_objectsListEntry->data); + cJSON *itemLocal = relocalization_information_reloc_objects_inner_convertToJSON((relocalization_information_reloc_objects_inner_t* )reloc_objectsListEntry->data); if(itemLocal == NULL) { goto fail; } @@ -133,9 +139,11 @@ relocalization_information_t *relocalization_information_parseFromJSON(cJSON *re } // relocalization_information->request_type + request_type_local_nonprim = (type_world_storage_t *)malloc(sizeof(type_world_storage_t)); + cJSON *request_type = cJSON_GetObjectItemCaseSensitive(relocalization_informationJSON, "requestType"); if (request_type) { - request_type_local_nonprim = type_world_storage_parseFromJSON(request_type); //custom + *request_type_local_nonprim = type_world_storage_type_world_storage_parseFromJSON(request_type); //custom } // relocalization_information->reloc_objects
EtsiClientGen/patches/fixCTrackable.patch +107 −57 Original line number Diff line number Diff line diff --git a/EtsiClientGen/model/trackable.c b/../../world-storage-c-client/EtsiClientGen/model/trackable.c index 1a27417..f26b4d7 100644 index 1a27417..0270bbc 100644 --- a/EtsiClientGen/model/trackable.c +++ b/../../world-storage-c-client/EtsiClientGen/model/trackable.c @@ -3,42 +3,6 @@ Loading Loading @@ -83,23 +83,6 @@ index 1a27417..f26b4d7 100644 // trackable->trackable_encoding_information if (!trackable->trackable_encoding_information) { @@ -188,14 +160,14 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { goto fail; } - +/* // trackable->trackable_payload if (!trackable->trackable_payload) { goto fail; } if(cJSON_AddStringToObject(item, "trackablePayload", trackable->trackable_payload) == NULL) { goto fail; //ByteArray - } + }*/ // trackable->local_crs @@ -217,14 +189,21 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { Loading @@ -125,7 +108,7 @@ index 1a27417..f26b4d7 100644 if(item->child == NULL) { goto fail; } @@ -243,11 +222,12 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { @@ -243,28 +222,31 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { list_ForEach(trackable_sizeListEntry, trackable->trackable_size) { if(cJSON_AddNumberToObject(trackable_size, "", *(double *)trackable_sizeListEntry->data) == NULL) { Loading @@ -135,20 +118,44 @@ index 1a27417..f26b4d7 100644 } - + /* // trackable->keyvalue_tags if (!trackable->keyvalue_tags) { goto fail; @@ -262,7 +242,7 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { list_ForEach(keyvalue_tagsListEntry, trackable->keyvalue_tags) { keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; } - // trackable->keyvalue_tags - if (!trackable->keyvalue_tags) { - goto fail; - } + }*/ - cJSON *keyvalue_tags = cJSON_AddObjectToObject(item, "keyvalueTags"); - if(keyvalue_tags == NULL) { - goto fail; //primitive map container - } - cJSON *localMapObject = keyvalue_tags; - listEntry_t *keyvalue_tagsListEntry; + // trackable->keyvalue_tags if (trackable->keyvalue_tags) { - list_ForEach(keyvalue_tagsListEntry, trackable->keyvalue_tags) { - keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; - } + cJSON *keyvalue_tags_JSON = cJSON_CreateObject(); + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, trackable->keyvalue_tags) { + + keyValuePair_t *pair = (keyValuePair_t *)listEntry->data; + if (pair && pair->value) { + cJSON *values_array = cJSON_CreateArray(); + listEntry_t *valueEntry = NULL; + list_ForEach(valueEntry, (list_t*)pair->value) { + char *value = (char *)valueEntry->data; + cJSON_AddItemToArray(values_array, cJSON_CreateString(value)); + } + cJSON_AddItemToObject(keyvalue_tags_JSON, pair->key, values_array); + } + } + cJSON_AddItemToObject(item, "keyvalueTags", keyvalue_tags_JSON); } - // trackable->confidence @@ -305,12 +285,16 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ if(trackable->confidence) { if(cJSON_AddNumberToObject(item, "confidence", trackable->confidence) == NULL) { @@ -305,12 +287,16 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ // trackable->uuid cJSON *uuid = cJSON_GetObjectItemCaseSensitive(trackableJSON, "UUID"); if (uuid) { Loading @@ -166,7 +173,7 @@ index 1a27417..f26b4d7 100644 // trackable->name cJSON *name = cJSON_GetObjectItemCaseSensitive(trackableJSON, "name"); if (!name) { @@ -322,7 +306,6 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -322,7 +308,6 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ { goto end; //String } Loading @@ -174,7 +181,7 @@ index 1a27417..f26b4d7 100644 // trackable->creator_uuid cJSON *creator_uuid = cJSON_GetObjectItemCaseSensitive(trackableJSON, "creatorUUID"); if (!creator_uuid) { @@ -334,7 +317,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -334,7 +319,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ { goto end; //String } Loading @@ -183,7 +190,7 @@ index 1a27417..f26b4d7 100644 // trackable->trackable_type cJSON *trackable_type = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableType"); if (!trackable_type) { @@ -342,35 +325,38 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -342,27 +327,30 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ } Loading @@ -201,9 +208,8 @@ index 1a27417..f26b4d7 100644 trackable_encoding_information_local_nonprim = encoding_information_structure_parseFromJSON(trackable_encoding_information); //nonprimitive - // trackable->trackable_payload - cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); - if (!trackable_payload) { + /* cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); + + if (!trackable_payload) { goto end; Loading @@ -216,12 +222,11 @@ index 1a27417..f26b4d7 100644 if(!cJSON_IsString(trackable_payload)) { goto end; //ByteArray - } + } + } +*/ // trackable->local_crs cJSON *local_crs = cJSON_GetObjectItemCaseSensitive(trackableJSON, "localCRS"); @@ -370,7 +358,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ if (!local_crs) { goto end; } Loading @@ -230,7 +235,7 @@ index 1a27417..f26b4d7 100644 cJSON *local_crs_local = NULL; if(!cJSON_IsArray(local_crs)) { @@ -392,15 +378,15 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -392,15 +380,15 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ *local_crs_local_value = local_crs_local->valuedouble; list_addElement(local_crsList , local_crs_local_value); } Loading @@ -248,25 +253,76 @@ index 1a27417..f26b4d7 100644 // trackable->trackable_size cJSON *trackable_size = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableSize"); @@ -429,7 +415,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -429,30 +417,49 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ *trackable_size_local_value = trackable_size_local->valuedouble; list_addElement(trackable_sizeList , trackable_size_local_value); } - + /* + // trackable->keyvalue_tags cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(trackableJSON, "keyvalueTags"); if (!keyvalue_tags) { @@ -452,7 +438,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ list_addElement(keyvalue_tagsList , localMapKeyPair); - cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(trackableJSON, "keyvalueTags"); - if (!keyvalue_tags) { - goto end; - } - - cJSON *keyvalue_tags_local_map = NULL; - if(!cJSON_IsObject(keyvalue_tags) && !cJSON_IsNull(keyvalue_tags)) - { - goto end;//primitive map container - } - if(cJSON_IsObject(keyvalue_tags)) - { + cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(trackableJSON, "keyvalueTags"); + if (keyvalue_tags) { + if (!cJSON_IsObject(keyvalue_tags)) { + goto end; + } keyvalue_tagsList = list_createList(); - keyValuePair_t *localMapKeyPair; - cJSON_ArrayForEach(keyvalue_tags_local_map, keyvalue_tags) - { - cJSON *localMapObject = keyvalue_tags_local_map; - list_addElement(keyvalue_tagsList , localMapKeyPair); + if (!keyvalue_tagsList) { + goto end; + } + cJSON *key = NULL; + cJSON_ArrayForEach(key, keyvalue_tags) { + if (cJSON_IsArray(key)) { + list_t *valuesList = list_createList(); + if (!valuesList) { + goto end; + } + cJSON *value = NULL; + cJSON_ArrayForEach(value, key) { + if (cJSON_IsString(value)) { + char *valueString = strdup(value->valuestring); + if (!valueString) { + goto end; + } + list_addElement(valuesList, valueString); + } + } + keyValuePair_t *pair = malloc(sizeof(keyValuePair_t)); + if (!pair) { + goto end; + } + pair->key = strdup(key->string); + if (!pair->key) { + free(pair); + goto end; + } + pair->value = valuesList; + list_addElement(keyvalue_tagsList, pair); + } } } - + */ // trackable->confidence cJSON *confidence = cJSON_GetObjectItemCaseSensitive(trackableJSON, "confidence"); if (confidence) { @@ -462,25 +448,24 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ @@ -462,7 +469,6 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ } } Loading @@ -274,17 +330,11 @@ index 1a27417..f26b4d7 100644 trackable_local_var = trackable_create ( uuid && !cJSON_IsNull(uuid) ? strdup(uuid->valuestring) : NULL, strdup(name->valuestring), strdup(creator_uuid->valuestring), trackable_type_local_nonprim, trackable_encoding_information_local_nonprim, - strdup(trackable_payload->valuestring), + NULL,//strdup(trackable_payload->valuestring), local_crsList, @@ -474,13 +480,13 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ unit_local_nonprim, trackable_sizeList, - keyvalue_tagsList, keyvalue_tagsList, - confidence ? confidence->valuedouble : 0 + NULL,//keyvalue_tagsList, + confidence ? confidence->valuedouble : 0.0 ); Loading @@ -296,7 +346,7 @@ index 1a27417..f26b4d7 100644 trackable_type_local_nonprim = NULL; } if (trackable_encoding_information_local_nonprim) { @@ -497,7 +482,7 @@ end: @@ -497,7 +503,7 @@ end: local_crsList = NULL; } if (unit_local_nonprim) { Loading
EtsiClientGen/patches/fixCWorldAnchor.patch +85 −34 Original line number Diff line number Diff line diff --git a/EtsiClientGen/model/world_anchor.c b/../../world-storage-c-client/EtsiClientGen/model/world_anchor.c index 5e8a79c..7af4a19 100644 index 5e8a79c..6834828 100644 --- a/EtsiClientGen/model/world_anchor.c +++ b/../../world-storage-c-client/EtsiClientGen/model/world_anchor.c @@ -146,16 +146,23 @@ cJSON *world_anchor_convertToJSON(world_anchor_t *world_anchor) { Loading Loading @@ -28,40 +28,45 @@ index 5e8a79c..7af4a19 100644 // world_anchor->world_anchor_size if (!world_anchor->world_anchor_size) { goto fail; @@ -173,22 +180,24 @@ cJSON *world_anchor_convertToJSON(world_anchor_t *world_anchor) { @@ -173,21 +180,24 @@ cJSON *world_anchor_convertToJSON(world_anchor_t *world_anchor) { } } - // world_anchor->keyvalue_tags - if (!world_anchor->keyvalue_tags) { + /* if (!world_anchor->keyvalue_tags) { goto fail; } cJSON *keyvalue_tags = cJSON_AddObjectToObject(item, "keyvalueTags"); - goto fail; - } - cJSON *keyvalue_tags = cJSON_AddObjectToObject(item, "keyvalueTags"); - if(keyvalue_tags == NULL) { - goto fail; //primitive map container + if (keyvalue_tags == NULL) { + goto fail; // primitive map container } - cJSON *localMapObject = keyvalue_tags; listEntry_t *keyvalue_tagsListEntry; - if (world_anchor->keyvalue_tags) { list_ForEach(keyvalue_tagsListEntry, world_anchor->keyvalue_tags) { keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; - } - cJSON *localMapObject = keyvalue_tags; - listEntry_t *keyvalue_tagsListEntry; if (world_anchor->keyvalue_tags) { - list_ForEach(keyvalue_tagsListEntry, world_anchor->keyvalue_tags) { - keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; - } + if (localKeyValue == NULL || localKeyValue->key == NULL || localKeyValue->value == NULL) { + goto fail; + cJSON *keyvalue_tags_JSON = cJSON_CreateObject(); + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, world_anchor->keyvalue_tags) { + + keyValuePair_t *pair = (keyValuePair_t *)listEntry->data; + if (pair && pair->value) { + cJSON *values_array = cJSON_CreateArray(); + listEntry_t *valueEntry = NULL; + list_ForEach(valueEntry, (list_t*)pair->value) { + char *value = (char *)valueEntry->data; + cJSON_AddItemToArray(values_array, cJSON_CreateString(value)); + } + cJSON_AddItemToObject(keyvalue_tags_JSON, pair->key, values_array); + } + //if (cJSON_AddStringToObject(keyvalue_tags, localKeyValue->key, (char *)localKeyValue->value) == NULL) { + // goto fail; // add key-value pair + //} + }*/ + } + cJSON_AddItemToObject(item, "keyvalueTags", keyvalue_tags_JSON); } return item; fail: @@ -276,13 +285,14 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ @@ -276,13 +286,14 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ } // world_anchor->unit Loading @@ -77,31 +82,77 @@ index 5e8a79c..7af4a19 100644 // world_anchor->world_anchor_size cJSON *world_anchor_size = cJSON_GetObjectItemCaseSensitive(world_anchorJSON, "worldAnchorSize"); @@ -313,7 +323,7 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ } @@ -314,28 +325,45 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ // world_anchor->keyvalue_tags - cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(world_anchorJSON, "keyvalueTags"); + /* cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(world_anchorJSON, "keyvalueTags"); if (!keyvalue_tags) { goto end; } @@ -334,8 +344,7 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ list_addElement(keyvalue_tagsList , localMapKeyPair); cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(world_anchorJSON, "keyvalueTags"); - if (!keyvalue_tags) { - goto end; - } - - - cJSON *keyvalue_tags_local_map = NULL; - if(!cJSON_IsObject(keyvalue_tags) && !cJSON_IsNull(keyvalue_tags)) - { - goto end;//primitive map container - } - if(cJSON_IsObject(keyvalue_tags)) - { + if (keyvalue_tags) { + if (!cJSON_IsObject(keyvalue_tags)) { + goto end; + } keyvalue_tagsList = list_createList(); - keyValuePair_t *localMapKeyPair; - cJSON_ArrayForEach(keyvalue_tags_local_map, keyvalue_tags) - { - cJSON *localMapObject = keyvalue_tags_local_map; - list_addElement(keyvalue_tagsList , localMapKeyPair); + if (!keyvalue_tagsList) { + goto end; + } + cJSON *key = NULL; + cJSON_ArrayForEach(key, keyvalue_tags) { + if (cJSON_IsArray(key)) { + list_t *valuesList = list_createList(); + if (!valuesList) { + goto end; + } + cJSON *value = NULL; + cJSON_ArrayForEach(value, key) { + if (cJSON_IsString(value)) { + char *valueString = strdup(value->valuestring); + if (!valueString) { + goto end; + } + list_addElement(valuesList, valueString); + } + } + keyValuePair_t *pair = malloc(sizeof(keyValuePair_t)); + if (!pair) { + goto end; + } + pair->key = strdup(key->string); + if (!pair->key) { + free(pair); + goto end; + } + pair->value = valuesList; + list_addElement(keyvalue_tagsList, pair); + } } } - - +*/ world_anchor_local_var = world_anchor_create ( uuid && !cJSON_IsNull(uuid) ? strdup(uuid->valuestring) : NULL, strdup(name->valuestring), @@ -343,7 +352,7 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ @@ -343,7 +371,7 @@ world_anchor_t *world_anchor_parseFromJSON(cJSON *world_anchorJSON){ local_crsList, unit_local_nonprim, world_anchor_sizeList, - keyvalue_tagsList + NULL// keyvalue_tagsList + keyvalue_tagsList ); return world_anchor_local_var;
EtsiClientGen/patches/fixCWorldLink.patch +98 −35 File changed.Preview size limit exceeded, changes collapsed. Show changes