Skip to content

Commit

Permalink
eCAL v5.5.0:
Browse files Browse the repository at this point in the history
* eCAL message recorder released
  * records messages in realtime in HDF5 format
  * synchronized recording over multiple targets
  * pre-buffer feature
  * modern QT based control gui
* eCAL message player
  * eCAL message replay
  * topic filtering
  * adjustable replay speed / looped play
  * modern QT based gui
  * command line version (with interactive mode)
* eCAL HDF5 recording read / write C++ SDK
  * high level API to iterate over recorded data sets
    * auto merging of splitted record files
    * distributed recording on multiple machines, handling as one recording
* Performance improvements
  * reduced memory copying on subscriber side
  * new latency send / receive samples demonstrating new performance
    using callback receive method
    * see Performance section in Readme.md file
    * performance factor 2 for windows factor 4 Linux for large messages
* CPack installer generates start menu entries on windows platform
* Different bug fixes
  • Loading branch information
FlorianReimold committed Oct 10, 2019
1 parent a974026 commit 5f194e3
Show file tree
Hide file tree
Showing 370 changed files with 50,613 additions and 1,282 deletions.
4 changes: 4 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,13 @@ image: Visual Studio 2015

environment:
QT5_ROOT_DIRECTORY: C:\Qt\5.11.3
HDF5_DIR: C:\Program Files\HDF_Group\HDF5\1.8.21\cmake

install:
- git submodule update --init --recursive
- curl -fsS -O https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.21/bin/hdf5-1.8.21-Std-win7_64-vs14.zip
- 7z x -bb0 hdf5-1.8.21-Std-win7_64-vs14.zip
- msiexec /package hdf5\HDF5-1.8.21-win64.msi /quiet
- choco install doxygen.install
- choco install cmake
- choco install wixtoolset
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@
[submodule "thirdparty/simpleini"]
path = thirdparty/simpleini
url = https://github.com/brofield/simpleini.git
[submodule "thirdparty/spdlog"]
path = thirdparty/spdlog
url = https://github.com/gabime/spdlog.git
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ addons:
- graphviz
- zlib1g-dev
- qt5-default
- libhdf5-dev
- cmake
- cmake-data

script:
- mkdir _build
- cd _build
Expand Down
76 changes: 59 additions & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ cmake_policy(SET CMP0054 NEW)
# command line build options
# use it that way cmake .. -DBUILD_APPS=ON -DBUILD_SAMPLES=ON
# --------------------------------------------------------
option(HAS_HDF5 "Platform supports HDF5 library" ON)
option(HAS_QT5 "Platform supports Qt 5 library" ON)
option(HAS_CAPNPROTO "Platform supports Cap'n Proto library" OFF)

Expand All @@ -52,6 +53,7 @@ option(ECAL_NPCAP_SUPPORT "Enable the eCAL Npcap Receiver (
# Set option regarding third party library builds
option(ECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONS "Build CMakeFunctions with eCAL" ON)
option(ECAL_THIRDPARTY_BUILD_PROTOBUF "Build Protobuf with eCAL" ON)
option(ECAL_THIRDPARTY_BUILD_SPDLOG "Build spdlog with eCAL" ON)


# there is a CMake issue with testing threading availibility via TEST_RUN
Expand All @@ -62,19 +64,6 @@ endif()

# find_project(eCAL calls shall be ignored, eCAL is build as part of the project)
set(as_subproject eCAL)
if (ECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONS)
list(APPEND as_subproject CMakeFunctions)
endif ()
if (ECAL_THIRDPARTY_BUILD_PROTOBUF)
list(APPEND as_subproject Protobuf)
endif ()


macro(find_package)
if(NOT "${ARGV0}" IN_LIST as_subproject)
_find_package(${ARGV})
endif()
endmacro()

# Normalize backslashes from Windows paths
file(TO_CMAKE_PATH "${CMAKE_MODULE_PATH}" CMAKE_MODULE_PATH)
Expand All @@ -86,11 +75,8 @@ message(STATUS "Prefix Path: ${CMAKE_PREFIX_PATH}")
# --------------------------------------------------------
# third party dependencies as requested
# --------------------------------------------------------
if (ECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONS)
add_subdirectory(thirdparty/cmake_functions)
endif ()

if (ECAL_THIRDPARTY_BUILD_PROTOBUF)
list(APPEND as_subproject Protobuf)
if(MSVC)
# supress google protobuf warnings for windows platform
set(CMAKE_CXX_FLAGS_OLD "${CMAKE_CXX_FLAGS}")
Expand Down Expand Up @@ -119,6 +105,30 @@ if (ECAL_THIRDPARTY_BUILD_PROTOBUF)
endif()
endif()

if (ECAL_THIRDPARTY_BUILD_SPDLOG)
list(APPEND as_subproject spdlog)
add_subdirectory(thirdparty/spdlog)
add_library(spdlog::spdlog ALIAS spdlog)
endif ()



if (ECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONS)
list(APPEND as_subproject CMakeFunctions)
endif()

macro(find_package)
if(NOT "${ARGV0}" IN_LIST as_subproject)
_find_package(${ARGV})
endif()
endmacro()

if (ECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONS)
add_subdirectory(thirdparty/cmake_functions)
endif ()



find_package(CMakeFunctions REQUIRED)

git_revision_information()
Expand Down Expand Up @@ -276,13 +286,18 @@ add_subdirectory(ecal/core/src)
# --------------------------------------------------------
# custom libs
# --------------------------------------------------------
add_subdirectory(lib/ThreadingUtils)
add_subdirectory(lib/EcalUtils)
if(HAS_QT5)
add_subdirectory(lib/CustomQt)
endif()
if(ECAL_NPCAP_SUPPORT)
add_subdirectory(lib/Udpcap)
endif()
add_subdirectory(lib/EcalParser)
if(HAS_QT5)
add_subdirectory(lib/QEcalParser)
endif(HAS_QT5)

# --------------------------------------------------------
# ecal mon plugin sdk
Expand All @@ -299,6 +314,14 @@ if(BUILD_TIME)
add_subdirectory(contrib/ecaltime)
endif()

# --------------------------------------------------------
# ecal hdf5 support
# --------------------------------------------------------
if(HAS_HDF5)
add_subdirectory(contrib/ecalhdf5/src)
add_subdirectory(contrib/message)
endif()

# --------------------------------------------------------
# console applications
# --------------------------------------------------------
Expand All @@ -309,6 +332,18 @@ if(BUILD_APPS)
add_subdirectory(app/util/eCALStop/src)
endif()

# --------------------------------------------------------
# applications using hdf5
# --------------------------------------------------------
if(BUILD_APPS AND HAS_HDF5)
add_subdirectory(app/play/eCALPlayCore)
add_subdirectory(app/play/eCALPlay)

add_subdirectory(app/rec/rec_cli)
add_subdirectory(app/rec/rec_core)
add_subdirectory(app/rec/rec_server_core)
endif()

# --------------------------------------------------------
# qt applications
# --------------------------------------------------------
Expand All @@ -320,6 +355,13 @@ if(BUILD_APPS AND HAS_QT5)
set(ECAL_MON_PLUGIN_DIR ecal/plugins/mon)
endif()
add_subdirectory(app/mon/eCALMonPlugins)
# --------------------------------------------------------
# Qt5 Apps using HDF5
# --------------------------------------------------------
if(BUILD_APPS AND HAS_QT5 AND HAS_HDF5)
add_subdirectory(app/play/eCALPlayGUI)
add_subdirectory(app/rec/rec_gui)
endif()
endif()

# --------------------------------------------------------
Expand Down
Loading

0 comments on commit 5f194e3

Please sign in to comment.