Skip to content

Commit

Permalink
OBECA receice process - baseline 1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
kuehnhammer committed Mar 29, 2021
0 parents commit d66fe66
Show file tree
Hide file tree
Showing 36 changed files with 7,325 additions and 0 deletions.
59 changes: 59 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Doxygen output
docs

# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# cmake build directory
build

# VIM files
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]

# Session
Session.vim
Sessionx.vim

# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "lib/srslte"]
path = lib/srslte
url = [email protected]:Austrian-Broadcasting-Services/srsLTE.git
branch = main
29 changes: 29 additions & 0 deletions ATTRIBUTION_NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
OBECA Receive Process uses the following open source software:

- srsLTE - Open Source LTE by Software Radio Systems (SRS)
available at https://github.com/srsLTE/srsLTE
Licensed under AGPL-3.0 terms (https://github.com/srsLTE/srsLTE/blob/master/LICENSE)

- Linear Ringbuffer by Benno Evers
available at https://github.com/lava/linear_ringbuffer
Licensed under AGPL-3.0 terms (https://github.com/lava/linear_ringbuffer/blob/master/LICENSE)

- Thread Pool by Ethan Margaillan
available at https://github.com/Ethan13310/Thread-Pool-Cpp
Licensed under MIT terms (https://github.com/Ethan13310/Thread-Pool-Cpp/blob/master/LICENSE)

- spdlog by Gabi Melman
available at https://github.com/gabime/spdlog
Licensed under MIT terms (https://github.com/gabime/spdlog/blob/v1.x/LICENSE)

- libconfig by Mark Lindner
available at https://github.com/hyperrealm/libconfig
Licensed under LGPL-2.1 terms (https://github.com/hyperrealm/libconfig/blob/master/LICENSE)

- cpprestsdk by Microsoft
available at https://github.com/microsoft/cpprestsdk
Licensed under MIT terms (https://github.com/microsoft/cpprestsdk/blob/master/license.txt)

- libgps by the GPSD project / Eric S. Raymond
available at https://gpsd.gitlab.io/gpsd/
Licensed under BSD-2 terms (https://gitlab.com/gpsd/gpsd/-/blob/master/COPYING)
83 changes: 83 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
cmake_minimum_required(VERSION 3.16)

project (rp VERSION 1.0.991)

include(CTest)
include(FindPkgConfig)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

set(CMAKE_CXX_FLAGS_DEBUG_INIT "-Wall -Wextra -Werror -g3")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-Wall -O3")

find_package(LimeSuite REQUIRED)
find_package(spdlog REQUIRED)
find_package(cpprestsdk REQUIRED)

set(ENABLE_SRSUE OFF)
set(ENABLE_SRSENB OFF)
set(ENABLE_SRSEPC OFF)
add_subdirectory(lib/srslte)

include_directories(
"${PROJECT_BINARY_DIR}"
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src

SYSTEM
${PROJECT_SOURCE_DIR}/lib/srslte/lib/include
${PROJECT_BINARY_DIR}/lib/srslte/lib/include
${PROJECT_BINARY_DIR}/lib/include
${PROJECT_BINARY_DIR}/lib/include/srslte
${PROJECT_SOURCE_DIR}/lib/include
${LIB_LIMESUITE_INCLUDE_DIRS}
${SPDLOG_INCLUDEDIR}
)

configure_file("include/Version.h.in" "Version.h")

link_directories(
${LIB_LIMESUITE_LIBRARIES}
${PROJECT_BINARY_DIR}/lib/srslte/lib/src/phy/
)


set(CMAKE_CXX_CLANG_TIDY clang-tidy --format-style=google --checks=clang-diagnostic-*,clang-analyzer-*,-*,bugprone*,modernize*,performance*)

add_executable(rp src/main.cpp src/LimeSdrReader.cpp src/Phy.cpp
src/CasFrameProcessor.cpp src/MbsfnFrameProcessor.cpp src/Rrc.cpp
src/Gw.cpp src/RestHandler.cpp src/MeasurementFileWriter.cpp)
add_test(rp_test rp --config=./ofr-lrp.conf)

target_link_libraries( rp
LINK_PUBLIC
spdlog::spdlog
srslte_phy
srslte_mac
srslte_upper
rrc_asn1
LimeSuite
config++
cpprestsdk::cpprest
gps
ssl
crypto
)


install(TARGETS rp DESTINATION bin LIBRARY DESTINATION lib)
install(FILES supporting_files/rp.service DESTINATION /usr/lib/systemd/system)
install(FILES supporting_files/rp.conf DESTINATION /etc)
install(FILES supporting_files/obeca DESTINATION /etc/default)
install(FILES supporting_files/pre_rp.sh DESTINATION /usr/share/obeca
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
install(FILES supporting_files/rp_measurements DESTINATION /etc/logrotate.d)

SET(CPACK_GENERATOR "DEB")
SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Austrian Broadcasting Services <[email protected]>")
SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/debian/conffiles;${CMAKE_SOURCE_DIR}/debian/postinst;${CMAKE_SOURCE_DIR}/debian/rp.service;")

INCLUDE(CPack)
Loading

0 comments on commit d66fe66

Please sign in to comment.