This commit is contained in:
Norym
2019-12-09 22:15:27 +01:00
parent 43f103c2d2
commit 11aa970c40
12 changed files with 57 additions and 39 deletions

View File

@@ -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

View File

@@ -1,6 +1,6 @@
#pragma once
#include "../../../lib/include/icommon.h"
#include "../../../../lib/include/icommon.h"
#include <stdio.h>
#include <stdlib.h>

View File

@@ -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;
};
}

View File

@@ -0,0 +1,10 @@
#include "include/unit.h"
namespace womolin::board::simulation::hal::unit
{
Relay::Relay( uint8_t relayId )
: womolin::unit::Relay()
, relayId( relayId )
{
}
}

View File

@@ -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 <iostream>
#include <thread>
@@ -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();

View File

@@ -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 );
}
}

View File

@@ -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:

View File

@@ -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:

View File

@@ -2,6 +2,7 @@
#include "icommon.h"
#include "signal.h"
#include "protocol.h"
#include <map>
@@ -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<std::string, womolin::lib::common::interface::ISignal*> signalVector;
std::string message;
std::map<std::string, womolin::lib::common::interface::ISignal*> signalVector;
private:
womolin::lib::common::interface::ISerial & serial;
womolin::lib::common::interface::IProtocol & protocol;
womolin::protocol::Protocol protocol;
};
}

View File

@@ -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);
};

View File

@@ -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() )
{
}