Tags: OpenCyphal/libcanard
Tags
ESP-IDF Component Continuous Integration (#229) This pull request is meant to resolve #227 by adding continuous integration for publishing Libcanard to the [ESP Component Registry](https://components.espressif.com/). Files added: - `idf_component.yml`. This file contains required ESP component metadata. - `Kconfig`. ESP components use this file as a standard way for controlling build options. I've added options for enabling/disabling assertions and the CRC table. - `CMakeLists.txt`. This file is required to register the component with the ESP build system. - `.github/workflows/esp_publish.yml`. This workflow uploads the component to the ESP-IDF registry whenever a new GitHub release is published. - `.github/workflows/esp_dry_run.yml`. This workflow does a dry-run of uploading to the ESP-IDF registry, without publishing anything. It can only be manually triggered. I've tested this in my repository, and it seems to work. The GitHub workflows require `IDF_COMPONENT_API_TOKEN` with an [ESP registry token](https://components.espressif.com/settings/tokens/) to be added to the repository secrets. --------- Co-authored-by: Marcin Anforowicz <marcin.anforowicz@wibotic.com> Co-authored-by: Pavel Kirienko <pavel.kirienko@gmail.com>
Introduce internal includes section to avoid potential implicit decla… …ration warnings (#219) During the integration of the `libcanard` into a project based on [ChibiOS](https://www.chibios.org) I want to change `CANARD_ASSERT` from the default `assert` to ChibiOS `osalDbgCheck`. It is done with the next C defines `-DCANARD_ASSERT=osalDbgCheck -DCANARD_CONFIG_HEADER=\"${BINDINGS_DIR}/canard/canard_config.h\"`, there to prevent implicit declaration warnings I unutilized `CANARD_CONFIG_HEADER` by providing a `canard_config.h` file with the following content: ``` #include "osal.h" ``` But because of `#include "_canard_cavl.h"` and `# include CANARD_CONFIG_HEADER` order in `canard.c` I still get implicit declaration warnings: ``` Compiling canard.c ../../ext/OpenCyphal/libcanard/libcanard/_canard_cavl.h: In function 'cavlPrivateRotate': <command-line>: warning: implicit declaration of function 'osalDbgCheck' [-Wimplicit-function-declaration] ../../ext/OpenCyphal/libcanard/libcanard/_canard_cavl.h:30:25: note: in expansion of macro 'CANARD_ASSERT' 30 | # define CAVL_ASSERT CANARD_ASSERT | ^~~~~~~~~~~~~ ../../ext/OpenCyphal/libcanard/libcanard/_canard_cavl.h:98:5: note: in expansion of macro 'CAVL_ASSERT' 98 | CAVL_ASSERT((x != NULL) && (x->lr[!r] != NULL) && ((x->bf >= -1) && (x->bf <= +1))); | ^~~~~~~~~~~ ``` To resolve this issue `# include CANARD_CONFIG_HEADER` must be placed before `#include "_canard_cavl.h"`.
Refactor the transfer reassembly state machine to enhance its maintai… …nability and robustness (#215) This is a step towards improving the transfer reassembler. This changeset also renames `redundant_transport_index` as `redundant_iface_index` for consistency with the other implementations; this change is not visible at the API level.
Libcanard v2.0 (#182) * Drop canard_dsdl, use Nunavut instead * Upgrade CI to LLVM 13 * Actualize license headers * Support redundant transmission queues and use more consistent public field naming * Ditch the deprecated canardRxAccept(), rename canardRxAccept2() * Refactor the API to eliminate the need to cast away const qualifiers; fixes #175 * Tighten up memory checking in the test suite -- add canaries * Fix race condition in the roundtrip test * Do not use Catch2 macros from non-main thread because it is not thread-safe * Support CANARD_CONFIG_HEADER * CI: add style_check job * Use AVL tree in the transmission queue * Remove all linked lists * Reduce indirection, pointer casts, and memory footprint by exposing the AVL tree in the public API * Disable C++-specific warnings as they make no sense for a C library * Add table-based CRC option (#186) * CI: disable SonarCloud on forks * Add docker utilities (#187) * Add acceptance filter configuration helpers (#171) Co-authored-by: Kalyan Sriram <coder.kalyan@gmail.com>
PreviousNext