Model of a Bluesky Data Acquisition Instrument in console, notebook, & queueserver.
Clone the repository
git clone git@github.com:BCDA-APS/bs_model_instrument.git
cd bs_model_instrument
Set up the development environment.
export ENV_NAME=bs_model_env
conda create -y -n $ENV_NAME python=3.11 pyepics
conda activate $ENV_NAME
pip install -e ."[all]"
To start the bluesky instrument session in a ipython execute the below command in a terminal
ipython
Inside the ipython console execute
from instrument.startup import *
Start JupyterLab, a Jupyter notebook server, or a notebook, VSCode.
Start the data acquisition:
from instrument.startup import *
To run some simulated plans that ensure the installation worked as expected please run the below inside an ipython session or a jupyter notebook after starting the data acquisition
RE(sim_print_plan())
RE(sim_count_plan())
RE(sim_rel_scan_plan())
See this example.
The files that can be configured to adhere to your preferences are:
configs/iconfig.yml
- configuration for data collectionconfigs/logging.yml
- configuration for session logging to console and/or filesqs/qs-config.yml
- contains all configuration of the QS host process. See the documentation for more details of the configuration.
The queueserver has a host process that manages a RunEngine. Client sessions will interact with that host process.
Use the queueserver host management script to start the QS host process. The below option stops the server (if it is running) and then starts it. This is the usual way to (re)start the QS host process. Using the below command the process runs in the background.
./qs/qs_host.sh restart
To run the gui client for the queueserver you can use the below command inside the terminal
queue-monitor &
A shell script is used to start the QS host process. Below are all the command options, and what they do.
(bstest) $ ./qs/qs_host.sh help
Usage: qs_host.sh {start|stop|restart|status|checkup|console|run} [NAME]
COMMANDS
console attach to process console if process is running in screen
checkup check that process is running, restart if not
restart restart process
run run process in console (not screen)
start start process
status report if process is running
stop stop process
OPTIONAL TERMS
NAME name of process (default: bluesky_queueserver-)
Alternatively, run the QS host's startup comand directly within the qs/
subdirectory.
cd ./qs
start-re-manager --config=./qs-config.yml
Use this command to run the test suite locally:
pytest -vvv --lf ./src
The QS host process writes files into the qs directory. This directory can be relocated. However, it should not be moved into the instrument package since that might be installed into a read-only directory.