BCDA-APS / qs-web2023

Web client for Bluesky queueserver using ReactJS
Other
2 stars 0 forks source link

List requirements #3

Closed prjemian closed 1 year ago

prjemian commented 1 year ago

Need a list of requirements, optionals, wish list.

prjemian commented 1 year ago

Get inspiration from GUIs, such as #2. Look at Mark Wolfman's GUI. Can we get a look at Bruce Ravel's GUI?

prjemian commented 1 year ago

image

image

prjemian commented 1 year ago

Requirements

(bluesky_2023_2) prjemian@zap:~/bluesky$ queue-monitor --help
usage: queue-monitor [-h] [--zmq-control-addr ZMQ_CONTROL_ADDR] [--zmq-control ZMQ_CONTROL] [--zmq-info-addr ZMQ_INFO_ADDR]
                     [--zmq-publish ZMQ_PUBLISH] [--http-server-uri HTTP_SERVER_URI]

BlueSky Queue Monitor

options:
  -h, --help            show this help message and exit
  --zmq-control-addr ZMQ_CONTROL_ADDR
                        Address of control socket of RE Manager, e.g. tcp://localhost:60615. If the address is passed as a CLI parameter, it
                        overrides the address specified with QSERVER_ZMQ_CONTROL_ADDRESS environment variable. Default address is used if the
                        parameter or the environment variable are not specified.
  --zmq-control ZMQ_CONTROL
                        The parameter is deprecated and will be removed. Use --zmq-control-addr instead.
  --zmq-info-addr ZMQ_INFO_ADDR
                        Address of PUB-SUB socket of RE Manager, e.g. 'tcp://localhost:60625'. If the address is passed as a CLI parameter, it
                        overrides the address specified with QSERVER_ZMQ_INFO_ADDRESS environment variable. Default address is used if the parameter
                        or the environment variable are not specified.
  --zmq-publish ZMQ_PUBLISH
                        The parameter is deprecated and will be removed. Use --zmq-info-addr instead.
  --http-server-uri HTTP_SERVER_URI
                        Address of HTTP Server, e.g. 'http://localhost:60610'. Activates communication with Queue Server via HTTP server. If the
                        address is passed as a CLI parameter, it overrides the address specified with QSERVER_HTTP_SERVER_URI environment variable.
                        Use QSERVER_HTTP_SERVER_API_KEY environment variable to pass an API key for authorization.
prjemian commented 1 year ago

Also need a list of the available devices (and possibly the descriptive dictionary from the existing_plans_and_devices.yaml file)

prjemian commented 1 year ago
  1. Client should get the workstation name (default : localhost), and control (60615) & info (60625) ports from the user.
  2. Then test if server is available (qserver status).
  3. If the RunEngine (RE) is open, then can request the names of the plans and devices that are available.

Given the text entry widgets of workstation_name, control_port, and info_port, then would use this configuration to try connecting:

prjemian commented 1 year ago

example to get console output (?):

export const getConsoleOutput = async(): Promise<IConsoleOutput> => {
    const res = await axiosInstance.get('/console_output');
    return res.data;
}
prjemian commented 1 year ago

How to connect to QS from web client?

prjemian commented 1 year ago

Connect to QS from web client using 0MQ (aka zmq). Examples

prjemian commented 1 year ago

conda install -c conda-forge yarn works! Try following instructions in the webclient README

prjemian commented 1 year ago

How to connect by 0MQ from a web client?

prjemian commented 1 year ago

Looks like this is complete. Can this issue be closed?