-
Notifications
You must be signed in to change notification settings - Fork 35
Tracker service v0.3.0: multiple scenes #943
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
base: tracker-service-v0.2.0
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces support for multiple scenes in the tracker service (v0.3.0), enabling the system to handle camera-to-scene mappings and route detections accordingly. The changes move away from a hardcoded single scene model to a configurable multi-scene architecture.
Changes:
- Added
SceneRegistryclass to manage camera-to-scene mappings with duplicate detection - Enhanced configuration loader to parse scene definitions from JSON config
- Modified
MessageHandlerto subscribe to specific camera topics and route messages based on scene registry lookups - Updated test suite to reflect new multi-scene behavior and topic naming conventions
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tracker/inc/scene_registry.hpp | New header defining SceneRegistry class and DuplicateCameraError exception for camera-scene mapping |
| tracker/inc/message_handler.hpp | Updated to accept SceneRegistry reference and changed from wildcard to per-camera topic subscriptions |
| tracker/inc/config_loader.hpp | Added structs for scenes, cameras, intrinsics, and distortion configuration |
| tracker/src/scene_registry.cpp | Implementation of scene registration and camera lookup logic |
| tracker/src/message_handler.cpp | Refactored to use scene registry for camera validation and per-category message publishing |
| tracker/src/main.cpp | Added scene registry initialization from config with duplicate camera error handling |
| tracker/src/config_loader.cpp | Added JSON parsing logic for scenes configuration section |
| tracker/config/tracker.json | Added inline scene definitions with two scenes (Queuing and Retail) and multiple cameras |
| tracker/test/unit/scene_registry_test.cpp | Comprehensive unit tests for scene registry functionality |
| tracker/test/unit/message_handler_test.cpp | Updated tests to use scene registry and validate new multi-scene behavior |
| tracker/test/unit/config_loader_test.cpp | Added tests for scene configuration loading and validation |
| tracker/test/unit/CMakeLists.txt | Added scene_registry_test.cpp and source file to build |
| tracker/test/service/test_mqtt.py | Updated topic constants to match new scene-specific topic format |
| tracker/CMakeLists.txt | Added scene_registry.cpp to build sources |
| tracker/.gitignore | Added docs/* to ignore list temporarily |
📝 Description
For a description see #943 (review). Time Chunking & Tracking will be added in #946.
Related PRs
Testing
Controller service disabled
Tracker service enabled
✨ Type of Change
Select the type of change your PR introduces:
🧪 Testing Scenarios
Describe how the changes were tested and how reviewers can test them too:
✅ Checklist
Before submitting the PR, ensure the following: