Browse Source

The function diagnosticInfo_calcSize is now working correct.

MaximilianBauer 11 years ago
parent
commit
f3173be626
3 changed files with 11 additions and 14 deletions
  1. 0 1
      OPCUAServer/.cproject
  2. 10 10
      OPCUAServer/src/opcua_binaryEncDec.c
  3. 1 3
      OPCUAServer/tests/check_stack.c

+ 0 - 1
OPCUAServer/.cproject

@@ -499,7 +499,6 @@
 			</target>
 			<target name="Server" path="src" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
 				<buildCommand>make</buildCommand>
-				<buildArguments/>
 				<buildTarget>Server</buildTarget>
 				<stopOnError>true</stopOnError>
 				<useDefaultCommand>true</useDefaultCommand>

+ 10 - 10
OPCUAServer/src/opcua_binaryEncDec.c

@@ -278,38 +278,38 @@ Int32 diagnosticInfo_calcSize(UA_DiagnosticInfo *diagnosticInfo)
 	Int32 j = 0;
 	mask = 0;
 	puts("diagnosticInfo called");
+	printf("with this mask %u", diagnosticInfo->EncodingMask);
 	for(mask = 1; mask <= 0x40; mask *= 2)
 	{
 		j++;
-		puts("loop");
-		printf("mask %u",mask);
-		printf("mask calc %u",mask & (diagnosticInfo->EncodingMask));
 		switch(mask & (diagnosticInfo->EncodingMask))
 		{
 
-		DIEMT_SYMBOLIC_ID:
+		case DIEMT_SYMBOLIC_ID:
 			puts("diagnosticInfo symbolic id");
 			length += sizeof(Int32);
 			break;
-		DIEMT_NAMESPACE:
+		case DIEMT_NAMESPACE:
 			length += sizeof(Int32);
 			break;
-		DIEMT_LOCALIZED_TEXT:
+		case DIEMT_LOCALIZED_TEXT:
 			length += sizeof(Int32);
 			break;
-		DIEMT_LOCALE:
+		case DIEMT_LOCALE:
 			length += sizeof(Int32);
 			break;
-		DIEMT_ADDITIONAL_INFO:
+		case DIEMT_ADDITIONAL_INFO:
 			length += diagnosticInfo->AdditionalInfo.Length;
 			length += sizeof(Int32);
 			break;
-		DIEMT_INNER_STATUS_CODE:
+		case DIEMT_INNER_STATUS_CODE:
 			length += sizeof(UA_StatusCode);
 			break;
-		DIEMT_INNER_DIAGNOSTIC_INFO:
+		case DIEMT_INNER_DIAGNOSTIC_INFO:
 			length += diagnosticInfo_calcSize(diagnosticInfo->InnerDiagnosticInfo);
 			break;
+		default:
+			break;
 		}
 	}
 	return length;

+ 1 - 3
OPCUAServer/tests/check_stack.c

@@ -124,7 +124,6 @@ END_TEST
 START_TEST(diagnosticInfo_calcSize_test)
 {
 
-
 	Int32 valreal = 0;
 	Int32 valcalc = 0;
 	UA_DiagnosticInfo diagnosticInfo;
@@ -135,9 +134,8 @@ START_TEST(diagnosticInfo_calcSize_test)
 	diagnosticInfo.AdditionalInfo.Data = "OPCUA";
 	diagnosticInfo.AdditionalInfo.Length = 5;
 
-
 	valcalc = diagnosticInfo_calcSize(&diagnosticInfo);
-	valreal = 23;
+	valreal = 26;
 	ck_assert_int_eq(valcalc,valreal);