From cfc7c07bb1207ddb0ecd9033072b44db55096736 Mon Sep 17 00:00:00 2001
From: polymurph <eddyed.k@gmail.com>
Date: Sat, 16 Oct 2021 21:15:58 +0200
Subject: [PATCH] added structure idea for KED

---
 KED_structure_idea/Makefile                   |  29 +++++++++++++
 KED_structure_idea/bsl/hw_plattform.hpp       |  12 ++++++
 .../csl/implementations/avr/avr_pin.hpp       |  37 +++++++++++++++++
 .../csl/implementations/dummy/dummy_pin.hpp   |  38 ++++++++++++++++++
 .../csl/implementations/stm/stm_pin.hpp       |  37 +++++++++++++++++
 KED_structure_idea/csl/interfaces/pin.hpp     |  23 +++++++++++
 KED_structure_idea/main.cpp                   |  13 ++++++
 KED_structure_idea/runtest                    | Bin 0 -> 17576 bytes
 8 files changed, 189 insertions(+)
 create mode 100644 KED_structure_idea/Makefile
 create mode 100644 KED_structure_idea/bsl/hw_plattform.hpp
 create mode 100644 KED_structure_idea/csl/implementations/avr/avr_pin.hpp
 create mode 100644 KED_structure_idea/csl/implementations/dummy/dummy_pin.hpp
 create mode 100644 KED_structure_idea/csl/implementations/stm/stm_pin.hpp
 create mode 100644 KED_structure_idea/csl/interfaces/pin.hpp
 create mode 100644 KED_structure_idea/main.cpp
 create mode 100755 KED_structure_idea/runtest

diff --git a/KED_structure_idea/Makefile b/KED_structure_idea/Makefile
new file mode 100644
index 0000000..db99c6d
--- /dev/null
+++ b/KED_structure_idea/Makefile
@@ -0,0 +1,29 @@
+cpp_src = $(wildcard *.cpp) 
+#cpp_src += $(wildcard ./utils/*.cpp)
+#cpp_src += $(wildcard ./driver/*.cpp)
+
+cpp_obj = $(cpp_src:.cpp=.o)
+c_obj = $(c_src:.c=.o)
+CC = g++ 
+CFLAGS = -Wall -pedantic -li2c 
+LDFLAGS = 
+EXEC = runtest
+
+
+all : $(EXEC)
+
+$(EXEC): $(cpp_obj) $(c_obj)
+	$(CC) -o $@ $^ $(LDFLAGS) 
+
+debug : $(EXEC)
+
+$(EXEC): $(cpp_obj) $(c_obj)
+	$(CC) -g -o $@ $^ $(LDFLAGS) 
+
+clean: 
+	rm -rf $(c_obj) $(cpp_obj) $(EXEC)
+	clear
+
+cleanall: 
+	rm -rf $(c_obj) $(cpp_obj) $(EXEC)
+	clear
diff --git a/KED_structure_idea/bsl/hw_plattform.hpp b/KED_structure_idea/bsl/hw_plattform.hpp
new file mode 100644
index 0000000..403f18d
--- /dev/null
+++ b/KED_structure_idea/bsl/hw_plattform.hpp
@@ -0,0 +1,12 @@
+#ifndef __HW_PLATTFORM_HPP__
+#define __HW_PLATTFORM_HPP__
+
+#include "./../csl/implementations/dummy/dummy_pin.hpp"
+
+struct HW_plattform
+{
+    Dummy_Pin pin_0, pin_1;
+};
+
+
+#endif // __HW_PLATTFORM_HPP__
diff --git a/KED_structure_idea/csl/implementations/avr/avr_pin.hpp b/KED_structure_idea/csl/implementations/avr/avr_pin.hpp
new file mode 100644
index 0000000..42c49ec
--- /dev/null
+++ b/KED_structure_idea/csl/implementations/avr/avr_pin.hpp
@@ -0,0 +1,37 @@
+#ifndef __AVR_PIN_HPP__
+#define __AVR_PIN_HPP__
+
+#include <iostream>
+#include "./../../interfaces/pin.hpp"
+
+
+
+struct AVR_Pin : Pin<AVR_Pin>
+{
+    AVR_Pin()
+    {
+        std::cout << "created AVR_Pin" << std::endl;
+    }
+
+    void setImp(bool logic)
+    {
+        std::cout << "AVR pin set to " << logic << std::endl;
+    }
+
+    void toggleImp()
+    {
+        std::cout << "toggled AVR pin" << std::endl;
+    }
+
+    bool getImp()
+    {
+        return true;
+    }
+
+    void avr_stuff()
+    {
+        std::cout << "AVR specific stuff" << std::endl;
+    }
+};
+
+#endif // __AVR_PIN_HPP__
\ No newline at end of file
diff --git a/KED_structure_idea/csl/implementations/dummy/dummy_pin.hpp b/KED_structure_idea/csl/implementations/dummy/dummy_pin.hpp
new file mode 100644
index 0000000..96b1cb6
--- /dev/null
+++ b/KED_structure_idea/csl/implementations/dummy/dummy_pin.hpp
@@ -0,0 +1,38 @@
+#ifndef __DUMMY_PIN_HPP__
+#define __DUMMY_PIN_HPP__
+
+#include "./../../interfaces/pin.hpp"
+
+#include <iostream>
+
+
+struct Dummy_Pin : Pin<Dummy_Pin>
+{
+    Dummy_Pin()
+    {
+        std::cout << "created Dummy_Pin" << std::endl;
+    }
+
+    void setImp(bool logic)
+    {
+        std::cout << "Dummy pin set to " << logic << std::endl;
+    }
+
+    void toggleImp()
+    {
+        std::cout << "toggled Dummy pin" << std::endl;
+    }
+
+    bool getImp()
+    {
+        return true;
+    }
+
+    void dummy_stuff()
+    {
+        std::cout << "dummy specific stuff" << std::endl;
+    }
+};
+
+
+#endif // __DUMMY_PIN_HPP__
diff --git a/KED_structure_idea/csl/implementations/stm/stm_pin.hpp b/KED_structure_idea/csl/implementations/stm/stm_pin.hpp
new file mode 100644
index 0000000..2d4cf74
--- /dev/null
+++ b/KED_structure_idea/csl/implementations/stm/stm_pin.hpp
@@ -0,0 +1,37 @@
+#ifndef __STM_PIN_HPP__
+#define __STM_PIN_HPP__
+
+#include "./../../interfaces/pin.hpp"
+
+#include <iostream>
+
+truct STM32_Pin : Pin<STM32_Pin>
+{
+    STM32_Pin()
+    {
+        std::cout << "created STM32_Pin" << std::endl;
+    }
+
+    void setImp(bool logic)
+    {
+        std::cout << "stm32 pin set to " << logic << std::endl;
+    }
+
+    void toggleImp()
+    {
+        std::cout << "toggled stm32 pin" << std::endl;
+    }
+
+    bool getImp()
+    {
+        return true;
+    }
+
+
+    void STM32_stuff()
+    {
+        std::cout << "STM_32 specific stuff" << std::endl;
+    }
+};
+
+#endif // __STM_PIN_HPP__
diff --git a/KED_structure_idea/csl/interfaces/pin.hpp b/KED_structure_idea/csl/interfaces/pin.hpp
new file mode 100644
index 0000000..3c9c76d
--- /dev/null
+++ b/KED_structure_idea/csl/interfaces/pin.hpp
@@ -0,0 +1,23 @@
+#ifndef __PIN_HPP__
+#define __PIN_HPP__
+
+template <typename Derived>
+struct Pin
+{
+    void set(bool logic)
+    {
+        static_cast<Derived*>(this)->setImp(logic);
+    }
+
+    void toggle()
+    {
+        static_cast<Derived*>(this)->toggleImp();
+    }
+
+    bool get(void)
+    {
+        return static_cast<Derived*>(this)->getImp();
+    }
+};
+
+#endif // __PIN_HPP__
diff --git a/KED_structure_idea/main.cpp b/KED_structure_idea/main.cpp
new file mode 100644
index 0000000..c546422
--- /dev/null
+++ b/KED_structure_idea/main.cpp
@@ -0,0 +1,13 @@
+#include <iostream>
+
+#include "./bsl/hw_plattform.hpp"
+
+
+int main()
+{
+    HW_plattform hw;
+
+
+    hw.pin_0.set(true);
+    return 1;
+}
\ No newline at end of file
diff --git a/KED_structure_idea/runtest b/KED_structure_idea/runtest
new file mode 100755
index 0000000000000000000000000000000000000000..86342058fe275557223a41e4989d8e1f0f918b00
GIT binary patch
literal 17576
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
BK=S|q

literal 0
HcmV?d00001