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 create_gui.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.
  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

[!WARNING] This module currently only works for example-synoptic/bl23b-services - use this directory file structure as a guideline.

  1. Add the beamline ixx-services repo to your VSCode workspace, ensuring each IOC service has been converted to the ibek format:

    |-- ixx-services
    |   |-- services
    |   |   |-- $(dom)-my-device-01
    |   |   |   |-- config
    |   |   |   |   |-- ioc.yaml
    
  2. Create your handmade synoptic screen in Phoebus and place in ixx-services/src-bob/$(dom)-synoptic-src.bob.

  3. Amend any references to example-synoptic with the path to your local ixx-services - generate_synoptic.py and generate.py.

  4. Construct a create_gui.yaml file at the root of ixx-services containing all the components from the services:

    beamline:
        dom: {beamline name}
        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.

Generating Synoptic

[!WARNING] Again, this is hardcoded to work for example-synoptic/bl23b-services so amend filepaths accordingly.

$ python example-synoptic/generate_synoptic.py

This generates the filled, top level blxxx-synoptic.bob and all component screens inside ixx-services/services/data.

Viewing the Synoptic

$ module load phoebus
$ phoebus.sh -resource /path/to/blxxx-synoptic.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.3.0a1.tar.gz (115.2 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.3.0a1-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file techui_builder-0.3.0a1.tar.gz.

File metadata

  • Download URL: techui_builder-0.3.0a1.tar.gz
  • Upload date:
  • Size: 115.2 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.3.0a1.tar.gz
Algorithm Hash digest
SHA256 3c1e2986bc79c9dbced79f817c66e62d2dd88544b21ec9f121b32fd9066fa602
MD5 da0189763b74f1c9f630d212342f3b85
BLAKE2b-256 b791e06dbe20de181bf4d24a703a997b412ae246d577223ed7639de876dd2204

See more details on using hashes here.

File details

Details for the file techui_builder-0.3.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for techui_builder-0.3.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 4f3cdde2ac289667cc717f0154270564783c5c98118517f93dca8d70f5eae2a3
MD5 a896828a165292393035fce3dce5304f
BLAKE2b-256 915e22ee4fde2c54fa3f0e0d6d594eff0337c727ee69c1e2e6ceafd4cc6584c6

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