From fff29f491d3dd0a006f352afd4fe9a81bc639893 Mon Sep 17 00:00:00 2001 From: polymurph Date: Sat, 16 Oct 2021 21:50:50 +0200 Subject: [PATCH] added KED structure idea --- KED_structure_idea/Makefile | 29 ++++++++++++ KED_structure_idea/bsl/hw_plattform.hpp | 42 ++++++++++++++++++ .../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/drivers/LED.hpp | 35 +++++++++++++++ KED_structure_idea/main.cpp | 16 +++++++ KED_structure_idea/runtest | Bin 0 -> 17792 bytes 9 files changed, 257 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/drivers/LED.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..31d711d --- /dev/null +++ b/KED_structure_idea/bsl/hw_plattform.hpp @@ -0,0 +1,42 @@ +#ifndef __HW_PLATTFORM_HPP__ +#define __HW_PLATTFORM_HPP__ + +#include + +// +// csl ressources +// + +#include "./../csl/implementations/dummy/dummy_pin.hpp" + +// +// drivers +// + +#include "./../drivers/LED.hpp" + +struct HW_plattform +{ + HW_plattform(): + pin_0(), + pin_1(), + led_0(pin_0) + {} + + void init() + { + std::cout << "bsl init..." << std::endl; + pin_0.set(false); + pin_1.set(false); + std::cout << "...done!" << std::endl; + }; + + private: + Dummy_Pin pin_0, pin_1; + public: + + LED led_0; +}; + + +#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 +#include "./../../interfaces/pin.hpp" + + + +struct AVR_Pin : 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 + + +struct Dummy_Pin : 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 + +truct STM32_Pin : 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 +struct Pin +{ + void set(bool logic) + { + static_cast(this)->setImp(logic); + } + + void toggle() + { + static_cast(this)->toggleImp(); + } + + bool get(void) + { + return static_cast(this)->getImp(); + } +}; + +#endif // __PIN_HPP__ diff --git a/KED_structure_idea/drivers/LED.hpp b/KED_structure_idea/drivers/LED.hpp new file mode 100644 index 0000000..dfaec72 --- /dev/null +++ b/KED_structure_idea/drivers/LED.hpp @@ -0,0 +1,35 @@ +#ifndef __LED_HPP__ +#define __LED_HPP__ + +#include "./../csl/interfaces/pin.hpp" + +template +class LED +{ + public: + + LED(Pin& pin) : + pin(pin) + {} + + void turnOn() + { + pin.set(true); + } + + void turnOff() + { + pin.set(false); + } + + void toggle() + { + pin.toggle(); + } + + private: + + Pin& pin; +}; + +#endif // __LED_HPP__ diff --git a/KED_structure_idea/main.cpp b/KED_structure_idea/main.cpp new file mode 100644 index 0000000..522a52f --- /dev/null +++ b/KED_structure_idea/main.cpp @@ -0,0 +1,16 @@ +#include + +#include "./bsl/hw_plattform.hpp" + + +int main() +{ + HW_plattform hw; + hw.init(); + + //hw.pin_1.set(true); + + hw.led_0.turnOn(); + + 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..13f81ba216871c0cfe7f790649e7811305aa1acd GIT binary patch literal 17792 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