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

[TASK] Refactor AUV_GUI #25

Open
3 tasks
kluge7 opened this issue Feb 23, 2025 · 0 comments
Open
3 tasks

[TASK] Refactor AUV_GUI #25

kluge7 opened this issue Feb 23, 2025 · 0 comments

Comments

@kluge7
Copy link
Contributor

kluge7 commented Feb 23, 2025

Description of task

  1. Refactor Data Management:
  • Replace Q-based data storage with Pandas.
  • Introduce a DataManager class to handle storage and retrieval of ROS topic data.
  • Ensure efficient time-series handling if applicable.
  1. Implement Modular Code Structure:
  • auv_gui_node.py → ROS node responsible only for subscribing to topics and storing data in DataManager. No UI logic should exist in this file.
  • data_manager.py → Manages all stored data using Pandas.
  • main_window.py → Manages GUI layout and interaction between widgets.
  • widgets.py (or multiple files) → Individual UI components that process and display data.
  1. Improve GUI Design:
  • Fully utilize MainWindow as the central application frame.
  • Widgets should be placed within MainWindow, updating dynamically based on data from DataManager.
    nhance
  1. Code Quality:
  • Documentation: Every function should have docstrings (parameters, return types, exceptions).
  • Testing: Implement automated tests using pytest to cover core functionality.
  • Code Linting & Style: Use black/flake8 for formatting and enforcing good coding practices.
  1. ROS Integration:
  • Ensure proper topic subscription without direct dependency on UI elements.
  • Allow MainWindow to access processed data from DataManager instead of direct topic subscriptions.
  1. Improve Maintainability:
  • Create a Wiki or documentation portal explaining the new architecture.
  • Write developer guides for extending the GUI or adding new widgets.
  • Ensure structured logging and error handling for better debugging.

Contacts

@Andeshog
@Hallfred

Code Quality

  • Every function in header files are documented (inputs/returns/exceptions)
  • The project has automated tests that cover MOST of the functions and branches in functions (pytest/gtest)
  • The code is documented on the wiki (provide link)
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

When branches are created from issues, their pull requests are automatically linked.

1 participant