From 4d1ff8d1ae650a1f8565172988f5638b59bad9e4 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sat, 28 May 2022 13:20:36 +0000 Subject: [PATCH] Updated git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@879 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- radio/processor/Makefile | 74 ++++++++++++++++++++++++------ radio/processor/processor.mk | 2 +- radio/processor/src/Buffer.hpp | 8 +++- radio/processor/src/Buffer.tcc | 2 + radio/processor/test/TestBlock.cpp | 22 +++------ radio/processor/test/TestBlock.hpp | 21 ++++++--- radio/processor/test/test01.cpp | 4 +- 7 files changed, 89 insertions(+), 44 deletions(-) diff --git a/radio/processor/Makefile b/radio/processor/Makefile index c56d839..00db7fc 100644 --- a/radio/processor/Makefile +++ b/radio/processor/Makefile @@ -1,25 +1,69 @@ -MAKE_HOME := /home/jens/work/software/make +######################################################################## +####################### Makefile Template ############################## +######################################################################## -CONFIG ?= debug -TARGET ?= test01 -BUILD_DIR := ./build/${CONFIG} +# Compiler settings - Can be customized. +CC = g++ +CXXFLAGS = -std=c++11 -Wall +LDFLAGS = -include ./processor.mk +# Makefile settings - Can be customized. +APPNAME = myapp +EXT = .cpp +SRCDIR = src +OBJDIR = obj -CXX_SRCS += test/test01.cpp test/TestBlock.cpp -LIBS := -lstdc++ -lm -larmadillo -DEFINES += -DPROCESSOR_BUFFER_USE_EXCEPTIONS +############## Do not change anything from here downwards! ############# +SRC = $(wildcard $(SRCDIR)/*$(EXT)) +OBJ = $(SRC:$(SRCDIR)/%$(EXT)=$(OBJDIR)/%.o) +DEP = $(OBJ:$(OBJDIR)/%.o=%.d) +# UNIX-based OS variables & settings +RM = rm +DELOBJ = $(OBJ) +# Windows OS variables & settings +DEL = del +EXE = .exe +WDELOBJ = $(SRC:$(SRCDIR)/%$(EXT)=$(OBJDIR)\\%.o) -SRCS := ${CXX_SRCS} ${GCC_SRCS} +######################################################################## +####################### Targets beginning here ######################### +######################################################################## +all: $(APPNAME) + +# Builds the app +$(APPNAME): $(OBJ) + $(CC) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) + +# Creates the dependecy rules +%.d: $(SRCDIR)/%$(EXT) + @$(CPP) $(CFLAGS) $< -MM -MT $(@:%.d=$(OBJDIR)/%.o) >$@ + +# Includes all .h files +-include $(DEP) + +# Building rule for .o files and its .c/.cpp in combination with all .h +$(OBJDIR)/%.o: $(SRCDIR)/%$(EXT) + $(CC) $(CXXFLAGS) -o $@ -c $< + +################### Cleaning rules for Unix-based OS ################### +# Cleans complete project .PHONY: clean -all: ${BUILD_DIR}/${TARGET} - clean: - rm -rf ${BUILD_DIR}/* + $(RM) $(DELOBJ) $(DEP) $(APPNAME) -distclean: - rm -rf ${BUILD_DIR} +# Cleans only all files with the extension .d +.PHONY: cleandep +cleandep: + $(RM) $(DEP) +#################### Cleaning rules for Windows OS ##################### +# Cleans complete project +.PHONY: cleanw +cleanw: + $(DEL) $(WDELOBJ) $(DEP) $(APPNAME)$(EXE) -include $(MAKE_HOME)/compile.mk +# Cleans only all files with the extension .d +.PHONY: cleandepw +cleandepw: + $(DEL) $(DEP) \ No newline at end of file diff --git a/radio/processor/processor.mk b/radio/processor/processor.mk index 845b550..da8669e 100644 --- a/radio/processor/processor.mk +++ b/radio/processor/processor.mk @@ -1,6 +1,6 @@ PACKAGES += Processor-1.0 -CXX_SRCS += src/ABlock.cpp +CXX_SRCS += src/Block.cpp src/Processor.cpp DEFINES += INCLUDES += -I $(shell pwd)/src diff --git a/radio/processor/src/Buffer.hpp b/radio/processor/src/Buffer.hpp index 92501f0..f5db9c8 100644 --- a/radio/processor/src/Buffer.hpp +++ b/radio/processor/src/Buffer.hpp @@ -12,8 +12,13 @@ #define RETURN_OR_EXCEPT(code) return code #endif +class IBuffer +{ + +}; + template -class Buffer +class Buffer : public IBuffer { public: enum Result @@ -90,5 +95,4 @@ class Buffer #include "Buffer.tcc" - #endif // __PROCESSOR_BUFFER_HPP__ \ No newline at end of file diff --git a/radio/processor/src/Buffer.tcc b/radio/processor/src/Buffer.tcc index d44acad..1654ef3 100644 --- a/radio/processor/src/Buffer.tcc +++ b/radio/processor/src/Buffer.tcc @@ -1,4 +1,6 @@ #include +#include +#include template Buffer::Buffer(size_t capacity) diff --git a/radio/processor/test/TestBlock.cpp b/radio/processor/test/TestBlock.cpp index 3fa73b4..1963df4 100644 --- a/radio/processor/test/TestBlock.cpp +++ b/radio/processor/test/TestBlock.cpp @@ -1,22 +1,12 @@ #include "TestBlock.hpp" -template -TestBlock::TestBlock() +void TestBlock::process(IBuffer &in, IBuffer &out) { + auto buf_in = reinterpret_cast&>(in); + auto buf_out = reinterpret_cast&>(out); -} - -template -TestBlock::~TestBlock() -{ - -} - -template -void TestBlock::process(Buffer &in, Buffer &out) -{ - size_t toCopy = in.len(); - out.write(in.data_r(), toCopy); - in.consume(toCopy); + size_t toCopy = buf_in.len(); + buf_out.write(buf_in.data_r(), toCopy); + buf_in.consume(toCopy); } diff --git a/radio/processor/test/TestBlock.hpp b/radio/processor/test/TestBlock.hpp index 9d01440..5858119 100644 --- a/radio/processor/test/TestBlock.hpp +++ b/radio/processor/test/TestBlock.hpp @@ -3,19 +3,26 @@ #pragma once -#include +#include -template -class TestBlock : public ABlock +using DTIN = double; +using DTOUT = double; + +class TestBlock : public Block { public: - TestBlock(); - ~TestBlock(); + TestBlock(size_t bufSize) + : Block(1, 1, DType::Double, DType::Double) + , m_buf_in(bufSize) + { - void process(Buffer &in, Buffer &out); + } + virtual ~TestBlock() = default; + + void process(IBuffer &in, IBuffer &out) override; private: - + Buffer m_buf_in; }; #endif \ No newline at end of file diff --git a/radio/processor/test/test01.cpp b/radio/processor/test/test01.cpp index c26d6e1..b8bebdc 100644 --- a/radio/processor/test/test01.cpp +++ b/radio/processor/test/test01.cpp @@ -8,10 +8,8 @@ #define LENGTH(a) (sizeof(a)/sizeof(a[0])) #endif -int main() +int test01() { - printf("Hallo Welt!\n"); - arma::mat myMat; // myMat.as_col();