A package for building GUIs
Techui-builder is a module for building and organising phoebus gui screens using a builder-ibek yaml description of an IOC, with a user created create_gui.yaml file containing a description of the screens the user wants to create.
Source | https://github.com/DiamondLightSource/techui-builder |
---|---|
Docker | docker run ghcr.io/diamondlightsource/techui-builder:latest |
Releases | https://github.com/DiamondLightSource/techui-builder/releases |
The process to use this module goes as follows (WIP):
- Docker
- VSCode
- CS-Studio (Phoebus)
- Clone this module with the
--recursive
flag to pull in techui-support. - Open the project using VSCode.
- Reopen the project in a container. Make sure you are using the vscode extension: Dev Containers by Microsoft.
Warning
This module currently only works for example-synoptic/bl23b-services
- use this directory file structure as a guideline.
-
Add the beamline
ixx-services
repo to your VSCode workspace, ensuring each IOC service has been converted to the ibek format:|-- ixx-services | |-- services | | |-- $(dom)-my-device-01 | | | |-- config | | | | |-- ioc.yaml
-
Create your handmade synoptic screen in Phoebus and place in
ixx-services/src-bob/$(dom)-synoptic-src.bob
. -
Amend any references to
example-synoptic
with the path to your localixx-services
- generate_synoptic.py and generate.py. -
Construct a
create_gui.yaml
file at the root ofixx-services
containing all the components from the services:beamline: dom: {beamline name} desc: {beamline description} components: {component name}: desc: {component description} prefix: {PV prefix} extras: - {extra prefix 1} - {extra prefix 2}
[!NOTE]
extras
is optional, but allows any embedded screen to be added to make a summary screen e.g. combining all imgs, pirgs and ionps associated with a vacuum space.
Warning
Again, this is hardcoded to work for example-synoptic/bl23b-services
so amend filepaths accordingly.
$ python example-synoptic/generate_synoptic.py
This generates the filled, top level blxxx-synoptic.bob and all component screens inside ixx-services/services/data
.
$ module load phoebus
$ phoebus.sh -resource /path/to/blxxx-synoptic.bob