From 1476f1ae26e4054c01f9c85bc5e66b683c155bb2 Mon Sep 17 00:00:00 2001
From: "severin.landwein" <Severin.Landwein@th-koeln.de>
Date: Tue, 3 May 2022 09:22:39 +0200
Subject: [PATCH] start rework

---
 class_for_demonstration.cpp       | 25 +++++++++++++
 class_for_demonstration.h         | 20 ++++++++++
 code_conventions.h => example.ino | 61 ++++++-------------------------
 3 files changed, 57 insertions(+), 49 deletions(-)
 create mode 100644 class_for_demonstration.cpp
 create mode 100644 class_for_demonstration.h
 rename code_conventions.h => example.ino (68%)

diff --git a/class_for_demonstration.cpp b/class_for_demonstration.cpp
new file mode 100644
index 0000000..d22b43b
--- /dev/null
+++ b/class_for_demonstration.cpp
@@ -0,0 +1,25 @@
+#include "class_for_demonstration.h"
+
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <string>
+#include <vector>
+
+#include "another_header.h"
+
+uint8_t ClassForDemonstration::get_member_1() {
+    return member_example_1;
+}
+
+void ClassForDemonstration::set_member_1(uint8_t value) {
+    member_example_1 = value;
+}
+
+void ClassForDemonstration::serial_out_object(Stream &stream) {
+    stream.print(get_member_1());
+}
+
+void ClassForDemonstration::fill_object() {
+    set_member_1(millis());
+}
\ No newline at end of file
diff --git a/class_for_demonstration.h b/class_for_demonstration.h
new file mode 100644
index 0000000..be008a1
--- /dev/null
+++ b/class_for_demonstration.h
@@ -0,0 +1,20 @@
+#ifndef CLASS_FOR_DEMONSTRATION_H
+#define CLASS_FOR_DEMONSTRATION_H
+
+#define KONST_TO_SHOW
+
+#include <sys/types.h>
+
+class ClassForDemonstration
+{
+private:
+    uint8_t member_example_1;
+
+public:
+    uint8_t get_member_1() { return member_example_1; };
+    void set_member_1(uint8_t aValue) { member_example_1 = aValue; };
+    void serial_out_object(Stream &stream);
+    void fill_object();
+};
+
+#endif
diff --git a/code_conventions.h b/example.ino
similarity index 68%
rename from code_conventions.h
rename to example.ino
index cef0442..fcb9009 100644
--- a/code_conventions.h
+++ b/example.ino
@@ -27,10 +27,15 @@
     * Jede Funktion/Methode soll mit einem oder mehreren Unittests getestet werden, soweit das möglich ist.
     * Jede Funktion/Methode soll nach Fertigstellung von einem Kollegen einem Review unterzogen werden.
 
-    Konventionen zur Anordnung
-    =================================
+    Konventionen zur Einbindung von Bibliotheken
+    ============================================
+    * Generell sollten Bibliotheken dort eingebunden, wo sie benötigt werden. 
+    * Dies gilt sowohl für Header- (.h) als auch für Sourcefiles (.cpp / .c). 
+    * Wird beispielsweise eine Bibliothek erst bei der Definition einer Funktion benötigt, so sollte die Bibliothek in der Sourcefile eingebunden werden. 
+    * Wird die Bibliothek allerdings schon bei der Deklaration einer Funktion benötigt, so muss die Bibliothek in der Headerfile eingebunden werden.
+
     * Die Reihenfolge von Includes wird nach dem folgenden Schema durchgeführt:
-    -- Eigene Headerdatei
+    -- Eigene Headerdatei (in der Sourcefile)
     -- Leerzeile
     -- C System Header
     -- Leerzeile
@@ -41,34 +46,7 @@
     -- Projektheader
  */
 
-
-#ifndef CODE_CONVENTIONS_H
-#define CODE_CONVENTIONS_H
-
-#define KONST_TO_SHOW
-
-#include "code_conventions.h"
-
-#include <sys/types.h>
-#include <unistd.h>
-
-#include <string>
-#include <vector>
-
-#include "another_header.h"
-
-class ClassForDemonstration
-{
-private:
-    byte member_example_1;
-    byte memberExample2;
-
-public:
-    byte get_member_1() { return member_example_1; };
-    byte getMember2() { return memberExample2; };
-    void set_member_1(byte aValue) { member_example_1 = aValue; };
-    void setMember2(byte aValue) { memberExample2 = aValue; };
-};
+#include "class_for_demonstration.h"
 
 ClassForDemonstration demo_object;
 
@@ -79,22 +57,7 @@ void setup()
 
 void loop()
 {
-    fill_object(demo_object);
-    serial_out_object(Serial, demo_object);
+    demo_object.fill_object();
+    demo_object.serial_out_object(Serial);
     Serial.println();
-}
-
-void fill_object(ClassForDemonstration &aObject)
-{
-    aObject.set_member_1(millis());
-    aObject.setMember2(millis());
-}
-
-void serial_out_object(Stream &aStream, ClassForDemonstration &aObject)
-{
-    aStream.print(aObject.get_member_1());
-    aStream.print("\t");
-    aStream.print(aObject.getMember2());
-}
-
-#endif
+}
\ No newline at end of file
-- 
GitLab