-
-
Notifications
You must be signed in to change notification settings - Fork 0
Dev #5
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: master
Are you sure you want to change the base?
Conversation
- 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.
for more information, see https://pre-commit.ci
- 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.
for more information, see https://pre-commit.ci
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 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
ErrorContextand 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 thetryto avoid anIndentationError.
self.build_dir.mkdir(parents=True, exist_ok=True)
python/tools/build_helper/builders/cmake.py:258
- The variable
targetis not defined in theinstall()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.errorcall and is mis-aligned—remove the duplicate to fix the syntax error.
f"Failed to query targets for installation: {query_result.error}"
No description provided.