Ver código fonte

EncodeByte has been added.
A Test Suit to test it has been added to check_stack.

MaximilianBauer 11 anos atrás
pai
commit
11f3dcf5d0

+ 5 - 6
OPCUAServer/.cproject

@@ -106,6 +106,11 @@
 			<resource resourceType="PROJECT" workspacePath="/OPCUAServer"/>
 		</configuration>
 	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings">
+		<doc-comment-owner id="org.eclipse.cdt.ui.doxygen">
+			<path value=""/>
+		</doc-comment-owner>
+	</storageModule>
 	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
 		<buildTargets>
 			<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
@@ -494,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>
@@ -502,9 +506,4 @@
 			</target>
 		</buildTargets>
 	</storageModule>
-	<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings">
-		<doc-comment-owner id="org.eclipse.cdt.ui.doxygen">
-			<path value=""/>
-		</doc-comment-owner>
-	</storageModule>
 </cproject>

+ 1 - 1
OPCUAServer/.settings/language.settings.xml

@@ -12,7 +12,7 @@
 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser" keep-relative-paths="false" name="CDT GCC Build Output Parser" parameter="(gcc)|([gc]\+\+)|(clang)" prefer-non-shared="true"/>
+			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" ref="shared-provider"/>
 		</extension>
 	</configuration>

+ 8 - 0
OPCUAServer/src/opcua_binaryEncDec.c

@@ -16,6 +16,14 @@ Byte convertToByte(const char *buf, Int32 *pos)
 
 }
 
+void encodeByte(Byte encodeByte, Int32 *pos, AD_RawMessage *dstBuf)
+{
+	dstBuf->message[*pos] = encodeByte;
+	*pos = (*pos) + 1;
+	dstBuf->length = dstBuf->length + 1;
+
+}
+
 UInt16 convertToUInt16(const char* buf, Int32 *pos)
 {
 

+ 9 - 0
OPCUAServer/src/opcua_binaryEncDec.h

@@ -10,6 +10,7 @@
 
 #include "opcua_builtInDatatypes.h"
 
+#include "opcua_advancedDatatypes.h"
 
 
 //functions
@@ -21,6 +22,14 @@
  */
 Byte convertToByte(const char* buf, Int32 *pos);
 
+/**
+ *
+ * @param encodeByte 	byte that should be encoded
+ * @param pos 			position at which the data is located in/out, parser position after the conversion
+ * @param dstBuf		rawMessage where the Byte is encoded in
+ */
+void encodeByte(Byte encodeByte, Int32 *pos, AD_RawMessage *dstBuf);
+
 /**
  *
  * @param buf

+ 34 - 1
OPCUAServer/tests/check_stack.c

@@ -11,6 +11,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include "../src/opcua_transportLayer.h"
+
+#include "../src/opcua_advancedDatatypes.h"
 #include "check.h"
 
 START_TEST(test_getPacketType_validParameter)
@@ -48,6 +50,23 @@ START_TEST(test_decodeRequestHeader_validParameter)
 }
 END_TEST
 
+START_TEST(test_binaryEncDec_encodeByte)
+{
+		Byte testByte = 0x08;
+		char testChar;
+		AD_RawMessage rawMessage;
+		rawMessage.length = 0;
+		rawMessage.message = &testChar;
+
+		Int32 position = 0;
+		encodeByte(testByte, &position, &rawMessage);
+
+		ck_assert_int_eq(rawMessage.message[0], 0x08);
+		ck_assert_int_eq(rawMessage.length, 1);
+		ck_assert_int_eq(position, 1);
+}
+END_TEST
+
 
 Suite* TL_testSuite_getPacketType(void)
 {
@@ -58,6 +77,15 @@ Suite* TL_testSuite_getPacketType(void)
 	return s;
 }
 
+Suite* TL_testSuite_encode(void)
+{
+	Suite *s = suite_create("encoding");
+	TCase *tc_core = tcase_create("Core");
+	tcase_add_test(tc_core,test_binaryEncDec_encodeByte);
+	suite_add_tcase(s,tc_core);
+	return s;
+}
+
 
 /*
 Suite* TL_<TESTSUITENAME>(void)
@@ -74,13 +102,18 @@ int main (void)
 {
 	int number_failed;
 
-
 	Suite *s = TL_testSuite_getPacketType();
 	SRunner *sr = srunner_create(s);
 	srunner_run_all(sr,CK_NORMAL);
 	number_failed = srunner_ntests_failed(sr);
 	srunner_free(sr);
 
+	s = TL_testSuite_encode();
+	sr = srunner_create(s);
+	srunner_run_all(sr,CK_NORMAL);
+	number_failed += srunner_ntests_failed(sr);
+	srunner_free(sr);
+
 
 	/* <TESTSUITE_TEMPLATE>
 	s =  <TESTSUITENAME>;