Feat/238 implement native c grpc reader in qt - #285
Merged
Zahhask45 merged 26 commits intoDec 16, 2025
Conversation
…start method with connection and subscription logic
…anagement and cleanup
6 tasks
|
✅ STM32 CI: Threadx.elf was built successfully. |
🔍 TSF Validation Results
📋 Lint Output (first 500 chars) |
Zahhask45
approved these changes
Dec 16, 2025
Zahhask45
left a comment
Member
There was a problem hiding this comment.
Everything looks great! I don't see any issues.
Hugofslopes
approved these changes
Dec 16, 2025
Hugofslopes
left a comment
Contributor
There was a problem hiding this comment.
Looks ok, a lot of comments that help to understand the new code added. Good job Melanie!
melaniereis
pushed a commit
that referenced
this pull request
May 13, 2026
…c-reader-in-qt Feat/238 implement native c grpc reader in qt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Related issue(s): closes #24
Type of change
Summary
This PR implements a hybrid data ingestion architecture for the Qt Dashboard, allowing it to consume vehicle speed data from either the direct CAN bus (via SocketCAN) or the KUKSA Databroker (via gRPC).
Key Changes:
CMakeLists.txtto find and link nativegRPC,Protobuf, andabsllibraries. Added custom commands to auto-generate C++ sources fromval.protoandtypes.proto.KUKSAReaderclass inheriting fromQObject. It manages the gRPC channel and subscription loop.Subscribeloop is blocking, soKUKSAReaderis moved to a dedicatedQThreadinmain.cppto prevent freezing the UI.QCommandLineParserinmain.cpp. Users can now switch modes at runtime using the--kuksaor-kflag.CANReaderorKUKSAReaderare dynamically connected toVehicleDataslots based on the startup arguments.How to test / Validation
1. Setup (Virtual CAN)
If running locally, ensure
vcan0is up:2. Test Default Mode (CAN)
Run the application without arguments. It should attempt to open
vcan0:./myqtapp # Expected output: "Starting in CAN mode" ... "CAN device opened on interface vcan0"Send CAN frames (e.g., using
cangen vcan0) and verify the dashboard updates.3. Test KUKSA Mode (gRPC)
Run the application with the flag. Ensure a Databroker instance is running on
localhost:55555../myqtapp --kuksa # Expected output: "Starting in KUKSA mode" ... "KuksaReader: Connected and Subscribed"Publish speed updates to the broker and verify the dashboard updates.
Checklist
Risks and backward compatibility
grpc,protobuf, andabseil-cpp. The Yocto recipe must be updated to include these packages (DEPENDSandRDEPENDS) to avoid "Symbol Lookup Errors" on the target hardware.Related / dependent PRs
qt-app_git.bbto addgrpcdependencies.Approval: Requires a minimum of 2 approvals.
Action: The feature branch MUST be deleted upon successful merge.