Skip to content

Commit 326327d

Browse files
author
Myron Franze
authored
1.0.0
* used namespace direct * deleted version stuff
1 parent 64b7a60 commit 326327d

18 files changed

+780
-0
lines changed

CMakeLists.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
cmake_minimum_required (VERSION 3.16)
2+
3+
SET(CMAKE_CXX_STANDARD 20)
4+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wpedantic -Werror=pedantic -Wextra")
5+
6+
SET(PRJ_NAME "siguni")
7+
project(${PRJ_NAME})
8+
9+
find_package(GTest QUIET)
10+
11+
if(${GTest_FOUND})
12+
add_subdirectory(gtest)
13+
endif()
14+
15+
16+
add_library(${PRJ_NAME}
17+
18+
unit
19+
signal
20+
protocol
21+
managerbase
22+
23+
)

gtest/CMakeLists.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
SET(LIB_NAME "sigunit-test")
2+
project (${LIB_NAME})
3+
4+
add_executable( ${LIB_NAME}
5+
test.cpp
6+
signal_test.cpp
7+
unit_test.cpp
8+
siguni_test.cpp
9+
)
10+
11+
target_link_libraries( ${LIB_NAME}
12+
gtest
13+
pthread
14+
siguni
15+
)

gtest/signal_test.cpp

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
/* SPDX-License-Identifier: GPLv3-or-later */
2+
/* Copyright (c) 2020 Project WomoLIN */
3+
/* Author Myron Franze <myronfranze@web.de> */
4+
5+
#include "../signal.h"
6+
7+
#include <gtest/gtest.h>
8+
9+
10+
namespace siguni::gtest
11+
{
12+
13+
class CSerialTest : public ::testing::Test { };
14+
15+
16+
class CSignalSetResetTest : public interface::ISignalSetReset
17+
{
18+
public:
19+
CSignalSetResetTest() = default ;
20+
~CSignalSetResetTest() = default;
21+
void UpdateUnitSignalSetReset( std::string & attKey, std::string & attValue ) override final
22+
{
23+
key = attKey;
24+
value = attValue;
25+
};
26+
std::string key;
27+
std::string value { "UNKNOWN" };
28+
29+
};
30+
31+
32+
TEST_F( CSerialTest, ISignalSetReset ) {
33+
34+
std::string key { "KEY" };
35+
std::string val { "GET" };
36+
37+
auto test = CSignalSetResetTest();
38+
39+
test.UpdateUnitSignalSetReset( key, val );
40+
41+
ASSERT_STREQ( test.key.c_str() , "KEY" );
42+
ASSERT_STREQ( test.value.c_str(), "GET" );
43+
44+
}
45+
46+
class CSignalGetVoltageTest : public interface::ISignalGetVoltage
47+
{
48+
public:
49+
CSignalGetVoltageTest() = default ;
50+
~CSignalGetVoltageTest() = default;
51+
void UpdateUnitSignalGetVoltage( std::string & attKey, std::string & attGetVoltage ) override final
52+
{
53+
key = attKey;
54+
voltage = attGetVoltage;
55+
};
56+
std::string key;
57+
std::string voltage;
58+
};
59+
60+
61+
TEST_F( CSerialTest, ISignalGetVoltage ) {
62+
63+
std::string key {"KEY"};
64+
std::string voltage {"VOLTAGE"};
65+
66+
auto test = CSignalGetVoltageTest();
67+
68+
test.UpdateUnitSignalGetVoltage( key, voltage );
69+
70+
ASSERT_STREQ( test.key.c_str() , "KEY" );
71+
ASSERT_STREQ( test.voltage.c_str() , "VOLTAGE");
72+
73+
}
74+
75+
76+
class CSignalGetVersionTest : public interface::ISignalGetVersion
77+
{
78+
public:
79+
CSignalGetVersionTest() = default ;
80+
~CSignalGetVersionTest() = default;
81+
void UpdateUnitSignalGetVersion( std::string & attKey, std::string & attVersion ) override final
82+
{
83+
key = attKey;
84+
fw = attVersion;
85+
};
86+
std::string key;
87+
std::string fw;
88+
};
89+
90+
91+
TEST_F( CSerialTest, ISignalGetVersion ) {
92+
93+
std::string key {"KEY"};
94+
std::string fw {"FW"};
95+
96+
auto test = CSignalGetVersionTest();
97+
98+
test.UpdateUnitSignalGetVersion( key, fw );
99+
100+
ASSERT_STREQ( test.key.c_str() , "KEY" );
101+
ASSERT_STREQ( test.fw.c_str() , "FW");
102+
103+
}
104+
105+
106+
107+
108+
class CSignalAddUnitIntTest : public CSignalAddUnit<int>
109+
{
110+
public:
111+
CSignalAddUnitIntTest() { unitsPointer = &units ; } ;
112+
~CSignalAddUnitIntTest() = default;
113+
const std::vector<int*>* unitsPointer; // pointer to access unit array
114+
};
115+
116+
TEST_F( CSerialTest, CSignalAddUnitInt ) {
117+
118+
int val1 {1};
119+
int val2 {2};
120+
121+
auto test = CSignalAddUnitIntTest();
122+
123+
ASSERT_TRUE( (*test.unitsPointer).empty() ) << "no values added, array must be empty";
124+
test.AddUnit( &val1 );
125+
ASSERT_EQ( 1, (*test.unitsPointer).size() ) << "added one value, array must be have one value";
126+
127+
test.AddUnit( &val2 ); // add second value to array
128+
129+
val1 = 10; // change initialize value from value 1
130+
val2 = 20; // change initialize value from value 2
131+
132+
ASSERT_EQ( 10, *(*test.unitsPointer).at(0) ) << "value 1 must be 10, changed variable var1 changed";
133+
ASSERT_EQ( 20, *(*test.unitsPointer).at(1) ) << "value 1 must be 20, changed variable var2 changed";
134+
135+
}
136+
137+
}
138+

gtest/siguni_test.cpp

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/* SPDX-License-Identifier: GPLv3-or-later */
2+
/* Copyright (c) 2020 Project WomoLIN */
3+
/* Author Myron Franze <myronfranze@web.de> */
4+
5+
#include "../unit.h"
6+
#include "../signal.h"
7+
8+
#include <gtest/gtest.h>
9+
10+
namespace siguni::gtest
11+
{
12+
13+
14+
class CSiguniTest : public ::testing::Test { };
15+
16+
17+
18+
class CUnitSignalSetReset : public interface::ISignalSetReset
19+
{
20+
void UpdateUnitSignalSetReset( std::string & /*attKey*/, std::string & /*attValue*/ ) override {};
21+
};
22+
23+
24+
class CRelayOutput : public interface::IUnitOutput
25+
{
26+
public:
27+
CRelayOutput() = default ;
28+
~CRelayOutput() = default;
29+
30+
void Set( std::string & attSetOutput ) override final { set = attSetOutput; };
31+
32+
std::string set;
33+
};
34+
35+
36+
TEST_F( CSiguniTest, CUnitOutput ) {
37+
38+
auto signal_setReset_1 = CSignalSetReset();
39+
40+
auto unit_setReset_1 = CUnitSignalSetReset();
41+
42+
signal_setReset_1.AddUnit( &unit_setReset_1 );
43+
44+
std::string key {};
45+
std::string val {};
46+
47+
signal_setReset_1.UpdateUnit( key, val );
48+
49+
// TODO
50+
//std::cout << key << std::endl;
51+
//std::cout << val << std::endl;
52+
53+
}
54+
55+
}

gtest/test.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/* SPDX-License-Identifier: GPLv3-or-later */
2+
/* Copyright (c) 2020 Project WomoLIN */
3+
/* Author Myron Franze <myronfranze@web.de> */
4+
5+
#include <gtest/gtest.h>
6+
7+
int main(int argc, char **argv) {
8+
::testing::InitGoogleTest(&argc, argv);
9+
return RUN_ALL_TESTS();
10+
}

gtest/unit_test.cpp

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/* SPDX-License-Identifier: GPLv3-or-later */
2+
/* Copyright (c) 2020 Project WomoLIN */
3+
/* Author Myron Franze <myronfranze@web.de> */
4+
5+
#include "../unit.h"
6+
7+
#include <gtest/gtest.h>
8+
9+
namespace siguni::gtest
10+
{
11+
12+
class CUnitTest : public ::testing::Test { };
13+
14+
15+
class CUnitOutputTest : public interface::IUnitOutput
16+
{
17+
public:
18+
CUnitOutputTest() = default ;
19+
~CUnitOutputTest() = default;
20+
21+
void Set( std::string & attSetOutput ) override final { setCommand = attSetOutput; };
22+
23+
std::string setCommand;
24+
};
25+
26+
TEST_F( CUnitTest, IUnitOutput ) {
27+
28+
auto test = CUnitOutputTest();
29+
30+
std::string setCommand { "SET" };
31+
32+
test.Set( setCommand );
33+
ASSERT_STREQ( test.setCommand.c_str() , "SET" );
34+
35+
setCommand = "RESET";
36+
37+
test.Set( setCommand );
38+
ASSERT_STREQ( test.setCommand.c_str() , "RESET" );
39+
}
40+
41+
class CUnitInputTest : public interface::IUnitInput
42+
{
43+
public:
44+
CUnitInputTest() = default ;
45+
~CUnitInputTest() = default;
46+
47+
void Get( std::string & attStatus ) override final { attStatus = "SET"; };
48+
};
49+
50+
TEST_F( CUnitTest, IUnitInput ) {
51+
52+
auto test = CUnitInputTest();
53+
54+
std::string status_string {"UNKNOWN"};
55+
56+
test.Get( status_string );
57+
ASSERT_STREQ( status_string.c_str() , "SET" );
58+
}
59+
60+
}

interface/icontrolbus.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* SPDX-License-Identifier: GPLv3-or-later */
2+
/* Copyright (c) 2019 Project WomoLIN */
3+
/* Author Myron Franze <myronfranze@web.de> */
4+
5+
#pragma once
6+
7+
#include <string>
8+
9+
namespace siguni::interface
10+
{
11+
class IControlbus
12+
{
13+
public:
14+
virtual ~IControlbus() = default;
15+
16+
virtual int WriteData( const std::string & attMessage ) = 0;
17+
virtual int ReadData( std::string & attMessage ) = 0;
18+
};
19+
}

interface/ihw.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* SPDX-License-Identifier: GPLv3-or-later */
2+
/* Copyright (c) 2020 Project WomoLIN */
3+
/* Author Myron Franze <myronfranze@web.de> */
4+
5+
#pragma once
6+
7+
#include "iunit.h"
8+
9+
namespace siguni::interface
10+
{
11+
12+
class IInputHwBoardVersion : public siguni::interface::IUnitInput
13+
{
14+
public:
15+
virtual ~IInputHwBoardVersion() = default;
16+
17+
void Get( std::string & attGetInput ) override = 0;
18+
};
19+
20+
class IInputDriverVersion : public siguni::interface::IUnitInput
21+
{
22+
public:
23+
virtual ~IInputDriverVersion() = default;
24+
25+
void Get( std::string & attGetInput ) override = 0;
26+
};
27+
28+
}
29+

0 commit comments

Comments
 (0)