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
Release files for techui-builder 0.8.1b2
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.1b2.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| techui_builder-0.8.1b2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / techui_builder-0.8.1b2.tar.gz
| Download URL | techui_builder-0.8.1b2.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
61f8ea29fa8e35dab375dffefb6814b0d063af6c6e310aab96d24a7badda965c
|
|
BLAKE2b-256 checksum How to use checksums |
4e6ac8c9944cdbb83e037d77c462190dbb76dab7ba1c96894e1ce057a9762772
|
| 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.1b2-py3-none-any.whl
| Download URL | techui_builder-0.8.1b2-py3-none-any.whl |
|---|---|
| Size | 37.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
03576d3701b370e0a3230987ad803361e4fd5f7cdb4ce1e2e45a5f2ca6780c26
|
|
BLAKE2b-256 checksum How to use checksums |
34b6670c3af4a6349048ab3f99585038bf5cf2c38d35ba6accc7d8150a06689c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|