This release is a pre-release and may not be stable for production use.
techui_builder
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.
| What | Where |
|---|---|
| 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):
Requirements
- Docker
- VSCode
- CS-Studio (Phoebus)
Installation
- 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.
Setting Up
-
Clone the beamline
ixx-servicesrepo to the root of this project, ensuring each IOC service has been converted to the ibek format.git clone --recursive git@gitlab.diamond.ac.uk:controls/containers/beamline/ixx-services.git -
Create your handmade synoptic overview screen in Phoebus and place at
ixx-services/synoptic/index.bob. -
Construct a
techui.yamlfile insideixx-services/synopticcontaining all the components from the services:beamline: location: {e.g. b23, b01-1} domain: {e.g. bl23b} desc: {beamline description} url: {e.g. b23-opis.diamond.ac.uk} components: {component name}: desc: {component description} prefix: {PV prefix} extras: - {extra prefix 1} - {extra prefix 2} -
Run this command to locally generate a schema, which can be used for validation testing
$ techui-builder 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.
Generating the Synoptic
$ techui-builder build /path/to/synoptic/techui.yaml
This populates index.bob and individual component screens inside ixx-services/synoptic.
Generating the JsonMap
$ techui-builder generate-jsonmap /path/to/synoptic/index.bob
This populates JsonMap.json with the tree of component screens inside ixx-services/synoptic/index.bob.
Generating the Status PV database file
$ techui-builder status /path/to/synoptic/techui.yaml
This populates config/status.db with the status PVs of components inside ixx-services/synoptic/techui.yaml.
Viewing the Synoptic
In a terminal outside of the container:
$ module load phoebus
$ phoebus.sh -resource /path/to/opis/index.bob
Metadata
Release files for techui-builder 0.8.1b4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| techui_builder-0.8.1b4.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| techui_builder-0.8.1b4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / techui_builder-0.8.1b4.tar.gz
| Download URL | techui_builder-0.8.1b4.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6885e93b31d04f2105e39416bf0cef25cf89e55197a0da0fb8ea935aaaea1260
|
|
BLAKE2b-256 checksum How to use checksums |
0a94bfc315d2871bc838857856b646ddc862a5df87f7d8e2818dc2289c77dec1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / techui_builder-0.8.1b4-py3-none-any.whl
| Download URL | techui_builder-0.8.1b4-py3-none-any.whl |
|---|---|
| Size | 36.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50e66a93f2b280a90621b906ae585bd8a637a3ce1e9f2c56a8bdaa3f3fd03a05
|
|
BLAKE2b-256 checksum How to use checksums |
8ad8ca11a7c49f87d9b6c4a880f346f0a1b4cc9a3f29328a162d1924cbde7f08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|