forked from M-Labs/artiq
GUI -> dashboard
This commit is contained in:
parent
aa61c29efb
commit
7453d85d5e
@ -17,7 +17,7 @@ from artiq.gui import (state, experiments, shortcuts, explorer,
|
||||
|
||||
|
||||
def get_argparser():
|
||||
parser = argparse.ArgumentParser(description="ARTIQ GUI client")
|
||||
parser = argparse.ArgumentParser(description="ARTIQ Dashboard")
|
||||
parser.add_argument(
|
||||
"-s", "--server", default="::1",
|
||||
help="hostname or IP of the master to connect to")
|
||||
@ -28,7 +28,7 @@ def get_argparser():
|
||||
"--port-control", default=3251, type=int,
|
||||
help="TCP port to connect to for control")
|
||||
parser.add_argument(
|
||||
"--db-file", default="artiq_gui.pyon",
|
||||
"--db-file", default="artiq_dashboard.pyon",
|
||||
help="database file for local GUI settings")
|
||||
verbosity_args(parser)
|
||||
return parser
|
||||
@ -40,7 +40,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
icon = QtGui.QIcon(os.path.join(artiq_dir, "gui", "logo.svg"))
|
||||
self.setWindowIcon(icon)
|
||||
self.setWindowTitle("ARTIQ - {}".format(server))
|
||||
self.setWindowTitle("ARTIQ Dashboard - {}".format(server))
|
||||
|
||||
qfm = QtGui.QFontMetrics(self.font())
|
||||
self.resize(140*qfm.averageCharWidth(), 38*qfm.lineSpacing())
|
@ -16,7 +16,7 @@ build:
|
||||
- artiq_coreconfig = artiq.frontend.artiq_coreconfig:main
|
||||
- artiq_corelog = artiq.frontend.artiq_corelog:main
|
||||
- artiq_ctlmgr = artiq.frontend.artiq_ctlmgr:main
|
||||
- artiq_gui = artiq.frontend.artiq_gui:main
|
||||
- artiq_dashboard = artiq.frontend.artiq_dashboard:main
|
||||
- artiq_influxdb = artiq.frontend.artiq_influxdb:main
|
||||
- artiq_master = artiq.frontend.artiq_master:main
|
||||
- artiq_mkfs = artiq.frontend.artiq_mkfs:main
|
||||
|
@ -8,7 +8,7 @@ The manipulations described in this tutorial can be carried out using a single c
|
||||
Starting your first experiment with the master
|
||||
----------------------------------------------
|
||||
|
||||
In the previous tutorial, we used the ``artiq_run`` utility to execute our experiments, which is a simple stand-alone tool that bypasses the ARTIQ management system. We will now see how to run an experiment using the master (the central program in the management system that schedules and executes experiments) and the GUI client (that connects to the master and controls it).
|
||||
In the previous tutorial, we used the ``artiq_run`` utility to execute our experiments, which is a simple stand-alone tool that bypasses the ARTIQ management system. We will now see how to run an experiment using the master (the central program in the management system that schedules and executes experiments) and the dashboard (that connects to the master and controls it).
|
||||
|
||||
First, create a folder ``~/artiq-master`` and copy the file ``device_db.pyon`` (containing the device database) found in the ``examples/master`` directory from the ARTIQ sources. The master uses those files in the same way as ``artiq_run``.
|
||||
|
||||
@ -35,21 +35,21 @@ Start the master with: ::
|
||||
|
||||
This last command should not return, as the master keeps running.
|
||||
|
||||
Now, start the GUI client with the following commands in another terminal: ::
|
||||
Now, start the dashboard with the following commands in another terminal: ::
|
||||
|
||||
$ cd ~
|
||||
$ artiq_gui
|
||||
$ artiq_dashboard
|
||||
|
||||
.. note:: The ``artiq_gui`` program uses a file called ``artiq_gui.pyon`` in the current directory to save and restore the GUI state (window/dock positions, last values entered by the user, etc.).
|
||||
.. note:: The ``artiq_dashboard`` program uses a file called ``artiq_dashboard.pyon`` in the current directory to save and restore the GUI state (window/dock positions, last values entered by the user, etc.).
|
||||
|
||||
The GUI should display the list of experiments from the repository folder in a dock called "Explorer". There should be only the experiment we created. Select it and click "Submit", then look at the "Log" dock for the output from this simple experiment.
|
||||
The dashboard should display the list of experiments from the repository folder in a dock called "Explorer". There should be only the experiment we created. Select it and click "Submit", then look at the "Log" dock for the output from this simple experiment.
|
||||
|
||||
.. note:: Multiple clients may be connected at the same time, possibly on different machines, and will be synchronized. See the ``-s`` option of ``artiq_gui`` and the ``--bind`` option of ``artiq_master`` to use the network. Both IPv4 and IPv6 are supported.
|
||||
.. note:: Multiple clients may be connected at the same time, possibly on different machines, and will be synchronized. See the ``-s`` option of ``artiq_dashboard`` and the ``--bind`` option of ``artiq_master`` to use the network. Both IPv4 and IPv6 are supported.
|
||||
|
||||
Adding an argument
|
||||
------------------
|
||||
|
||||
Experiments may have arguments whose values can be set in the GUI and used in the experiment's code. Modify the experiment as follows: ::
|
||||
Experiments may have arguments whose values can be set in the dashboard and used in the experiment's code. Modify the experiment as follows: ::
|
||||
|
||||
|
||||
def build(self):
|
||||
@ -66,7 +66,7 @@ Use the command-line client to trigger a repository rescan: ::
|
||||
|
||||
artiq_client scan-repository
|
||||
|
||||
The GUI should now display a spin box that allows you to set the value of the ``count`` argument. Try submitting the experiment as before.
|
||||
The dashboard should now display a spin box that allows you to set the value of the ``count`` argument. Try submitting the experiment as before.
|
||||
|
||||
Setting up Git integration
|
||||
--------------------------
|
||||
|
@ -91,7 +91,7 @@ the existing environments using::
|
||||
.. note::
|
||||
The ``qt5`` package requires (on Linux only) libraries not packaged under the ``m-labs`` conda labels.
|
||||
Those need to be installed through the Linux distribution's mechanism.
|
||||
If ``artiq_gui`` does not start because ``it could not find or load the Qt platform plugin "xcb"``, install the various ``libxcb-*`` packages through your distribution's mechanism.
|
||||
If GUI programs do not start because they ``could not find or load the Qt platform plugin "xcb"``, install the various ``libxcb-*`` packages through your distribution's mechanism.
|
||||
The names of the libraries missing can be obtained from the output of a command like ``ldd [path-to-conda-installation]/envs/artiq-[date]/lib/qt5/plugins/platform/libqxcb.so``.
|
||||
|
||||
Preparing the core device FPGA board
|
||||
|
@ -29,10 +29,10 @@ Command-line client
|
||||
|
||||
The command-line client connects to the master and permits modification and monitoring of the databases, monitoring the experiment schedule and log, and submitting experiments.
|
||||
|
||||
GUI client
|
||||
----------
|
||||
Dashboard
|
||||
---------
|
||||
|
||||
The GUI client connects to the master and is the main way of interacting with it. The main features of the GUI are scheduling of experiments, setting of their arguments, examining the schedule, displaying real-time results, and debugging TTL and DDS channels in real time.
|
||||
The dashboard connects to the master and is the main way of interacting with it. The main features of the dashboard are scheduling of experiments, setting of their arguments, examining the schedule, displaying real-time results, and debugging TTL and DDS channels in real time.
|
||||
|
||||
Experiment scheduling
|
||||
*********************
|
||||
@ -105,11 +105,11 @@ You may now run the master with the Git support enabled: ::
|
||||
|
||||
$ artiq_master -g -r /path_to/experiments
|
||||
|
||||
Push commits containing experiments to the bare repository using e.g. Git over SSH, and the new experiments should automatically appear in the GUI.
|
||||
Push commits containing experiments to the bare repository using e.g. Git over SSH, and the new experiments should automatically appear in the dashboard.
|
||||
|
||||
.. note:: If you plan to run the ARTIQ system entirely on a single machine, you may also consider using a non-bare repository and the ``post-commit`` hook to trigger repository scans every time you commit changes (locally). The ARTIQ master never uses the repository's working directory, but only what is committed. More precisely, when scanning the repository, it fetches the last (atomically) completed commit at that time of repository scan and checks it out in a temporary folder. This commit ID is used by default when subsequently submitting experiments. There is one temporary folder by commit ID currently referenced in the system, so concurrently running experiments from different repository revisions is fully supported by the master.
|
||||
|
||||
The GUI always runs experiments from the repository. The command-line client, by default, runs experiment from the raw filesystem (which is useful for iterating rapidly without creating many disorganized commits). If you want to use the repository instead, simply pass the ``-R`` option.
|
||||
The dashboard always runs experiments from the repository. The command-line client, by default, runs experiment from the raw filesystem (which is useful for iterating rapidly without creating many disorganized commits). If you want to use the repository instead, simply pass the ``-R`` option.
|
||||
|
||||
Scheduler API reference
|
||||
***********************
|
||||
@ -137,5 +137,5 @@ Front-end tool reference
|
||||
:prog: artiq_client
|
||||
|
||||
.. argparse::
|
||||
:ref: artiq.frontend.artiq_gui.get_argparser
|
||||
:prog: artiq_gui
|
||||
:ref: artiq.frontend.artiq_dashboard.get_argparser
|
||||
:prog: artiq_dashboard
|
||||
|
2
setup.py
2
setup.py
@ -26,7 +26,7 @@ scripts = [
|
||||
"artiq_coreconfig=artiq.frontend.artiq_coreconfig:main",
|
||||
"artiq_corelog=artiq.frontend.artiq_corelog:main",
|
||||
"artiq_ctlmgr=artiq.frontend.artiq_ctlmgr:main",
|
||||
"artiq_gui=artiq.frontend.artiq_gui:main",
|
||||
"artiq_dashboard=artiq.frontend.artiq_dashboard:main",
|
||||
"artiq_influxdb=artiq.frontend.artiq_influxdb:main",
|
||||
"artiq_master=artiq.frontend.artiq_master:main",
|
||||
"artiq_mkfs=artiq.frontend.artiq_mkfs:main",
|
||||
|
Loading…
Reference in New Issue
Block a user