Files
AareDAQ/CHANGELOG.md
T
appleb_m df84850941
Build and Publish / test (push) Successful in 1m31s
Build and Publish / build (push) Successful in 17s
Build and Publish / Build and Deploy Docs (push) Successful in 36s
Update to version 0.3.1
2026-04-29 17:34:41 +02:00

8.1 KiB

Changelog

0.3.1 (2026-04-29)

  • DAQ/Server:
    • Improved baton exchange logic with automatic timeout and Redis-backed state.
  • GUI:
    • Updated about dialog with correct version and copyright.
    • Improved layout persistence and state management.

0.3.0 (2026-04-24)

  • Merge three repos into one, remove Ultralytics as dependency
  • Testing & CI/CD:
    • Implemented comprehensive pytest infrastructure for unit and integration tests.
    • Integrated pytest-cov and pytest-mock into the testing workflow with 100% coverage on core modules like coordinate and exception_handler.
    • Added automated testing stage to Gitea workflow (.gitea/workflows/action.yaml) ensuring tests pass before build and documentation updates.
    • Added pytest-qt support for GUI testing.
    • Added tests for aerotech, models, autofocus, automation, beamline, diffraction_geometry, enum_pv, face_detection, jfjoch_client, mlbox, my_motor, spreadsheet_updater, and workflows.
  • DAQ/Server:
    • Added lifespan function for one-time initialization of core objects (devices, daq, config) on startup, reducing conflicting Redis and device connections.
    • Big Aerotech upgrade: transitioned to Aerotech API with ported coordinate functions.
    • Re-enabled and updated automation workflow 2.0 with new backend endpoints.
    • Added park_and_dry functionality for repeated mount failures.
    • Workflow assertions to ensure scintillator is down when possible.
    • Improved aerotech movement and position calculations.
    • Implementation of camera auto-exposure and zoom-dependent settings.
    • Added SAS-TT school demo temporary raster function.
    • Enhanced status polling with robust error handling for Tell, Smargon, and Aerotech communication.
    • ml_box updated with beamline-specific URLs, model class types, and new YOLO26 engine.
    • Added separate authentication pathway for staff-only beamline recovery operations.
    • Improved database message limits for omega (to 2 decimal places).
    • Added screenshot to database from GUI; face detection sequence and beamline recovery updates.
    • Throttled UserRightsException logging to reduce log noise.
    • Implemented persistent automation progress tracking using Redis across multiple workers.
    • Added automation progress panel to the GUI for real-time monitoring.
    • Improved raster and rotation scan error handling and centralized database message handling.
    • Updated server_exception_handler.py and error_codes.py to cover all custom exceptions.
    • Added auto_exposure endpoint and improved autofocus logic.
    • Fixed multiple bugs in raster scan positioning and state transitions.
    • Refactored MLBOX and LOOP_CENTERING types; loop centering now avoids moving if only non-crystal classes (pin, ice, needle) are found.
    • Split LOOP_CENTERING from main DAQ script for better maintainability.
  • Baton & Sessions:
    • Major rework of the baton exchange procedure and session management.
    • Added NOT_BATON_HOLDER error code and specialized handling for baton requests.
    • Integrated baton status messages into the camera image display and status bar.
    • Improved session state transitions with new Pending states and P-group selection logic.
  • GUI:
    • Added ui_state_manager to handle QSettings for persistent UI state.
    • Major rework of predict_subscriber and prediction stream updates; corrected default ZMQ stream for ML box.
    • Added FPS counter and sharpness monitoring for sample camera.
    • Improved camera thread performance and authentication failure handling.
    • Added X10SA specific camera and prediction configurations.
    • New display_status for user-facing connection/error messages.
    • Integrated dev_help panel with logs and error code search.
    • Added framework for building GUI tutorials with first draft of X10SA tutorial.
    • Added alert banner for critical disconnection issues (server/Tell/Aerotech).
    • New screenshot button and controls in sample camera GUI.
    • Added SSE support for face detection panel updates during automation.
    • Integrated sample position resync in recovery panel to reduce Tell polling.
    • Fixed matplotlib warnings in face detection panel and improved layout persistence.
    • Added beamline_state_panel with station widgets for improved state management and visibility.
    • Performance optimizations: throttled raster grid drawing to 25Hz and improved dense heat map rendering.
    • Added automation progress panel and wired it to the persistent Redis backend.
    • Improved prediction subscriber performance and target stability visualization.
    • Added shortcuts and improved user feedback in the status bar using BeamlineStateEnum display names.
    • Improved prediction subscriber and metrics panel performance.
  • TELL & Infrastructure:
    • Added mTLS certificate authentication for aaredb, tellupdater, and spreadsheetupdater.
    • Improved SSE client resilience in tellupdater with retry mechanisms and enhanced error logging.
    • Major refactor: removed redundant code and added simulated client.
    • Converted wait functions to use inbuilt pshell functionality.
    • Added error handling and proxy support for connection failures.
    • Fixed event names for mounting, and added missing events for gripper detection and motion sync.
    • Refactored SSE connection handling for simplicity and robustness.
    • Added control for pin blower and annealing (in/out) to TellClient.
    • Improved TELL HTTP communication handling to prevent swallowed errors.
    • Added magnet position sensor state checks and exception handling.
    • Improved Gitea workflows with better dependency management and testing steps.
  • Common & Devices:
    • Added BEC worker and Aerotech controller initialization in devices.py.
    • Added magnet position sensor functions and centralized transmission settings.
    • Added centralized error_codes and refactored exception handling to use FastAPI handlers.
    • Expanded device support with new PVs (beamstop, scintillator, collimator, cryojet, etc.).
    • Cleaned up mx_lib wait functions and my_motor class; added clean_filename helper.
    • Improved Smargon connection exception handling.
    • Updated ABR_POS_HOME configuration and added comments for cryo positions.
    • Added image upload comments and improved authentication error messaging.
    • Centralized custom exceptions in aare.common.exception_handler.
    • Added display_name to BeamlineStateEnum for consistent UI strings.
    • Refactored SampleShortInfo handling across DAQ and database modules.
    • Multiple bug fixes in ML box prediction logic and coordinate transformations.
    • JFJOCH wrapper: Added retries for image retrieval and new wait_till_running method.

0.2.69

  • check beamline state before running raster, rotation and automation
  • lowered polling rate of daq status to improve GUI performance
  • robot drys then parks after repeated mount failures

0.2.68:

  • added check box to numberlineedits to switch between user input and spreadsheet
  • re-enabled MLprediction
  • fixed bug in gui where manual sample couldnt be created when run nubmer was negative.
  • Combined beamline view now split vertically not horizontally
  • New error handling in DAQ for robot mounting errors
  • Error box pop ups in GUI when sample gripper detection error occurs
  • Automation queue pauses if sample gripper detection error occurs multiple times to allow robot dry, if continues stops and wiats for user interverntion
  • added ingest_scan to send rotation and screening result to db

0.2.67:

  • added run number to sampleshortinfo
  • ingest raster result, including beam center to database
  • aerotech goes to mount postion for manual mount
  • logger config correctly expands file path for logger location.
  • smart_rotiation_panel fix - but will be mvoed to DAQ in future update
  • Fluoresence scan can be saved to CSV with right click
  • Wait for ready before sending Tell to dry

0.2.66:

  • moved rastergridingestmodel and centreofmassmodel from models to raster_grid.py
  • after raster load closest image to new centre