OpenCyphal / libudpard

A compact implementation of the Cyphal/UDP protocol in C for high-integrity real-time embedded systems
MIT License
10 stars 8 forks source link

Implement subscription API functions #46

Closed pavel-kirienko closed 1 year ago

pavel-kirienko commented 1 year ago

It is now possible to subscribe to subjects and receive data from them. The only missing bit is the RPC services API, all other functionality of the library is already implemented and can be used.

This changeset also brings udpardGather that, well, gathers a fragmented payload buffer into one contiguous chunk of memory that can be passed into Nunavut. Later we should amend Nunavut to support fragmented buffers directly to eliminate extra data copying and memory utilization.

After the RPC services API is done, I am going to add comprehensive end-to-end tests, for which there is a stub already. Aside from that we also have this (the e2e test mentioned there is different though): https://github.com/OpenCyphal-Garage/libudpard/issues/35

This changeset also fixes an internal documentation error that provided an incorrect estimation of the worst-case recursion depth.

sonarcloud[bot] commented 1 year ago

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

96.6% 96.6% Coverage
0.0% 0.0% Duplication

warning The version of Java (11.0.17) you have used to run this analysis is deprecated and we will stop accepting it soon. Please update to at least Java 17. Read more here