A package for building Phoebus 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 techui.yaml file containing a description of the screens the user wants to create.
| Source | https://github.com/DiamondLightSource/techui-builder |
|---|---|
| PyPI | pip install techui-builder |
| 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
--recursiveflag to pull in techui-support for the associated bob files. - Open the project using VSCode.
- Reopen the project in a container. Make sure you are using the VSCode extension: Dev Containers by Microsoft.
-
Clone the beamline
ixx-servicesrepo to the root of this project, ensuring each IOC service has been converted to the ibek format. -
Create your handmade synoptic overview screen in Phoebus and place inside
ixx-services/synoptic/opis-src/index-src.bob. -
Construct a
techui.yamlfile insideixx-services/synopticcontaining all the components from the services:beamline: short_dom: {e.g. b23, b01-1} long_dom: {e.g. bl23b} desc: {beamline description} components: {component name}: desc: {component description} prefix: {PV prefix} extras: - {extra prefix 1} - {extra prefix 2}[!NOTE]
extrasis 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. -
Run this command to locally generate a schema, which can be used for validation testing
$ create-gui --schemaAdd the following at the top of the
techui.yamlto validate it against a schema# yaml-language-server: $schema=/path/to/techui.schema.ymlwhere the path can be the dev container workspace, or a released asset in the GitHub repo.
$ create-gui /path/to/synoptic/techui.yaml
This generates a populated index.bob and individual component screens inside ixx-services/synoptic/opis/.
In a terminal outside of the container:
$ module load phoebus
$ phoebus.sh -resource /path/to/opis/index.bob