GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - PX4/ulog_cpp: C++ library for reading and writing ULog files

BranchesTags
Open more actions menu

Latest commit

 

History

51 Commits
51 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
cmake
cmake
 
 
examples
examples
 
 
test
test
 
 
tools
tools
 
 
ulog_cpp
ulog_cpp
 
 
.clang-format
.clang-format
 
 
.clang-tidy
.clang-tidy
 
 
.clang-tidy-ignore
.clang-tidy-ignore
 
 
.cppcheck-suppress
.cppcheck-suppress
 
 
.gitignore
.gitignore
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
CMakeLists.txt
CMakeLists.txt
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 

Repository files navigation

C++ ULog Library

Streamed C++ ULog reader and writer library.

Properties

  • Options for keeping log data in memory or processing immediately.
  • Pure C++17 without additional dependencies (SimpleWriter requires platform-specific fsync/FlushFileBuffers).
  • The reader is ~10 times as fast compared to the python implementation. However, the API is more low-level, and if you're just looking for an easy-to-use parsing library, use pyulog.
  • Unsupported ULog features:
    • Appended data (DATA_APPENDED)
  • A little endian target machine is required (an error is thrown if this is not the case)
  • The reader keeps errors stored, so parsing can be continued and any errors can be read out at the end. The writer directly throws exceptions (ulog_cpp::ExceptionBase).

Examples

Check the examples subdirectory.

Include in a project

Using cmake FetchContent

To use the library with FetchContent in cmake, add the following to the CMakeLists.txt:

include(FetchContent)
FetchContent_Declare(
  ulog_cpp
  GIT_REPOSITORY https://github.com/PX4/ulog_cpp.git
  GIT_TAG v1.0.0
  SYSTEM
  EXCLUDE_FROM_ALL)

FetchContent_MakeAvailable(ulog_cpp)

target_link_libraries(YOUR_PROJECT PUBLIC
        ulog_cpp::ulog_cpp
)

As a submodule

To add the library as a submodule with cmake, use the following steps:

git submodule add https://github.com/PX4/ulog_cpp.git ulog_cpp

Then extend your CMakeLists.txt with:

add_subdirectory(ulog_cpp)

target_link_libraries(YOUR_PROJECT PUBLIC
  ulog_cpp::ulog_cpp
)

Development

For development, install the pre-commit scripts:

pre-commit install

CI

CI runs a number of checks which can be executed locally with the following commands.

clang-tidy

cd build
make clang-tidy

Unit tests

cd build
make run-unit-tests

Linters (code formatting etc)

These run automatically when committing code. To manually run them, use:

pre-commit run -a

About

C++ library for reading and writing ULog files

Resources

Readme
BSD-3-Clause license

Code of conduct

Code of conduct

Security policy

Security policy
Activity
Custom properties

Stars

27 stars

Watchers

5 watching

Forks

21 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.