Skip to content

Refactor interactive blueapi_client into session class with live plotting and tutorial docs #396

Closed

Description

@Relm-Arrowny

Goals

Acceptance criteria : What journeys should the user be able to complete to consider your feature done
Be as specific as you can, check them off once they work. Add more if you find more requirements during development. Issue should only be considered done after all of them are checked

  • User can connect to a BlueAPI server using a YAML config file (--config / -c)
  • User can connect to a live BlueAPI server using the beamline name (--beamline / -b)
  • User can optionally specify the instrument session directly via CLI argument (--session / -s).
  • If no instrument session is specified at startup, the user is warned and can set bc.instrument_session manually inside the shell.
  • User get full plan execution output in the terminal.
  • Modify plot_scan to visualize live.
  • User/developer can use the /docs/tutorials instead of reading comments in code.
  • Developers can import the session as module rather than running it as a script.
  • User should be able to make use of \tab and have auto complete for all commands, sub commands and flags.

Tasks

base on the goals, deduce the tasks required. check them off once they're done

  • Wrap data dictionary, current_scan_id, callbacks, and device/plan inventory printing into an encapsulated class
  • Remove global state data.
  • Enhance Plotting Functionality to allow 1d live plot,
  • Optinal: area detector and fitting,
  • Update CLI add -s for instrument session support
  • Add sub flag for -c config option for setting up configuration.
  • Move setup instructions from script docstring to docs.
  • Update CLI docs.
  • Provide a template for base blueapi_config.yaml.
  • Refactor CLI to use click instead of argparse.

Related Resources

Base off pr: #364 and #333
MockUp : link to mockup
Coda doc: link to coda
Additional context
Add any other context or screenshots about the feature request here.

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