Skip to main content

A package for building Phoebus GUIs

Project description

CI Coverage PyPI License

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.

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

  1. Docker
  2. VSCode
  3. CS-Studio (Phoebus)

Installation

  1. Clone this module with the --recursive flag to pull in techui-support for the associated bob files.
  2. Open the project using VSCode.
  3. Reopen the project in a container. Make sure you are using the VSCode extension: Dev Containers by Microsoft.

Setting Up

  1. Clone the beamline ixx-services repo to the root of this project, ensuring each IOC service has been converted to the ibek format.

  2. Create your handmade synoptic overview screen in Phoebus and place inside ixx-services/synoptic/index.bob.

  3. Construct a techui.yaml file inside ixx-services/synoptic containing 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] 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.

  4. Run this command to locally generate a schema, which can be used for validation testing

    $ techui-builder --schema

    Add the following at the top of the techui.yaml to validate it against a schema

    # yaml-language-server: $schema=/path/to/techui.schema.yml

    where the path can be the dev container workspace, or a released asset in the GitHub repo.

Generating the Synoptic

$ techui-builder /path/to/synoptic/techui.yaml

This populates index.bob and individual component screens inside ixx-services/synoptic.

Viewing the Synoptic

In a terminal outside of the container:

$ module load phoebus
$ phoebus.sh -resource /path/to/opis/index.bob

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

techui_builder-0.5.2a3.tar.gz (969.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

techui_builder-0.5.2a3-py3-none-any.whl (23.8 kB view details)

Uploaded Python 3

File details

Details for the file techui_builder-0.5.2a3.tar.gz.

File metadata

  • Download URL: techui_builder-0.5.2a3.tar.gz
  • Upload date:
  • Size: 969.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for techui_builder-0.5.2a3.tar.gz
Algorithm Hash digest
SHA256 bd08fb82501d7898bb0177f82d1ded77b308f13f6474c875d76e15071d6fbd6b
MD5 be083df8301387cb461a9f00baf1f96b
BLAKE2b-256 40f4c3f3ae544646cff0f2fcfb07937957c77b78f13efaa5dc4b5d2fb3ba0954

See more details on using hashes here.

File details

Details for the file techui_builder-0.5.2a3-py3-none-any.whl.

File metadata

File hashes

Hashes for techui_builder-0.5.2a3-py3-none-any.whl
Algorithm Hash digest
SHA256 ce9a6218b9bcf750d9dbd82848db54d30483bdf6b983f0c60b99379efcda6800
MD5 7dd63923a2359f61bf9e27a04e733ae2
BLAKE2b-256 2884ffcdd2a1df7843083c6e3d3d4d71492f48eaf7326b5a322db81bcb97543c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page