Skip to content

Renewing STORM controller #126

@beniroquai

Description

@beniroquai

We want to renew the STORMController. On top of the current implementation where we simply store the information in a ZARR container provided by Arkitekt, we also want to have the ability to process the frames locally using the new microeye implementation.
The core functionalities that should be exposed via the RESTApi via the APIExport should be:

Asynchronous behaviour via Arkitekt (remote processing):

  • Start/Stop frame acquisition with given parameters into a micro store / zarr store
  • have signal updates about the current state (e.g. image number)

Synchronous behaviour via microeye (local processing):

  • Setup parameters for frame reconstruction for microeye via endpoint e.g. via a dedicated pydantic type
  • Start/stop frame reconstruction with given parameters
    • we want to record frames as fast as possible (e.g. use getChunk) and process frames in background thread
    • we want to store the raw data and the reconstructed result
    • We want to store the reconstructed image locally under the data path (look how the experimentcontroller does it)
    • We want to provide updates on the processing via a signal so that we can consume this in the frontend via the associated socket connection
  • Retreive the last reconstructed image as the filepath inside the data path (save result as tif)

We want to remove the current behaviour with the worker and implement a new way to work asynchronously in general
all _widget related items should be removed as we do not rely on QT-based operation anymore.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions