scan_info validation
As scan_info is the interface to all applications listening to bliss it should be well defined. @valentin.valls suggested the entries of scan_info should even be specified in a validatable way.
Here we try to get an inventory of keys that are/should be provided in scan_info. The following list is to be included in the doc (but it is easier to modify it here).
Required top-level keys at scan start:
key | value type | implemented | description | comment |
---|---|---|---|---|
acquisition_chain | dict | internal structure still to be redefined | ||
dim | int | dimension of the scan; e.g. 1 for a2scan and 2 for amesh | ||
filename | str | '<no saving>' if not defined | ||
instrument | dict | |||
node_name | str | full path to scan node in redis | ||
npoints | int | expected total number of points | ||
count_time | int | |||
scan_meta_categories | list | |||
save | bool | |||
scan_nb | int | |||
session_name | str | |||
start_time | str | e.g. datetime.datetime(2019, 10, 30, 15, 48, 45, 632879)
|
||
start_time_str | str | e.g. Wed Oct 30 15:48:45 2019
|
||
start_timestamp | float | e.g. 1572446925.6328785
|
why float? | |
technique | str | |||
title | str | |||
type | str | type of scan | predefined values e.g. ascan, a2scan | |
proposal | dict | |||
sample | dict | |||
sample_description | dict |
Additional required top-level keys at scan end:
key | value type | implemented | description | comment |
---|---|---|---|---|
instrument | dict | can be updated at scan end |
Optional keys (just supplied by bliss):
key | value type | implemented | description | comment |
---|---|---|---|---|
n_dim | list | number of points per motor | order as in start / stop | |
requested_positions | list | requested motor positions | e.g. useful for meshes | |
start | list | position of motors that are involved in the scan (at scan start) | what defines the order? where to get the corresponding motor names from? should the be a required value? | |
stop | list | position of motors that are involved in the scan (at scan end) | what defines the order? where to get the corresponding motor names from? should the be a required value? | |
user_name | str | |||
sleep_time | str |
Optional keys used by Flint:
key | value type | implemented | description | comment |
---|---|---|---|---|
to be added | cell | cell | cell |
Optional keys used by the Writer:
key | value type | implemented | description | comment |
---|---|---|---|---|
to be added | cell | cell | cell |
Optional keys used by other known processes e.g. GUI..:
key | value type | implemented | description | comment |
---|---|---|---|---|
to be added | cell | cell | cell |
current implementation state:
-
✔ :always provided -
✅ :currently not systematically provided -
⚠ can contain unauthorized values in current implementation -
❌ : :not implemented yet -
❔ would this be something useful?
@denolf , @valentin.valls , @sfisher : please feel free to modify this issue description