Skip to content

Latest commit

 

History

History
73 lines (59 loc) · 2.15 KB

File metadata and controls

73 lines (59 loc) · 2.15 KB

Design

Experiment Monitoring

System design notes for supporting the Experiment Monitoring user story.

Sequence Diagram

sequenceDiagram
    actor user
    user ->> labview: start scan
    labview ->> ZMQImageDispatcher: start_scan(scan_metadata)
    ZMQImageDispatcher ->> XPSDataSet: create(scan_metadata)
    activate XPSDataSet
    XPSDataSet ->> Tiled: create run collection with metadata

    XPSDataSet ->> Tiled: create intgrated frame table
    XPSDataSet ->> Tiled: create filtered frame table
    deactivate XPSDataSet
    labview ->>+ ZMQImageDispatcher: send new frame

    activate XPSDataSet
    ZMQImageDispatcher ->> XPSDataSet: new frame
    XPSDataSet ->> XPSDataSet: vertically integrate frame
    XPSDataSet ->> Tiled: write frame
    XPSDataSet ->> tr_xrd_calc: calculate filtered frame
    XPSDataSet ->> Tiled: write filtered frame
    XPSDataSet ->> tr_xrd_calc: caluculatepeak fit
    XPSDataSet ->> Tiled: write peak fit
    deactivate XPSDataSet


    ZMQImageDispatcher ->> Dash App: notify new data available

    activate Dash App
    Dash App ->> Tiled: read VFFT
    Dash App ->> Tiled: read Sum
    Dash App ->> Tiled: read IVFFT
    Dash App ->> Tiled: read Peak Fit
    Dash App ->> Dash App: update slider
    deactivate Dash App
Loading

Classes

classDiagram
    note for XPSDataSet "Module: tr_ap_xps.writer"
    class XPSDataSet {
        - run_id: str
        - runs_node: node
        - run_node: node
        - lines_raw_node: node
        + __init__(runs_node: node, run_id: str)
        - _get_or_create_container(tiled_node: node, name: str) node
        - _get_or_create_table(tiled_node: node, data_frame: pd.DataFrame, name: str) node
        + new_integrated_frame(curr_frame: np.array)
    }

    note for ZMQImageListener "Module: tr_ap_xps.listener"
    class ZMQImageListener {
        - zmq_pub_address: str
        - zmq_pub_port: int
        - frame_function: Callable[[int, np.ndarray], None]
        - stop: bool
        + __init__(zmq_pub_address: str="tcp://127.0.0.1", zmq_pub_port: int=5555, function: callable=None)
        + start()
        + stop()
    }

Loading