Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add (client only) support for rda3 #348

Draft
wants to merge 15 commits into
base: main
Choose a base branch
from
Draft

Add (client only) support for rda3 #348

wants to merge 15 commits into from

Conversation

wirew0rm
Copy link
Member

@wirew0rm wirew0rm commented Jul 5, 2024

This adds support for RDA3, the protocol used by CMW/FESA based devices.

  • Fixes some quirks in the cmwlight serialiser that are needed to serialize the control messages:
    • support for maps
    • deserialise empty objects/maps
    • some minor bugs
    • add unittests with real world data to prevent regressions
  • Adds a lightweight zeromq STREAM based nameserver client to resolve rda3 device names
  • Add a cmwlight client implementation

There are still some open points, for now only get requests are handled completely, subscriptions generally work but need a bit more state-tracking to be reliable

  • finish the state machine
  • replace some fixed strings with the actual data (e.g. client information)
  • integrate the name server into the client.
  • general code cleanup

@wirew0rm wirew0rm had a problem deploying to configure coverage July 5, 2024 12:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 5, 2024 12:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 5, 2024 12:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 5, 2024 12:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 5, 2024 12:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 5, 2024 12:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 8, 2024 21:04 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 8, 2024 21:04 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 8, 2024 21:04 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 8, 2024 21:04 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 8, 2024 21:04 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 8, 2024 21:04 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 9, 2024 06:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 9, 2024 06:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 9, 2024 06:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 9, 2024 06:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 9, 2024 06:57 — with GitHub Actions Failure
@wirew0rm wirew0rm had a problem deploying to configure coverage July 9, 2024 06:57 — with GitHub Actions Failure
wirew0rm and others added 10 commits January 15, 2025 14:26
Implemented using the ZMQ NATIVE pattern s.t. it can use the same
pollers and zmq context as the client itself.

Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Support for nested Datastructures was not implemented correctly before
because only serialise + deserialise was checked but not the actual
serialised output.

Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Also allows fieldnames with starting with a numeric value by prefixing
them with ' x_'.

Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Signed-off-by: Alexander Krimm <[email protected]>
Serialisation only, as deserialisation is not possible due to the
IoSerialiser expecting to be able to deduce the type of the field at
compile time via `IoSerialiser<Proto, T>::getTypeId()`.
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
13.8% Coverage on New Code (required ≥ 80%)
10.8% Duplication on New Code (required ≤ 3%)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants