Skip to content

Conversation

@AstroAir
Copy link
Member

No description provided.

AstroAir and others added 5 commits June 13, 2025 08:17
- Added TemperatureCompensationTask for monitoring temperature changes and adjusting focus position to compensate for thermal effects.
- Introduced TemperatureMonitorTask for simple temperature logging.
- Developed FocusValidationTask to continuously monitor focus quality and trigger corrective actions based on validation results.
- Created FocusQualityChecker for quick focus assessments.
- Implemented FocusHistoryTracker for long-term focus event analysis.
- Enhanced validation and monitoring logic with detailed statistics and alert management.
- Updated CMakeLists.txt to include new script task module and its dependencies.
- Introduced new plate solving tasks: PlateSolveExposureTask, CenteringTask, and MosaicTask.
- Implemented task registration for the new plate solving tasks in task_registration.cpp.
- Created a comprehensive test suite for the camera task system, validating task registration, execution, parameter validation, and error handling.
- Ensured backward compatibility with existing task namespaces.
- Implemented SBIGCamera class inheriting from AtomCamera
- Added methods for camera initialization, connection, exposure control, and video streaming
- Included temperature control and filter wheel management functionalities
- Integrated dual-chip support for guide chip operations
- Provided advanced capabilities such as fan control, sequence operations, and image format settings
- Ensured thread safety with mutexes and condition variables for concurrent operations
- Defined private helper methods for SDK initialization, error handling, and frame processing
- Added INDITelescopeModular class to provide a backward-compatible interface to the original INDITelescope while utilizing a new modular architecture.
- Implemented core functionalities including initialization, connection, disconnection, and motion control methods.
- Introduced logging mechanisms for better debugging and error tracking.
- Created telescope_v2.hpp for a refactored version of INDITelescope, enhancing maintainability and testability.
- Added advanced component access methods to retrieve specific components from the modular controller.
- Ensured thread safety with mutexes and atomic variables for controller access.
- Included methods for configuration and error handling to improve usability and robustness.
@AstroAir AstroAir self-assigned this Jun 29, 2025
@AstroAir AstroAir requested a review from Copilot June 29, 2025 17:04

This comment was marked as outdated.

AstroAir and others added 8 commits June 30, 2025 01:38
- Added OptimizedElfParser class with performance optimizations including memory-mapped I/O, parallel processing, and smart caching.
- Implemented advanced features such as batch symbol lookup, asynchronous parsing, and performance metrics tracking.
- Enhanced ELF data structures and parsing logic for improved efficiency and maintainability.
- Created comprehensive documentation for OptimizedElfParser detailing usage, performance characteristics, and configuration options.
- Developed example application demonstrating basic and advanced usage of OptimizedElfParser.
- Updated CMake configuration to support the new component and examples.
- Updated CMakeLists.txt files to link against spdlog.
- Replaced loguru includes with spdlog in various source files across the project.
- Adjusted target_link_libraries in tests to use spdlog.
- Cleaned up unnecessary loguru references in camera and task modules.
- Consolidated logging dependencies for better maintainability and performance.
- Added `plugins.py` to define the plugin architecture, including `PluginBase`, `HookRegistry`, and `PluginManager` classes.
- Introduced example plugins: `LoggingPlugin`, `BackupPlugin`, `NotificationPlugin`, and `SecurityPlugin` with specific functionalities.
- Created a comprehensive testing suite for the analytics module in `test_analytics.py`, covering various metrics and usage statistics.
- Established type definitions in `types.py` for better type safety and clarity, including NewType and TypedDict for structured data.
- Added ASCOM Telescope implementation in legacy_telescope.hpp and main.cpp, providing comprehensive control over telescope operations including connection management, motion control, tracking, and guiding.
- Created main.hpp to define the ASCOMTelescopeMain class interface, encapsulating telescope functionalities and state management.
- Introduced basic structure for dome control tasks, including headers for automation, basic control, common functionalities, and safety tasks, laying the groundwork for future dome integration.
- Established a modular approach for telescope and dome components, enhancing maintainability and scalability of the system.
…te functionality

- Implemented validateSequenceFile and validateSequenceJson methods for robust JSON validation.
- Added exportAsTemplate and createFromTemplate methods to facilitate template management.
- Integrated ConfigSerializer for advanced serialization capabilities, including format conversion and schema versioning.
- Enhanced error handling during serialization and deserialization processes.
- Added unit tests for sequence manager, covering sequence creation, target addition, template creation, validation, and error handling.
- Updated CMake configuration for test integration with GTest and GMock.
- Consolidated device SDK finding logic into a common function for Atik, FLI, QHY, SBIG, and PlayerOne devices.
- Introduced a new DeviceConfig.cmake file to encapsulate common settings and macros for device modules.
- Updated CMakeLists.txt files for each device to utilize the new common functions for library creation and SDK detection.
- Enhanced PlayerOne device implementation with improved library structure and installation rules.
- Added modular implementations for ASCOM devices (camera, dome, switch, telescope) with proper linking and installation configurations.
- Implemented filterwheel support for QHY devices with appropriate SDK linking and header installations.
@AstroAir AstroAir requested a review from Copilot July 14, 2025 09:48
Copy link
Contributor

Copilot AI left a 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 modernizes the build_helper and auto_updater modules with async support, enhanced error handling, and structured logging, adjusts project dependencies, and replaces Loguru with spdlog in image/device modules.

  • Convert CMake and Bazel builders to async methods with detailed ErrorContext and caching
  • Overhaul auto_updater to fully async workflows, add sync wrapper improvements, and update dependencies
  • Switch C++ modules from Loguru to spdlog and tweak various example projects

Reviewed Changes

Copilot reviewed 92 out of 1040 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
python/tools/build_helper/builders/cmake.py Convert to async, add error contexts, add caching, adjust logging
python/tools/build_helper/builders/bazel.py Convert to async, add comments on async setup, fix command calls
python/tools/build_helper/init.py Update imports, expose new metrics & session APIs
python/tools/auto_updater/**/*.py Rewrite updater to async, add sync wrapper enhancements
python/tools/auto_updater/pyproject.toml Update dependencies, set stable status
pyproject.toml Add missing async libs, tools
modules/image/src/.cpp / modules/device/focuser/.cpp Replace Loguru includes with spdlog
example/**/*.cpp Add or update example demos across various modules
Comments suppressed due to low confidence (3)

python/tools/build_helper/builders/cmake.py:128

  • The indentation here is off under the try: block—this line should be indented to match the other statements inside the try to avoid an IndentationError.
            self.build_dir.mkdir(parents=True, exist_ok=True)

python/tools/build_helper/builders/cmake.py:258

  • The variable target is not defined in the install() scope. You may want to remove it or replace it with a valid context key.
                        additional_info={"target": target},

python/tools/build_helper/builders/bazel.py:159

  • This string literal appears twice in the same logger.error call and is mis-aligned—remove the duplicate to fix the syntax error.
                    f"Failed to query targets for installation: {query_result.error}"

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