Bladeren bron

omit some types for the testing address space

Julius Pfrommer 10 jaren geleden
bovenliggende
commit
6657d15705
3 gewijzigde bestanden met toevoegingen van 5 en 8 verwijderingen
  1. 4 2
      src/server/ua_server.c
  2. 1 1
      src/ua_types.c
  3. 0 5
      src/ua_types_encoding_binary.c

+ 4 - 2
src/server/ua_server.c

@@ -726,7 +726,9 @@ UA_Server * UA_Server_new(void) {
 		   UA_EXPANDEDNODEID_STATIC(0, UA_NS0ID_FOLDERTYPE));
 		   UA_EXPANDEDNODEID_STATIC(0, UA_NS0ID_FOLDERTYPE));
 
 
    UA_UInt32 id = 1000; //running id in namespace 1
    UA_UInt32 id = 1000; //running id in namespace 1
-   for(UA_UInt32 type =0; type<= UA_TYPES_XMLELEMENT; type++){
+   for(UA_UInt32 type = 0; type <= UA_TYPES_XMLELEMENT; type++) {
+       if(type == UA_TYPES_VARIANT || type == UA_TYPES_DIAGNOSTICINFO)
+           continue;
 	   //add a scalar node for every built-in type
 	   //add a scalar node for every built-in type
 	    void *value = UA_new(&UA_TYPES[type]);
 	    void *value = UA_new(&UA_TYPES[type]);
 	    UA_Variant *variant = UA_Variant_new();
 	    UA_Variant *variant = UA_Variant_new();
@@ -747,7 +749,7 @@ UA_Server * UA_Server_new(void) {
 	   arraynode->variable.variant.arrayLength = type;
 	   arraynode->variable.variant.arrayLength = type;
 	   arraynode->variable.variant.dataPtr = UA_Array_new(&UA_TYPES[type], arraynode->variable.variant.arrayLength);
 	   arraynode->variable.variant.dataPtr = UA_Array_new(&UA_TYPES[type], arraynode->variable.variant.arrayLength);
 	   char* initPointer = (char* )arraynode->variable.variant.dataPtr;
 	   char* initPointer = (char* )arraynode->variable.variant.dataPtr;
-	   for(UA_Int32 i=0;i<arraynode->variable.variant.arrayLength;i++){
+	   for(UA_Int32 i=0;i<arraynode->variable.variant.arrayLength;i++) {
 		   UA_init(initPointer, &UA_TYPES[type]);
 		   UA_init(initPointer, &UA_TYPES[type]);
 		   initPointer += UA_TYPES[type].memSize;
 		   initPointer += UA_TYPES[type].memSize;
 	   }
 	   }

+ 1 - 1
src/ua_types.c

@@ -574,7 +574,7 @@ void UA_Variant_init(UA_Variant *p) {
     p->dataPtr = UA_NULL;
     p->dataPtr = UA_NULL;
     p->arrayDimensions = UA_NULL;
     p->arrayDimensions = UA_NULL;
     p->arrayDimensionsSize = -1;
     p->arrayDimensionsSize = -1;
-    p->type = UA_NULL;
+    p->type = &UA_TYPES[UA_TYPES_BOOLEAN];
 }
 }
 
 
 UA_TYPE_DELETE_DEFAULT(UA_Variant)
 UA_TYPE_DELETE_DEFAULT(UA_Variant)

+ 0 - 5
src/ua_types_encoding_binary.c

@@ -680,8 +680,6 @@ enum UA_VARIANT_ENCODINGMASKTYPE_enum {
 };
 };
 
 
 size_t UA_Variant_calcSizeBinary(UA_Variant const *p) {
 size_t UA_Variant_calcSizeBinary(UA_Variant const *p) {
-    if(!p->type) // type is not set after init
-        return 0;
     size_t length = sizeof(UA_Byte); //p->encodingMask
     size_t length = sizeof(UA_Byte); //p->encodingMask
     UA_Int32 arrayLength = p->arrayLength;
     UA_Int32 arrayLength = p->arrayLength;
     if(arrayLength <= 0 || p->dataPtr == UA_NULL) {
     if(arrayLength <= 0 || p->dataPtr == UA_NULL) {
@@ -704,9 +702,6 @@ size_t UA_Variant_calcSizeBinary(UA_Variant const *p) {
 }
 }
 
 
 UA_StatusCode UA_Variant_encodeBinary(UA_Variant const *src, UA_ByteString *dst, size_t *offset) {
 UA_StatusCode UA_Variant_encodeBinary(UA_Variant const *src, UA_ByteString *dst, size_t *offset) {
-    if(!src->type)
-        return UA_STATUSCODE_BADINTERNALERROR;
-    
     UA_Byte encodingByte = 0;
     UA_Byte encodingByte = 0;
     UA_Boolean isArray = src->arrayLength != 1;  // a single element is not an array
     UA_Boolean isArray = src->arrayLength != 1;  // a single element is not an array
     UA_Boolean hasDimensions = isArray && src->arrayDimensions != UA_NULL;
     UA_Boolean hasDimensions = isArray && src->arrayDimensions != UA_NULL;