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
Release files for techui-builder 0.8.0
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.0.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| techui_builder-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / techui_builder-0.8.0.tar.gz
| Download URL | techui_builder-0.8.0.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c1fe9969982dd8358193df6f0be0384dcd880b5e767c188482f72620bbb477a1
|
|
BLAKE2b-256 checksum How to use checksums |
04840cd9b60e172fa4c84876b0fceb8620696199dc4c1735ad2f3f45cbea880c
|
| 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.0-py3-none-any.whl
| Download URL | techui_builder-0.8.0-py3-none-any.whl |
|---|---|
| Size | 36.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9ebfcf5506d652a0b24131d3c09a6b4a4cce53eeeff8164b9c70a605832d33b
|
|
BLAKE2b-256 checksum How to use checksums |
20fe130a2d1a8ca469489143dba014da294926710b0eadec70a924204c35a6ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|