|
@@ -66,199 +66,201 @@ encode_builtInType(void *data, Int32 type, Int32 *pos, char *dstBuf)
|
|
encodeXmlElement(((UA_XmlElement*) data), pos, dstBuf);
|
|
encodeXmlElement(((UA_XmlElement*) data), pos, dstBuf);
|
|
break;
|
|
break;
|
|
case NODE_ID:
|
|
case NODE_ID:
|
|
- encodeUANodeId((UA_NodeId*)data, pos, dstBuf);
|
|
|
|
|
|
+ encodeUANodeId((UA_NodeId*) data, pos, dstBuf);
|
|
break;
|
|
break;
|
|
case EXPANDED_NODE_ID:
|
|
case EXPANDED_NODE_ID:
|
|
- encodeExpandedNodeId((UA_ExpandedNodeId*)data,pos,dstBuf);
|
|
|
|
|
|
+ encodeExpandedNodeId((UA_ExpandedNodeId*) data, pos, dstBuf);
|
|
break;
|
|
break;
|
|
case STATUS_CODE:
|
|
case STATUS_CODE:
|
|
encodeUInt32(*((UInt32*) data), pos, dstBuf);
|
|
encodeUInt32(*((UInt32*) data), pos, dstBuf);
|
|
break;
|
|
break;
|
|
case QUALIFIED_NAME:
|
|
case QUALIFIED_NAME:
|
|
- encodeQualifiedName(((UA_QualifiedName*)data),pos,dstBuf);
|
|
|
|
|
|
+ encodeQualifiedName(((UA_QualifiedName*) data), pos, dstBuf);
|
|
break;
|
|
break;
|
|
case LOCALIZED_TEXT:
|
|
case LOCALIZED_TEXT:
|
|
- encodeLocalizedText(((UA_LocalizedText*)data),pos,dstBuf);
|
|
|
|
|
|
+ encodeLocalizedText(((UA_LocalizedText*) data), pos, dstBuf);
|
|
break;
|
|
break;
|
|
case EXTENSION_OBJECT:
|
|
case EXTENSION_OBJECT:
|
|
- encodeExtensionObject((UA_ExtensionObject*)data,pos,dstBuf);
|
|
|
|
|
|
+ encodeExtensionObject((UA_ExtensionObject*) data, pos, dstBuf);
|
|
break;
|
|
break;
|
|
case DATA_VALUE:
|
|
case DATA_VALUE:
|
|
- encodeDataValue((UA_DataValue*)data,pos,dstBuf);
|
|
|
|
|
|
+ encodeDataValue((UA_DataValue*) data, pos, dstBuf);
|
|
break;
|
|
break;
|
|
case VARIANT:
|
|
case VARIANT:
|
|
- encodeVariant((UA_Variant*)data,pos,dstBuf);
|
|
|
|
|
|
+ encodeVariant((UA_Variant*) data, pos, dstBuf);
|
|
break;
|
|
break;
|
|
case DIAGNOSTIC_INFO:
|
|
case DIAGNOSTIC_INFO:
|
|
- encodeDiagnosticInfo((UA_DiagnosticInfo*)data,pos,dstBuf);
|
|
|
|
|
|
+ encodeDiagnosticInfo((UA_DiagnosticInfo*) data, pos, dstBuf);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-Int32 decode_builtInDataType(char *srcBuf,Int32 type, Int32 *pos, void *dstStructure)
|
|
|
|
|
|
+Int32 decode_builtInDataType(char *srcBuf, Int32 type, Int32 *pos,
|
|
|
|
+ void *dstStructure)
|
|
{
|
|
{
|
|
switch (type)
|
|
switch (type)
|
|
- {
|
|
|
|
- case BOOLEAN:
|
|
|
|
- dstStructure = &decodeBoolean(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case SBYTE:
|
|
|
|
- dstStructure = &decodeSByte(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case BYTE:
|
|
|
|
- dstStructure = &decodeByte(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case INT16:
|
|
|
|
- dstStructure = &decodeInt16(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case UINT16:
|
|
|
|
- dstStructure = &decodeUInt16(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case INT32:
|
|
|
|
- dstStructure = &decodeInt32(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case UINT32:
|
|
|
|
- dstStructure = &decodeUInt32(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case INT64:
|
|
|
|
- dstStructure = &decodeInt64((srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case UINT64:
|
|
|
|
- dstStructure = &decodeUInt64(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case FLOAT:
|
|
|
|
- dstStructure = &decodeFloat(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case DOUBLE:
|
|
|
|
- dstStructure = &decodeDouble(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case STRING:
|
|
|
|
- dstStructure = &decodeUAByteString(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case DATE_TIME:
|
|
|
|
- dstStructure = &decodeUADateTime(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case GUID:
|
|
|
|
- decodeUAGuid(srcBuf,pos,(UA_Guid*)dstStructure);
|
|
|
|
- break;
|
|
|
|
- case BYTE_STRING:
|
|
|
|
- decodeUAByteString(srcBuf,pos,(UA_ByteString*) dstStructure);
|
|
|
|
- break;
|
|
|
|
- case XML_ELEMENT:
|
|
|
|
- decodeXmlElement(srcBuf,pos,(UA_XmlElement*) dstStructure);
|
|
|
|
- break;
|
|
|
|
- case NODE_ID:
|
|
|
|
- decodeUANodeId(srcBuf,pos,(UA_NodeId*)dstStructure);
|
|
|
|
- break;
|
|
|
|
- case EXPANDED_NODE_ID:
|
|
|
|
- decodeExpandedNodeId(srcBuf,pos,(UA_ExpandedNodeId*)dstStructure);
|
|
|
|
- break;
|
|
|
|
- case STATUS_CODE:
|
|
|
|
- dstStructure = &decodeUAStatusCode(srcBuf,pos);
|
|
|
|
- break;
|
|
|
|
- case QUALIFIED_NAME:
|
|
|
|
- encodeQualifiedName(((UA_QualifiedName*)data),pos,dstBuf);
|
|
|
|
- break;
|
|
|
|
- case LOCALIZED_TEXT:
|
|
|
|
- encodeLocalizedText(((UA_LocalizedText*)data),pos,dstBuf);
|
|
|
|
- break;
|
|
|
|
- case EXTENSION_OBJECT:
|
|
|
|
- encodeExtensionObject((UA_ExtensionObject*)data,pos,dstBuf);
|
|
|
|
- break;
|
|
|
|
- case DATA_VALUE:
|
|
|
|
- encodeDataValue((UA_DataValue*)data,pos,dstBuf);
|
|
|
|
- break;
|
|
|
|
- case VARIANT:
|
|
|
|
- encodeVariant((UA_Variant*)data,pos,dstBuf);
|
|
|
|
- break;
|
|
|
|
- case DIAGNOSTIC_INFO:
|
|
|
|
- encodeDiagnosticInfo((UA_DiagnosticInfo*)data,pos,dstBuf);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ {
|
|
|
|
+ case BOOLEAN:
|
|
|
|
+ *dstStructure = decodeBoolean(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case SBYTE:
|
|
|
|
+ *dstStructure = decodeSByte(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case BYTE:
|
|
|
|
+ *dstStructure = decodeByte(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case INT16:
|
|
|
|
+ *dstStructure = decodeInt16(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case UINT16:
|
|
|
|
+ *dstStructure = decodeUInt16(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case INT32:
|
|
|
|
+ *dstStructure = decodeInt32(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case UINT32:
|
|
|
|
+ *dstStructure = decodeUInt32(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case INT64:
|
|
|
|
+ *dstStructure = decodeInt64(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case UINT64:
|
|
|
|
+ *dstStructure = decodeUInt64(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case FLOAT:
|
|
|
|
+ *dstStructure = decodeFloat(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case DOUBLE:
|
|
|
|
+ *dstStructure = decodeDouble(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case STRING:
|
|
|
|
+ *dstStructure = decodeUAByteString(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case DATE_TIME:
|
|
|
|
+ *dstStructure = decodeUADateTime(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case GUID:
|
|
|
|
+ decodeUAGuid(srcBuf, pos, (UA_Guid*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case BYTE_STRING:
|
|
|
|
+ decodeUAByteString(srcBuf, pos, (UA_ByteString*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case XML_ELEMENT:
|
|
|
|
+ decodeXmlElement(srcBuf, pos, (UA_XmlElement*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case NODE_ID:
|
|
|
|
+ decodeUANodeId(srcBuf, pos, (UA_NodeId*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case EXPANDED_NODE_ID:
|
|
|
|
+ decodeExpandedNodeId(srcBuf, pos, (UA_ExpandedNodeId*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case STATUS_CODE:
|
|
|
|
+ dstStructure = &decodeUAStatusCode(srcBuf, pos);
|
|
|
|
+ break;
|
|
|
|
+ case QUALIFIED_NAME:
|
|
|
|
+ decodeQualifiedName(srcBuf, pos, (UA_QualifiedName*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case LOCALIZED_TEXT:
|
|
|
|
+ decodeLocalizedText(srcBuf, pos, (UA_LocalizedText*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case EXTENSION_OBJECT:
|
|
|
|
+ decodeExtensionObject(srcBuf, pos, (UA_ExtensionObject*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case DATA_VALUE:
|
|
|
|
+ decodeDataValue(srcBuf, pos, (UA_DataValue*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case VARIANT:
|
|
|
|
+ decodeVariant(srcBuf, pos, (UA_Variant*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ case DIAGNOSTIC_INFO:
|
|
|
|
+ decodeDiagnosticInfo(srcBuf, pos, (UA_DiagnosticInfo*) dstStructure);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-Int32 encode_builtInDatatypeArray(void *data, Int32 size, Int32 type, Int32 *pos, char *dstBuf)
|
|
|
|
|
|
+Int32 encode_builtInDatatypeArray(void *data, Int32 size, Int32 type,
|
|
|
|
+ Int32 *pos, char *dstBuf)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
void * pItem;
|
|
void * pItem;
|
|
- encode_builtInType((void*)(size), INT32, pos, dstBuf);
|
|
|
|
- for(i = 0; i < size;)
|
|
|
|
|
|
+ encode_builtInType((void*) (size), INT32, pos, dstBuf);
|
|
|
|
+ for (i = 0; i < size;)
|
|
{
|
|
{
|
|
encode_builtInType(pItem, type, pos, dstBuf);
|
|
encode_builtInType(pItem, type, pos, dstBuf);
|
|
switch (type)
|
|
switch (type)
|
|
{
|
|
{
|
|
case BOOLEAN:
|
|
case BOOLEAN:
|
|
- pItem = (Boolean*)(data) + 1;
|
|
|
|
|
|
+ pItem = (Boolean*) (data) + 1;
|
|
break;
|
|
break;
|
|
case SBYTE:
|
|
case SBYTE:
|
|
- pItem = (SByte*)(data) + 1;
|
|
|
|
|
|
+ pItem = (SByte*) (data) + 1;
|
|
break;
|
|
break;
|
|
case BYTE:
|
|
case BYTE:
|
|
- pItem = (Byte*)(data) + 1;
|
|
|
|
|
|
+ pItem = (Byte*) (data) + 1;
|
|
break;
|
|
break;
|
|
case INT16:
|
|
case INT16:
|
|
- pItem = (Int16*)(data) + 1;
|
|
|
|
|
|
+ pItem = (Int16*) (data) + 1;
|
|
break;
|
|
break;
|
|
case UINT16:
|
|
case UINT16:
|
|
- pItem = (UInt16*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UInt16*) (data) + 1;
|
|
break;
|
|
break;
|
|
case INT32:
|
|
case INT32:
|
|
- pItem = (Int32*)(data) + 1;
|
|
|
|
|
|
+ pItem = (Int32*) (data) + 1;
|
|
break;
|
|
break;
|
|
case UINT32:
|
|
case UINT32:
|
|
- pItem = (UInt32*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UInt32*) (data) + 1;
|
|
break;
|
|
break;
|
|
case INT64:
|
|
case INT64:
|
|
- pItem = (Int64*)(data) + 1;
|
|
|
|
|
|
+ pItem = (Int64*) (data) + 1;
|
|
break;
|
|
break;
|
|
case UINT64:
|
|
case UINT64:
|
|
- pItem = (UInt64*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UInt64*) (data) + 1;
|
|
break;
|
|
break;
|
|
case FLOAT:
|
|
case FLOAT:
|
|
- pItem = (Float*)(data) + 1;
|
|
|
|
|
|
+ pItem = (Float*) (data) + 1;
|
|
break;
|
|
break;
|
|
case DOUBLE:
|
|
case DOUBLE:
|
|
- pItem = (Double*)(data) + 1;
|
|
|
|
|
|
+ pItem = (Double*) (data) + 1;
|
|
break;
|
|
break;
|
|
case STRING:
|
|
case STRING:
|
|
- pItem = (UA_String*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_String*) (data) + 1;
|
|
break;
|
|
break;
|
|
case DATE_TIME:
|
|
case DATE_TIME:
|
|
- pItem = (UA_DateTime*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_DateTime*) (data) + 1;
|
|
break;
|
|
break;
|
|
case GUID:
|
|
case GUID:
|
|
- pItem = (UA_Guid*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_Guid*) (data) + 1;
|
|
break;
|
|
break;
|
|
case BYTE_STRING:
|
|
case BYTE_STRING:
|
|
- pItem = (UA_ByteString*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_ByteString*) (data) + 1;
|
|
break;
|
|
break;
|
|
case XML_ELEMENT:
|
|
case XML_ELEMENT:
|
|
- pItem = (UA_XmlElement*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_XmlElement*) (data) + 1;
|
|
break;
|
|
break;
|
|
case NODE_ID:
|
|
case NODE_ID:
|
|
- pItem = (UA_NodeId*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_NodeId*) (data) + 1;
|
|
break;
|
|
break;
|
|
case EXPANDED_NODE_ID:
|
|
case EXPANDED_NODE_ID:
|
|
- pItem = (UA_ExpandedNodeId*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_ExpandedNodeId*) (data) + 1;
|
|
break;
|
|
break;
|
|
case STATUS_CODE:
|
|
case STATUS_CODE:
|
|
- pItem = (UA_StatusCode*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_StatusCode*) (data) + 1;
|
|
break;
|
|
break;
|
|
case QUALIFIED_NAME:
|
|
case QUALIFIED_NAME:
|
|
- pItem = (UA_QualifiedName*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_QualifiedName*) (data) + 1;
|
|
break;
|
|
break;
|
|
case LOCALIZED_TEXT:
|
|
case LOCALIZED_TEXT:
|
|
- pItem = (UA_LocalizedText*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_LocalizedText*) (data) + 1;
|
|
break;
|
|
break;
|
|
case EXTENSION_OBJECT:
|
|
case EXTENSION_OBJECT:
|
|
- pItem = (UA_ExtensionObject*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_ExtensionObject*) (data) + 1;
|
|
break;
|
|
break;
|
|
case DATA_VALUE:
|
|
case DATA_VALUE:
|
|
- pItem = (UA_DataValue*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_DataValue*) (data) + 1;
|
|
break;
|
|
break;
|
|
case VARIANT:
|
|
case VARIANT:
|
|
- pItem = (UA_Variant*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_Variant*) (data) + 1;
|
|
break;
|
|
break;
|
|
case DIAGNOSTIC_INFO:
|
|
case DIAGNOSTIC_INFO:
|
|
- pItem = (UA_DiagnosticInfo*)(data) + 1;
|
|
|
|
|
|
+ pItem = (UA_DiagnosticInfo*) (data) + 1;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -267,12 +269,12 @@ Int32 encode_builtInDatatypeArray(void *data, Int32 size, Int32 type, Int32 *pos
|
|
|
|
|
|
Boolean decodeBoolean(char * const buf, Int32 *pos)
|
|
Boolean decodeBoolean(char * const buf, Int32 *pos)
|
|
{
|
|
{
|
|
- return ((Boolean)(buf[*pos]) > 0) ? UA_TRUE : UA_FALSE;
|
|
|
|
|
|
+ return ((Boolean) (buf[*pos]) > 0) ? UA_TRUE : UA_FALSE;
|
|
}
|
|
}
|
|
void encodeBoolean(Boolean value, Int32 *pos, char *dstBuf)
|
|
void encodeBoolean(Boolean value, Int32 *pos, char *dstBuf)
|
|
{
|
|
{
|
|
Boolean tmpBool = ((value > 0) ? UA_TRUE : UA_FALSE);
|
|
Boolean tmpBool = ((value > 0) ? UA_TRUE : UA_FALSE);
|
|
- mmemcpy(&(dstBuf[*pos]),&tmpBool,sizeof(Boolean));
|
|
|
|
|
|
+ mmemcpy(&(dstBuf[*pos]), &tmpBool, sizeof(Boolean));
|
|
}
|
|
}
|
|
|
|
|
|
SByte decodeSByte(char * const buf, Int32 *pos)
|
|
SByte decodeSByte(char * const buf, Int32 *pos)
|
|
@@ -283,7 +285,7 @@ SByte decodeSByte(char * const buf, Int32 *pos)
|
|
}
|
|
}
|
|
void encodeSByte(SByte value, Int32 *pos, char *dstBuf)
|
|
void encodeSByte(SByte value, Int32 *pos, char *dstBuf)
|
|
{
|
|
{
|
|
- memcpy(&(dstBuf[*pos]),&value,sizeof(SByte));
|
|
|
|
|
|
+ memcpy(&(dstBuf[*pos]), &value, sizeof(SByte));
|
|
*pos = (*pos) + 1;
|
|
*pos = (*pos) + 1;
|
|
|
|
|
|
}
|
|
}
|
|
@@ -295,7 +297,7 @@ Byte decodeByte(char * const buf, Int32 *pos)
|
|
}
|
|
}
|
|
void encodeByte(Byte value, Int32 *pos, char *dstBuf)
|
|
void encodeByte(Byte value, Int32 *pos, char *dstBuf)
|
|
{
|
|
{
|
|
- memcpy(&(dstBuf[*pos]),&value,sizeof(Byte));
|
|
|
|
|
|
+ memcpy(&(dstBuf[*pos]), &value, sizeof(Byte));
|
|
*pos = (*pos) + 1;
|
|
*pos = (*pos) + 1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -435,7 +437,7 @@ Int32 decodeUAString(char * const buf, Int32 *pos, UA_String *dstUAString)
|
|
else
|
|
else
|
|
{
|
|
{
|
|
dstUAString->Length = 0;
|
|
dstUAString->Length = 0;
|
|
- dstUAString->Data = (void*)0;
|
|
|
|
|
|
+ dstUAString->Data = (void*) 0;
|
|
}
|
|
}
|
|
*pos += dstUAString->Length;
|
|
*pos += dstUAString->Length;
|
|
return 0;
|
|
return 0;
|
|
@@ -515,14 +517,13 @@ Int32 encodeUAByteString(UA_ByteString *srcByteString, Int32* pos, char *dstBuf)
|
|
|
|
|
|
Int32 encodeXmlElement(UA_XmlElement xmlElement, Int32 *pos, char *dstBuf)
|
|
Int32 encodeXmlElement(UA_XmlElement xmlElement, Int32 *pos, char *dstBuf)
|
|
{
|
|
{
|
|
- return encodeUAByteString(&xmlElement.Data,pos,dstBuf);
|
|
|
|
|
|
+ return encodeUAByteString(&xmlElement.Data, pos, dstBuf);
|
|
}
|
|
}
|
|
Int32 decodeXmlElement(char * const buf, Int32* pos, UA_XmlElement *xmlElement)
|
|
Int32 decodeXmlElement(char * const buf, Int32* pos, UA_XmlElement *xmlElement)
|
|
{
|
|
{
|
|
return decodeUAByteString(buf, pos, &xmlElement->Data);
|
|
return decodeUAByteString(buf, pos, &xmlElement->Data);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
Int32 UAByteString_calcSize(UA_ByteString *byteString)
|
|
Int32 UAByteString_calcSize(UA_ByteString *byteString)
|
|
{
|
|
{
|
|
return UAString_calcSize((UA_String*) byteString);
|
|
return UAString_calcSize((UA_String*) byteString);
|
|
@@ -536,7 +537,7 @@ Int32 decodeUANodeId(char * const buf, Int32 *pos, UA_NodeId *dstNodeId)
|
|
switch (dstNodeId->EncodingByte)
|
|
switch (dstNodeId->EncodingByte)
|
|
{
|
|
{
|
|
case NIEVT_TWO_BYTE:
|
|
case NIEVT_TWO_BYTE:
|
|
- dstNodeId->Identifier.Numeric = decodeByte(buf, pos);
|
|
|
|
|
|
+ decode_builtInDataType(buf, BYTE, pos, &dstNodeId->Identifier.Numeric);
|
|
break;
|
|
break;
|
|
case NIEVT_FOUR_BYTE:
|
|
case NIEVT_FOUR_BYTE:
|
|
dstNodeId->Identifier.Numeric = decodeInt16(buf, pos);
|
|
dstNodeId->Identifier.Numeric = decodeInt16(buf, pos);
|
|
@@ -636,9 +637,10 @@ void encodeIntegerId(T_IntegerId integerId, Int32 *pos, char *buf)
|
|
encodeInt32(integerId, pos, buf);
|
|
encodeInt32(integerId, pos, buf);
|
|
}
|
|
}
|
|
|
|
|
|
-Int32 decodeExpandedNodeId(char *const buf, Int32 *pos,UA_ExpandedNodeId *nodeId)
|
|
|
|
|
|
+Int32 decodeExpandedNodeId(char * const buf, Int32 *pos,
|
|
|
|
+ UA_ExpandedNodeId *nodeId)
|
|
{
|
|
{
|
|
- nodeId->NodeId.EncodingByte = decodeByte(buf,pos);
|
|
|
|
|
|
+ nodeId->NodeId.EncodingByte = decodeByte(buf, pos);
|
|
switch (nodeId->NodeId.EncodingByte)
|
|
switch (nodeId->NodeId.EncodingByte)
|
|
{
|
|
{
|
|
case NIEVT_TWO_BYTE:
|
|
case NIEVT_TWO_BYTE:
|
|
@@ -660,49 +662,57 @@ Int32 decodeExpandedNodeId(char *const buf, Int32 *pos,UA_ExpandedNodeId *nodeId
|
|
decodeUAByteString(buf, pos, &(nodeId->NodeId.Identifier.ByteString));
|
|
decodeUAByteString(buf, pos, &(nodeId->NodeId.Identifier.ByteString));
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- if(nodeId->NodeId.EncodingByte & NIEVT_NAMESPACE_URI_FLAG)
|
|
|
|
|
|
+ if (nodeId->NodeId.EncodingByte & NIEVT_NAMESPACE_URI_FLAG)
|
|
{
|
|
{
|
|
nodeId->NodeId.Namespace = 0;
|
|
nodeId->NodeId.Namespace = 0;
|
|
decodeUAString(buf, pos, &(nodeId->NamespaceUri));
|
|
decodeUAString(buf, pos, &(nodeId->NamespaceUri));
|
|
}
|
|
}
|
|
- if(nodeId->NodeId.EncodingByte & NIEVT_SERVERINDEX_FLAG)
|
|
|
|
|
|
+ if (nodeId->NodeId.EncodingByte & NIEVT_SERVERINDEX_FLAG)
|
|
{
|
|
{
|
|
nodeId->ServerIndex = decodeUInt32(buf, pos);
|
|
nodeId->ServerIndex = decodeUInt32(buf, pos);
|
|
}
|
|
}
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
-Int32 encodeExpandedNodeId(UA_ExpandedNodeId *nodeId,Int32 *pos,char *dstBuf)
|
|
|
|
|
|
+Int32 encodeExpandedNodeId(UA_ExpandedNodeId *nodeId, Int32 *pos, char *dstBuf)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(nodeId->NodeId.EncodingByte), BYTE, pos, dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(nodeId->NodeId.EncodingByte), BYTE, pos,
|
|
|
|
+ dstBuf);
|
|
switch (nodeId->NodeId.EncodingByte)
|
|
switch (nodeId->NodeId.EncodingByte)
|
|
{
|
|
{
|
|
case NIEVT_TWO_BYTE:
|
|
case NIEVT_TWO_BYTE:
|
|
- encode_builtInType((void*)&(nodeId->NodeId.Identifier.Numeric),BYTE, pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(nodeId->NodeId.Identifier.Numeric), BYTE,
|
|
|
|
+ pos, dstBuf);
|
|
break;
|
|
break;
|
|
case NIEVT_FOUR_BYTE:
|
|
case NIEVT_FOUR_BYTE:
|
|
- encode_builtInType((void*)&(nodeId->NodeId.Identifier.Numeric),UINT16, pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(nodeId->NodeId.Identifier.Numeric), UINT16,
|
|
|
|
+ pos, dstBuf);
|
|
break;
|
|
break;
|
|
case NIEVT_NUMERIC:
|
|
case NIEVT_NUMERIC:
|
|
- encode_builtInType((void*)&(nodeId->NodeId.Identifier.Numeric),UINT32, pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(nodeId->NodeId.Identifier.Numeric), UINT32,
|
|
|
|
+ pos, dstBuf);
|
|
break;
|
|
break;
|
|
case NIEVT_STRING:
|
|
case NIEVT_STRING:
|
|
- encode_builtInType((void*)&(nodeId->NodeId.Identifier.String),STRING, pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(nodeId->NodeId.Identifier.String), STRING,
|
|
|
|
+ pos, dstBuf);
|
|
break;
|
|
break;
|
|
case NIEVT_GUID:
|
|
case NIEVT_GUID:
|
|
- encode_builtInType((void*)&(nodeId->NodeId.Identifier.Guid),STRING, pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(nodeId->NodeId.Identifier.Guid), STRING,
|
|
|
|
+ pos, dstBuf);
|
|
break;
|
|
break;
|
|
case NIEVT_BYTESTRING:
|
|
case NIEVT_BYTESTRING:
|
|
- encode_builtInType((void*)&(nodeId->NodeId.Identifier.ByteString),BYTE_STRING, pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(nodeId->NodeId.Identifier.ByteString),
|
|
|
|
+ BYTE_STRING, pos, dstBuf);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- if(nodeId->NodeId.EncodingByte & NIEVT_NAMESPACE_URI_FLAG)
|
|
|
|
|
|
+ if (nodeId->NodeId.EncodingByte & NIEVT_NAMESPACE_URI_FLAG)
|
|
{
|
|
{
|
|
nodeId->NodeId.Namespace = 0;
|
|
nodeId->NodeId.Namespace = 0;
|
|
- encode_builtInType((void*)&(nodeId->NamespaceUri),STRING,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(nodeId->NamespaceUri), STRING, pos,
|
|
|
|
+ dstBuf);
|
|
}
|
|
}
|
|
- if(nodeId->NodeId.EncodingByte & NIEVT_SERVERINDEX_FLAG)
|
|
|
|
|
|
+ if (nodeId->NodeId.EncodingByte & NIEVT_SERVERINDEX_FLAG)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(nodeId->ServerIndex),UINT32,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(nodeId->ServerIndex), UINT32, pos, dstBuf);
|
|
}
|
|
}
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
@@ -712,124 +722,189 @@ UA_StatusCode decodeUAStatusCode(char * const buf, Int32 *pos)
|
|
return decodeUInt32(buf, pos);
|
|
return decodeUInt32(buf, pos);
|
|
}
|
|
}
|
|
|
|
|
|
-Int32 decodeQualifiedName(char * const buf, Int32 *pos, UA_QualifiedName *dstQualifiedName)
|
|
|
|
|
|
+Int32 decodeQualifiedName(char * const buf, Int32 *pos,
|
|
|
|
+ UA_QualifiedName *dstQualifiedName)
|
|
{
|
|
{
|
|
- //TODO implement
|
|
|
|
|
|
+ //TODO memory management for ua string
|
|
|
|
+ decode_builtInDataType(buf, STRING, pos, &(dstQualifiedName->NamespaceIndex));
|
|
|
|
+ decode_builtInDataType(buf, STRING, pos, &(dstQualifiedName->Name));
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
-Int32 encodeQualifiedName(UA_QualifiedName *qualifiedName,Int32 *pos,char *dstBuf)
|
|
|
|
|
|
+Int32 encodeQualifiedName(UA_QualifiedName *qualifiedName, Int32 *pos,
|
|
|
|
+ char *dstBuf)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(qualifiedName->NamespaceIndex),UINT16,pos,dstBuf);
|
|
|
|
- encode_builtInType((void*)&(qualifiedName->Name),STRING,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(qualifiedName->NamespaceIndex), UINT16, pos,
|
|
|
|
+ dstBuf);
|
|
|
|
+ encode_builtInType((void*) &(qualifiedName->Name), STRING, pos, dstBuf);
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
|
|
|
|
-Int32 decodeLocalizedText(char * const buf, Int32 *pos, UA_LocalizedText *dstLocalizedText)
|
|
|
|
|
|
+Int32 decodeLocalizedText(char * const buf, Int32 *pos,
|
|
|
|
+ UA_LocalizedText *dstLocalizedText)
|
|
{
|
|
{
|
|
- //TODO implement
|
|
|
|
|
|
+ //TODO memory management for ua string
|
|
|
|
+ decode_builtInDataType(buf, BYTE, pos, dstLocalizedText->EncodingMask);
|
|
|
|
+ decode_builtInDataType(buf, STRING, pos, dstLocalizedText->Locale);
|
|
|
|
+ decode_builtInDataType(buf, STRING, pos, dstLocalizedText->Text);
|
|
|
|
+
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
-Int32 encodeLocalizedText(UA_LocalizedText *localizedText,Int32 *pos,char *dstBuf)
|
|
|
|
|
|
+Int32 encodeLocalizedText(UA_LocalizedText *localizedText, Int32 *pos,
|
|
|
|
+ char *dstBuf)
|
|
{
|
|
{
|
|
- if(localizedText->EncodingMask & 0x01)
|
|
|
|
|
|
+ if (localizedText->EncodingMask & 0x01)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(localizedText->Locale),STRING,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(localizedText->Locale), STRING, pos,
|
|
|
|
+ dstBuf);
|
|
}
|
|
}
|
|
- if(localizedText->EncodingMask & 0x02)
|
|
|
|
|
|
+ if (localizedText->EncodingMask & 0x02)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(localizedText->Text),STRING,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(localizedText->Text), STRING, pos, dstBuf);
|
|
}
|
|
}
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
|
|
|
|
-Int32 decodeExtensionObject(char * const buf, Int32 *pos, UA_ExtensionObject *dstExtensionObject)
|
|
|
|
|
|
+Int32 decodeExtensionObject(char * const buf, Int32 *pos,
|
|
|
|
+ UA_ExtensionObject *dstExtensionObject)
|
|
{
|
|
{
|
|
//TODO to be implemented
|
|
//TODO to be implemented
|
|
|
|
+ decode_builtInDataType(buf, NODE_ID, pos, dstExtensionObject->TypeId);
|
|
|
|
+ decode_builtInDataType(buf, BYTE, pos, dstExtensionObject->Encoding);
|
|
|
|
+ //decode_builtInDataType(buf,INT32,pos,dstExtensionObject->Leng
|
|
|
|
+
|
|
|
|
+ //TODO length in bytearray and in extension object as parameter saved
|
|
|
|
+ decode_builtInDataType(buf, BYTE_STRING, pos, dstExtensionObject->Body);
|
|
|
|
+ dstExtensionObject->Length = dstExtensionObject->Body.Length;
|
|
|
|
+
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
-Int32 encodeExtensionObject(UA_ExtensionObject *extensionObject,Int32 *pos,char *dstBuf)
|
|
|
|
|
|
+Int32 encodeExtensionObject(UA_ExtensionObject *extensionObject, Int32 *pos,
|
|
|
|
+ char *dstBuf)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(extensionObject->TypeId),NODE_ID,pos,dstBuf);
|
|
|
|
- encode_builtInType((void*)&(extensionObject->Encoding),BYTE,pos,dstBuf);
|
|
|
|
- switch(extensionObject->Encoding)
|
|
|
|
|
|
+ encode_builtInType((void*) &(extensionObject->TypeId), NODE_ID, pos,
|
|
|
|
+ dstBuf);
|
|
|
|
+ encode_builtInType((void*) &(extensionObject->Encoding), BYTE, pos, dstBuf);
|
|
|
|
+ switch (extensionObject->Encoding)
|
|
{
|
|
{
|
|
case 0x00:
|
|
case 0x00:
|
|
- encode_builtInType((void*)&(extensionObject->Body.Length), INT32, pos, dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(extensionObject->Body.Length), INT32, pos,
|
|
|
|
+ dstBuf);
|
|
break;
|
|
break;
|
|
case 0x01:
|
|
case 0x01:
|
|
- encode_builtInType((void*)&(extensionObject->Body), BYTE_STRING, pos, dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(extensionObject->Body), BYTE_STRING, pos,
|
|
|
|
+ dstBuf);
|
|
break;
|
|
break;
|
|
case 0x02:
|
|
case 0x02:
|
|
- encode_builtInType((void*)&(extensionObject->Body), BYTE_STRING, pos, dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(extensionObject->Body), BYTE_STRING, pos,
|
|
|
|
+ dstBuf);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
|
|
|
|
-Int32 decodeVariant(char * const buf, Int32 *pos, UA_ExtensionObject *dstExtensionObject)
|
|
|
|
|
|
+Int32 decodeVariant(char * const buf, Int32 *pos, UA_Variant *dstVariant)
|
|
{
|
|
{
|
|
- //TODO to be implemented
|
|
|
|
|
|
+ decode_builtInDataType(buf, BYTE, pos, dstVariant->EncodingMask);
|
|
|
|
+
|
|
|
|
+ if (dstVariant->EncodingMask & (1 << 7))
|
|
|
|
+ {
|
|
|
|
+ decode_builtInDataType(buf, INT32, pos, dstVariant->ArrayLength);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //TODO implement the multiarray decoding
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
-Int32 encodeVariant(UA_Variant *variant, Int32 *pos,char *dstBuf)
|
|
|
|
|
|
+Int32 encodeVariant(UA_Variant *variant, Int32 *pos, char *dstBuf)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(variant->EncodingMask),BYTE,pos,dstBuf);
|
|
|
|
- if(variant->EncodingMask & (1<<7)) // array length is encoded
|
|
|
|
|
|
+ encode_builtInType((void*) &(variant->EncodingMask), BYTE, pos, dstBuf);
|
|
|
|
+ if (variant->EncodingMask & (1 << 7)) // array length is encoded
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(variant->ArrayLength),INT32,pos,dstBuf);
|
|
|
|
- if(variant->ArrayLength > 0)
|
|
|
|
|
|
+ encode_builtInType((void*) &(variant->ArrayLength), INT32, pos, dstBuf);
|
|
|
|
+ if (variant->ArrayLength > 0)
|
|
{
|
|
{
|
|
//encode array as given by variant type
|
|
//encode array as given by variant type
|
|
- encode_builtInDatatypeArray((void*)variant->Value,variant->ArrayLength,
|
|
|
|
- (variant->EncodingMask & 31),pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInDatatypeArray((void*) variant->Value,
|
|
|
|
+ variant->ArrayLength, (variant->EncodingMask & 31), pos,
|
|
|
|
+ dstBuf);
|
|
}
|
|
}
|
|
//single value to encode
|
|
//single value to encode
|
|
- encode_builtInType((void*)variant->Value,(variant->EncodingMask & 31),pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) variant->Value, (variant->EncodingMask & 31),
|
|
|
|
+ pos, dstBuf);
|
|
}
|
|
}
|
|
else //single value to encode
|
|
else //single value to encode
|
|
{
|
|
{
|
|
- encode_builtInType((void*)variant->Value,(variant->EncodingMask & 31),pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) variant->Value, (variant->EncodingMask & 31),
|
|
|
|
+ pos, dstBuf);
|
|
}
|
|
}
|
|
- if(variant->EncodingMask & (1<<6)) // encode array dimension field
|
|
|
|
|
|
+ if (variant->EncodingMask & (1 << 6)) // encode array dimension field
|
|
{
|
|
{
|
|
- encode_builtInType((void*)variant->Value,(variant->EncodingMask & 31),pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) variant->Value, (variant->EncodingMask & 31),
|
|
|
|
+ pos, dstBuf);
|
|
}
|
|
}
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
|
|
|
|
-Int32 decodeDataValue(char* const buf, Int32 *pos, UA_DataValue *dataValue)
|
|
|
|
|
|
+Int32 decodeDataValue(char* const buf, Int32 *pos, UA_DataValue *dstDataValue)
|
|
{
|
|
{
|
|
|
|
|
|
|
|
+ decode_builtInDataType(buf, BYTE, pos, dstDataValue->EncodingMask);
|
|
|
|
+ decode_builtInDataType(buf, VARIANT, pos, dstDataValue->Value);
|
|
|
|
+
|
|
|
|
+ decode_builtInDataType(buf, STATUS_CODE, pos, dstDataValue->Status);
|
|
|
|
+
|
|
|
|
+ decode_builtInDataType(buf, DATE_TIME, pos, dstDataValue->SourceTimestamp);
|
|
|
|
+
|
|
|
|
+ decode_builtInDataType(buf, UINT16, dstDataValue->SourcePicoseconds);
|
|
|
|
+
|
|
|
|
+ if (dstDataValue->SourcePicoseconds > MAX_PICO_SECONDS)
|
|
|
|
+ {
|
|
|
|
+ dstDataValue->SourcePicoseconds = MAX_PICO_SECONDS;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ decode_builtInDataType(buf, DATE_TIME, dstDataValue->ServerTimestamp);
|
|
|
|
+
|
|
|
|
+ decode_builtInDataType(buf, UINT16, dstDataValue->ServerPicoseconds);
|
|
|
|
+
|
|
|
|
+ if (dstDataValue->ServerPicoseconds > MAX_PICO_SECONDS)
|
|
|
|
+ {
|
|
|
|
+ dstDataValue->ServerPicoseconds = MAX_PICO_SECONDS;
|
|
|
|
+ }
|
|
|
|
+
|
|
//TODO to be implemented
|
|
//TODO to be implemented
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
}
|
|
}
|
|
Int32 encodeDataValue(UA_DataValue *dataValue, Int32 *pos, char *dstBuf)
|
|
Int32 encodeDataValue(UA_DataValue *dataValue, Int32 *pos, char *dstBuf)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(dataValue->EncodingMask),BYTE,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(dataValue->EncodingMask), BYTE, pos, dstBuf);
|
|
|
|
|
|
- if(dataValue->EncodingMask & 0x01)
|
|
|
|
|
|
+ if (dataValue->EncodingMask & 0x01)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(dataValue->Value),VARIANT,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(dataValue->Value), VARIANT, pos, dstBuf);
|
|
}
|
|
}
|
|
- if(dataValue->EncodingMask & 0x02)
|
|
|
|
|
|
+ if (dataValue->EncodingMask & 0x02)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(dataValue->Status),STATUS_CODE,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(dataValue->Status), STATUS_CODE, pos,
|
|
|
|
+ dstBuf);
|
|
}
|
|
}
|
|
- if(dataValue->EncodingMask & 0x04)
|
|
|
|
|
|
+ if (dataValue->EncodingMask & 0x04)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(dataValue->SourceTimestamp),DATE_TIME,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(dataValue->SourceTimestamp), DATE_TIME,
|
|
|
|
+ pos, dstBuf);
|
|
}
|
|
}
|
|
- if(dataValue->EncodingMask & 0x08)
|
|
|
|
|
|
+ if (dataValue->EncodingMask & 0x08)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(dataValue->SourcePicoseconds),UINT16,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(dataValue->SourcePicoseconds), UINT16, pos,
|
|
|
|
+ dstBuf);
|
|
}
|
|
}
|
|
- if(dataValue->EncodingMask & 0x10)
|
|
|
|
|
|
+ if (dataValue->EncodingMask & 0x10)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(dataValue->ServerTimestamp),DATE_TIME,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(dataValue->ServerTimestamp), DATE_TIME,
|
|
|
|
+ pos, dstBuf);
|
|
}
|
|
}
|
|
- if(dataValue->EncodingMask & 0x20)
|
|
|
|
|
|
+ if (dataValue->EncodingMask & 0x20)
|
|
{
|
|
{
|
|
- encode_builtInType((void*)&(dataValue->ServerPicoseconds),UINT16,pos,dstBuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(dataValue->ServerPicoseconds), UINT16, pos,
|
|
|
|
+ dstBuf);
|
|
}
|
|
}
|
|
return UA_NO_ERROR;
|
|
return UA_NO_ERROR;
|
|
|
|
|
|
@@ -881,37 +956,46 @@ Int32 decodeDiagnosticInfo(char* buf, Int32 *pos,
|
|
*pos += 1;
|
|
*pos += 1;
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
-Int32 encodeDiagnosticInfo(UA_DiagnosticInfo *diagnosticInfo,Int32 *pos,char *dstbuf)
|
|
|
|
|
|
+Int32 encodeDiagnosticInfo(UA_DiagnosticInfo *diagnosticInfo, Int32 *pos,
|
|
|
|
+ char *dstbuf)
|
|
{
|
|
{
|
|
Byte mask;
|
|
Byte mask;
|
|
mask = 0;
|
|
mask = 0;
|
|
|
|
|
|
- encode_builtInType((void*)(&(diagnosticInfo->EncodingMask)),BYTE,pos,dstbuf);
|
|
|
|
|
|
+ encode_builtInType((void*) (&(diagnosticInfo->EncodingMask)), BYTE, pos,
|
|
|
|
+ dstbuf);
|
|
for (mask = 1; mask <= 0x40; mask = mask << 2)
|
|
for (mask = 1; mask <= 0x40; mask = mask << 2)
|
|
{
|
|
{
|
|
switch (mask & (diagnosticInfo->EncodingMask))
|
|
switch (mask & (diagnosticInfo->EncodingMask))
|
|
{
|
|
{
|
|
case DIEMT_SYMBOLIC_ID:
|
|
case DIEMT_SYMBOLIC_ID:
|
|
// puts("diagnosticInfo symbolic id");
|
|
// puts("diagnosticInfo symbolic id");
|
|
- encode_builtInType((void*)&(diagnosticInfo->SymbolicId),INT32,pos,dstbuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(diagnosticInfo->SymbolicId), INT32,
|
|
|
|
+ pos, dstbuf);
|
|
break;
|
|
break;
|
|
case DIEMT_NAMESPACE:
|
|
case DIEMT_NAMESPACE:
|
|
- encode_builtInType((void*)&(diagnosticInfo->NamespaceUri),INT32,pos,dstbuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(diagnosticInfo->NamespaceUri), INT32,
|
|
|
|
+ pos, dstbuf);
|
|
break;
|
|
break;
|
|
case DIEMT_LOCALIZED_TEXT:
|
|
case DIEMT_LOCALIZED_TEXT:
|
|
- encode_builtInType((void*)&(diagnosticInfo->LocalizedText),INT32,pos,dstbuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(diagnosticInfo->LocalizedText), INT32,
|
|
|
|
+ pos, dstbuf);
|
|
break;
|
|
break;
|
|
case DIEMT_LOCALE:
|
|
case DIEMT_LOCALE:
|
|
- encode_builtInType((void*)&(diagnosticInfo->Locale),INT32,pos,dstbuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(diagnosticInfo->Locale), INT32, pos,
|
|
|
|
+ dstbuf);
|
|
break;
|
|
break;
|
|
case DIEMT_ADDITIONAL_INFO:
|
|
case DIEMT_ADDITIONAL_INFO:
|
|
- encode_builtInType((void*)&(diagnosticInfo->AdditionalInfo),STRING,pos,dstbuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(diagnosticInfo->AdditionalInfo),
|
|
|
|
+ STRING, pos, dstbuf);
|
|
break;
|
|
break;
|
|
case DIEMT_INNER_STATUS_CODE:
|
|
case DIEMT_INNER_STATUS_CODE:
|
|
- encode_builtInType((void*)&(diagnosticInfo->InnerStatusCode),STATUS_CODE,pos,dstbuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(diagnosticInfo->InnerStatusCode),
|
|
|
|
+ STATUS_CODE, pos, dstbuf);
|
|
break;
|
|
break;
|
|
case DIEMT_INNER_DIAGNOSTIC_INFO:
|
|
case DIEMT_INNER_DIAGNOSTIC_INFO:
|
|
- encode_builtInType((void*)&(diagnosticInfo->InnerDiagnosticInfo),DIAGNOSTIC_INFO,pos,dstbuf);
|
|
|
|
|
|
+ encode_builtInType((void*) &(diagnosticInfo->InnerDiagnosticInfo),
|
|
|
|
+ DIAGNOSTIC_INFO, pos, dstbuf);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|