Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: matternet/dronecan_libcanard
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: dronecan/libcanard
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 9 commits
  • 12 files changed
  • 3 contributors

Commits on Jul 16, 2024

  1. Configuration menu
    Copy the full SHA
    f11bdf7 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2024

  1. prevent sending partial multi-frame transfers

    check that we have sufficient blocks available in the allocator before
    we start a multi-frame transfer to ensure we don't send a corrupt
    message by sending a subset of the frames. This can prevent a bus
    overload condition where the sender retries on a failed transfer, but
    the failed transfer consumes bus traffic and reduces the number of
    blocks available for the next transfer
    tridge committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    6f74bc6 View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2025

  1. pre-exclude source files when analyzing coverage

    lcov 2.x, unlike lcov 1.x, gives errors like `geninfo: ERROR: mismatched
    end line for _ZN12CRC_CRC_Test8TestBodyEv at
    /home/runner/work/libcanard/libcanard/tests/test_crc.cpp:42: 42 -> 55`
    for source files which contain gtest tests.
    
    These files are removed from the coverage information in a later step,
    but lcov now fails to create the initial coverage info because of them.
    
    Fix this problem (and thus CI) by excluding the files from the initial
    coverage info instead of removing them later. Note that the exclude
    order is relevant to ensure all excludes trigger, avoiding errors that
    some are unused. Verified that identical coverage stats are generated
    for 2.x as compared to 1.x.
    tpwrules authored and tridge committed Feb 23, 2025
    Configuration menu
    Copy the full SHA
    52c205e View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2025

  1. canard++: fix HandlerList subclass semaphores

    The Subscriber and Client subclasses need semaphores to protect their
    static branch lists. The Subscriber previously had one, but it didn't do
    anything because it wasn't static, and Client never had one.
    
    Fix the issue by making the HandlerList semaphore protected and re-using
    it.
    
    Co-authored-by: Andrew Tridgell <[email protected]>
    tpwrules and tridge committed Mar 4, 2025
    Configuration menu
    Copy the full SHA
    13d7128 View commit details
    Browse the repository at this point in the history
  2. canard++: fix handler list constructor/destructor ordering

    The handler subclass must not exist in the handler list until after the
    superclass constructor runs, and must be removed before the superclass
    destructor runs. Outside of this time, the handler object identity is
    the superclass, so a call to the handle_message method will cause a pure
    virtual error and crash the program.
    
    Fix the issue by adding/removing the object in the handler list in the
    subclass when the vtable is set up right and the handle_message can
    safely be called. Also wait until the branch list is set up so that the
    handle_message method can actually find the object.
    
    Co-authored-by: Andrew Tridgell <[email protected]>
    tpwrules and tridge committed Mar 4, 2025
    Configuration menu
    Copy the full SHA
    19ea632 View commit details
    Browse the repository at this point in the history
  3. canard++: un-inline handler list methods

    Mitigates flash impact of semaphore changes.
    tpwrules authored and tridge committed Mar 4, 2025
    Configuration menu
    Copy the full SHA
    9b05a4d View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2025

  1. Transfer type is not checked in c++ wrappers

    fixes dronecan#79
    
    thanks to  Mykhaylo Shcherbak
    tridge authored and bugobliterator committed Apr 2, 2025
    Configuration menu
    Copy the full SHA
    d77db3f View commit details
    Browse the repository at this point in the history
  2. fixed examples

    tridge authored and bugobliterator committed Apr 2, 2025
    Configuration menu
    Copy the full SHA
    e4f3056 View commit details
    Browse the repository at this point in the history

Commits on May 5, 2025

  1. C++: simplify the linked list handling

    use a single linked list for message reception, not a list of lists
    
    this allows for the creation of new HandlerList handlers at runtime
    tridge committed May 5, 2025
    Configuration menu
    Copy the full SHA
    5d7b725 View commit details
    Browse the repository at this point in the history
Loading