diff --git a/Software/WomoLin/board/simulation/build.sh b/Software/WomoLin/board/simulation/build.sh index 13ae134..b61edec 100755 --- a/Software/WomoLin/board/simulation/build.sh +++ b/Software/WomoLin/board/simulation/build.sh @@ -3,8 +3,9 @@ rm -f simulation g++-8 -std=c++17 -Wall -Wpedantic -Werror -Os -o simulation \ ../../lib/signal.cpp \ ../../lib/protocol.cpp \ -../../lib/manager.cpp \ +../../lib/managerbase.cpp \ ../../lib/unit.cpp \ +./hal/serial.cpp \ +./hal/unit.cpp \ manager.cpp \ -serial.cpp \ main.cpp diff --git a/Software/WomoLin/board/simulation/include/serial.h b/Software/WomoLin/board/simulation/hal/include/serial.h similarity index 93% rename from Software/WomoLin/board/simulation/include/serial.h rename to Software/WomoLin/board/simulation/hal/include/serial.h index 0fc646a..902c759 100644 --- a/Software/WomoLin/board/simulation/include/serial.h +++ b/Software/WomoLin/board/simulation/hal/include/serial.h @@ -1,6 +1,6 @@ #pragma once -#include "../../../lib/include/icommon.h" +#include "../../../../lib/include/icommon.h" #include #include diff --git a/Software/WomoLin/board/simulation/hal/include/unit.h b/Software/WomoLin/board/simulation/hal/include/unit.h new file mode 100644 index 0000000..e0c1cad --- /dev/null +++ b/Software/WomoLin/board/simulation/hal/include/unit.h @@ -0,0 +1,18 @@ +#pragma once + +#include "../../../../lib/include/unit.h" + +namespace womolin::board::simulation::hal::unit +{ + + class Relay : public womolin::unit::Relay + { + public: + Relay( uint8_t relayId ); + ~Relay() = default; + + private: + uint8_t relayId; + }; + +} diff --git a/Software/WomoLin/board/simulation/serial.cpp b/Software/WomoLin/board/simulation/hal/serial.cpp similarity index 100% rename from Software/WomoLin/board/simulation/serial.cpp rename to Software/WomoLin/board/simulation/hal/serial.cpp diff --git a/Software/WomoLin/board/simulation/hal/unit.cpp b/Software/WomoLin/board/simulation/hal/unit.cpp new file mode 100644 index 0000000..4ee6a9c --- /dev/null +++ b/Software/WomoLin/board/simulation/hal/unit.cpp @@ -0,0 +1,10 @@ +#include "include/unit.h" + +namespace womolin::board::simulation::hal::unit +{ + Relay::Relay( uint8_t relayId ) + : womolin::unit::Relay() + , relayId( relayId ) + { + } +} diff --git a/Software/WomoLin/board/simulation/main.cpp b/Software/WomoLin/board/simulation/main.cpp index d16174c..e458bb3 100644 --- a/Software/WomoLin/board/simulation/main.cpp +++ b/Software/WomoLin/board/simulation/main.cpp @@ -1,7 +1,5 @@ -#include "include/manager.h" -#include "include/serial.h" - -#include "../../lib/include/protocol.h" +#include "hal/include/serial.h" +#include "manager.h" #include #include @@ -12,8 +10,7 @@ int main(int argc, char *argv[]) { std::cout << "Wilkommen Board Simulation" << std::endl; auto serial = womolin::board::simulation::Serial(); - auto protocol = womolin::protocol::Protocol(); - auto manager = womolin::board::simulation::Manager( serial, protocol ); + auto manager = womolin::board::simulation::Manager( serial ); while( true ) { manager.doWork(); diff --git a/Software/WomoLin/board/simulation/manager.cpp b/Software/WomoLin/board/simulation/manager.cpp index 3d946d6..dd70888 100644 --- a/Software/WomoLin/board/simulation/manager.cpp +++ b/Software/WomoLin/board/simulation/manager.cpp @@ -1,15 +1,16 @@ -#include "include/manager.h" +#include "manager.h" +#include "hal/include/unit.h" namespace womolin::board::simulation { - Manager::Manager( womolin::lib::common::interface::ISerial & serial, - womolin::lib::common::interface::IProtocol & protocol ) - : ManagerBase( serial, protocol ) + Manager::Manager( womolin::lib::common::interface::ISerial & serial ) + : ManagerBase( serial ) { // generated code signalVector["licht_an_aus"] = &licht_an_aus; - //licht_an_aus.AddUnit( &RELAY1 ); + auto RELAY1 = womolin::board::simulation::hal::unit::Relay( 1u ); + licht_an_aus.AddUnit( &RELAY1 ); } } diff --git a/Software/WomoLin/board/simulation/include/manager.h b/Software/WomoLin/board/simulation/manager.h similarity index 72% rename from Software/WomoLin/board/simulation/include/manager.h rename to Software/WomoLin/board/simulation/manager.h index d7fe7a8..c17a8a7 100644 --- a/Software/WomoLin/board/simulation/include/manager.h +++ b/Software/WomoLin/board/simulation/manager.h @@ -1,14 +1,14 @@ #pragma once -#include "../../../lib/include/manager.h" -#include "../../../lib/include/signal.h" +#include "../../lib/include/managerbase.h" +#include "../../lib/include/signal.h" namespace womolin::board::simulation { class Manager : public womolin::manager::ManagerBase { public: - Manager( womolin::lib::common::interface::ISerial & serial, womolin::lib::common::interface::IProtocol & protocol ); + Manager( womolin::lib::common::interface::ISerial & serial ); ~Manager() = default; private: diff --git a/Software/WomoLin/lib/include/icommon.h b/Software/WomoLin/lib/include/icommon.h index 144de33..160d561 100644 --- a/Software/WomoLin/lib/include/icommon.h +++ b/Software/WomoLin/lib/include/icommon.h @@ -5,15 +5,6 @@ namespace womolin::lib::common::interface { - class IProtocol - { - public: - virtual ~IProtocol() = default; - - virtual void - getKeyValue(const std::string & input, std::string & key, std::string & value) = 0; - }; - class ISerial { public: diff --git a/Software/WomoLin/lib/include/manager.h b/Software/WomoLin/lib/include/managerbase.h similarity index 65% rename from Software/WomoLin/lib/include/manager.h rename to Software/WomoLin/lib/include/managerbase.h index f4f2c80..2f392ca 100644 --- a/Software/WomoLin/lib/include/manager.h +++ b/Software/WomoLin/lib/include/managerbase.h @@ -2,6 +2,7 @@ #include "icommon.h" #include "signal.h" +#include "protocol.h" #include @@ -10,18 +11,18 @@ namespace womolin::manager class ManagerBase { public: - ManagerBase( womolin::lib::common::interface::ISerial & serial, womolin::lib::common::interface::IProtocol & protocol ); + ManagerBase( womolin::lib::common::interface::ISerial & serial ); ~ManagerBase() = default; void doWork(); protected: - std::string message; - std::map signalVector; + std::string message; + std::map signalVector; private: womolin::lib::common::interface::ISerial & serial; - womolin::lib::common::interface::IProtocol & protocol; + womolin::protocol::Protocol protocol; }; } diff --git a/Software/WomoLin/lib/include/protocol.h b/Software/WomoLin/lib/include/protocol.h index 41e6f12..ba1e089 100644 --- a/Software/WomoLin/lib/include/protocol.h +++ b/Software/WomoLin/lib/include/protocol.h @@ -4,15 +4,15 @@ namespace womolin::protocol { - class Protocol : public womolin::lib::common::interface::IProtocol + class Protocol { public: Protocol() = default; - virtual ~Protocol() = default; + ~Protocol() = default; void getKeyValue(const std::string & input, - std::string & key, - std::string & value) override final; + std::string & key, + std::string & value); }; diff --git a/Software/WomoLin/lib/manager.cpp b/Software/WomoLin/lib/managerbase.cpp similarity index 67% rename from Software/WomoLin/lib/manager.cpp rename to Software/WomoLin/lib/managerbase.cpp index d035ddc..67923f6 100644 --- a/Software/WomoLin/lib/manager.cpp +++ b/Software/WomoLin/lib/managerbase.cpp @@ -1,12 +1,11 @@ -#include "include/manager.h" +#include "include/managerbase.h" namespace womolin::manager { ManagerBase::ManagerBase( - womolin::lib::common::interface::ISerial & serial, - womolin::lib::common::interface::IProtocol & protocol ) - : serial(serial) - , protocol(protocol) + womolin::lib::common::interface::ISerial & serial ) + : serial( serial ) + , protocol ( womolin::protocol::Protocol() ) { }