Skip to content

Add adkreios device role for SPECS KREIOS-150 areaDetector IOC#278

Open
Anthony Sligar (sligara7) wants to merge 1 commit into
NSLS2:mainfrom
sligara7:add-adkreios-device-role
Open

Add adkreios device role for SPECS KREIOS-150 areaDetector IOC#278
Anthony Sligar (sligara7) wants to merge 1 commit into
NSLS2:mainfrom
sligara7:add-adkreios-device-role

Conversation

@sligara7

Copy link
Copy Markdown
Contributor

Summary

Adds a device role to deploy the ADKreios areaDetector driver, which controls the SPECS KREIOS-150 momentum microscope over the SpecsLab Prodigy "Remote In" TCP protocol (v1.22, default port 7010).

Module source: https://github.com/NSLS2/ADKreios (example IOC executable kreios, depends on ADCore).

Changes

  • roles/install_module/vars/adkreios_4ec03dc.yml — builds the ADKreios module (standard areaDetector build config; ADCore as the module dependency).
  • roles/device_roles/adkreios/schema.yml, tasks/main.yml, base.cmd/auto_settings.req templates, and an example config + verify.yml.
  • roles/deploy_ioc/vars/adkreios.yml — device defaults (uses the AD common plugin stack; PRODIGY_HOST/PRODIGY_PORT for the analyzer server).

Configuration

The IOC connects to a SpecsLab Prodigy server via an asyn IP port (PRODIGY_HOST:PRODIGY_PORT). Detector image size is set with XSIZE/YSIZE (default 1285×730). See roles/device_roles/adkreios/schema.yml for the full schema and examples/kreios-det1/ for a working example.

Testing

  • pytest (schema, vars, example, and verify validation): all pass.
  • Local container deploy (pixi run deployment --container -t adkreios, EL8): builds ADCore + ADKreios, deploys the example IOC, and all verify.yml checks pass.

Note for maintainers

The module repository NSLS2/ADKreios is currently internal. The install_module clone step (and CI) requires it to be anonymously cloneable, so it will need to be made public before automated deployment/CI can build it.

Copilot AI review requested due to automatic review settings July 7, 2026 16:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new adkreios device role and corresponding module/deploy configuration to support deploying an EPICS areaDetector IOC for the SPECS KREIOS-150 (SpecsLab Prodigy “Remote In” TCP protocol) via the ADKreios driver.

Changes:

  • Introduces an install_module entry for building ADKreios with standard areaDetector build settings and ADCore dependency.
  • Adds a new adkreios device role (schema, templates, tasks) plus an example config and verify.yml.
  • Adds deploy_ioc defaults for ADKreios instances, enabling the shared AD common plugin stack and providing default Prodigy connection + image sizing macros.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
roles/install_module/vars/adkreios_4ec03dc.yml Defines the ADKreios module source, version, build flags, executable, and dependency on ADCore.
roles/device_roles/adkreios/templates/base.cmd.j2 Provides IOC boot commands to configure the Prodigy TCP asyn port and load the ADKreios database template.
roles/device_roles/adkreios/templates/auto_settings.req.j2 Declares autosave request file includes for driver + common AD plugins.
roles/device_roles/adkreios/tasks/main.yml Installs the role’s boot and autosave request templates into the deployed IOC.
roles/device_roles/adkreios/schema.yml Defines the validated instance schema for required/optional environment macros (PREFIX, Prodigy host/port, sizes, etc.).
roles/device_roles/adkreios/examples/kreios-det1/verify.yml Adds a verification recipe for the example deployment outputs.
roles/device_roles/adkreios/examples/kreios-det1/config.yml Adds an example IOC instance configuration for the new device role.
roles/deploy_ioc/vars/adkreios.yml Adds deploy-time defaults for required module/template root, AD common plugin stack, autosave req list, and device macros.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +4 to +6
name: ADKreios
url: https://github.com/NSLS2/ADKreios
version: 4ec03dc

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is expected: the module repo NSLS2/ADKreios is intended to be public, and the anonymous ansible.builtin.git clone will succeed once it is (same pattern as other areaDetector modules in this collection, e.g. ADKinetix). No auth configuration is needed in the role. The two 'Test Deployment' CI jobs will fail until the repo is public; the role has otherwise been validated end-to-end in a local EL8 container (module built, IOC deployed, all verify.yml checks pass).

Comment thread roles/device_roles/adkreios/templates/base.cmd.j2 Outdated
Adds deployment support for the ADKreios areaDetector driver
(https://github.com/NSLS2/ADKreios), which controls the SPECS KREIOS-150
momentum microscope over the SpecsLab Prodigy "Remote In" TCP protocol.

- roles/install_module/vars/adkreios_4ec03dc.yml: build the ADKreios module
  (executable "kreios") with ADCore as its module dependency.
- roles/device_roles/adkreios/: schema, tasks, base.cmd + auto_settings.req
  templates, and an example config/verify.
- roles/deploy_ioc/vars/adkreios.yml: device defaults (uses AD common plugins;
  PRODIGY_HOST/PRODIGY_PORT for the analyzer server).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants