浏览代码

the last builtin type is diagnostic info now

Julius Pfrommer 10 年之前
父节点
当前提交
48555612b8
共有 2 个文件被更改,包括 3 次插入3 次删除
  1. 1 1
      src/server/ua_server.c
  2. 2 2
      src/ua_types_encoding_binary.c

+ 1 - 1
src/server/ua_server.c

@@ -726,7 +726,7 @@ 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_DIAGNOSTICINFO; type++) {
        if(type == UA_TYPES_VARIANT || type == UA_TYPES_DIAGNOSTICINFO)
        if(type == UA_TYPES_VARIANT || type == UA_TYPES_DIAGNOSTICINFO)
            continue;
            continue;
 	   //add a scalar node for every built-in type
 	   //add a scalar node for every built-in type

+ 2 - 2
src/ua_types_encoding_binary.c

@@ -692,7 +692,7 @@ size_t UA_Variant_calcSizeBinary(UA_Variant const *p) {
         length += UA_Array_calcSizeBinary(p->dataPtr, arrayLength, p->type);
         length += UA_Array_calcSizeBinary(p->dataPtr, arrayLength, p->type);
         
         
     // if the type is not builtin, we encode it as an extensionobject
     // if the type is not builtin, we encode it as an extensionobject
-    if(p->type->typeIndex > UA_TYPES_XMLELEMENT || !p->type->namespaceZero)
+    if(p->type->typeIndex > UA_TYPES_DIAGNOSTICINFO || !p->type->namespaceZero)
         length += 9 * arrayLength;  // overhead for extensionobjects: 4 byte nodeid + 1 byte
         length += 9 * arrayLength;  // overhead for extensionobjects: 4 byte nodeid + 1 byte
                                     // encoding + 4 byte bytestring length
                                     // encoding + 4 byte bytestring length
     if(arrayLength != 1 && p->arrayDimensions != UA_NULL)
     if(arrayLength != 1 && p->arrayDimensions != UA_NULL)
@@ -705,7 +705,7 @@ UA_StatusCode UA_Variant_encodeBinary(UA_Variant const *src, UA_ByteString *dst,
     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;
-    UA_Boolean isBuiltin = src->type->namespaceZero && src->type->typeIndex <= UA_TYPES_XMLELEMENT;
+    UA_Boolean isBuiltin = src->type->namespaceZero && src->type->typeIndex <= UA_TYPES_DIAGNOSTICINFO;
 
 
     if(isArray) {
     if(isArray) {
         encodingByte |= UA_VARIANT_ENCODINGMASKTYPE_ARRAY;
         encodingByte |= UA_VARIANT_ENCODINGMASKTYPE_ARRAY;