Add adkreios device role for SPECS KREIOS-150 areaDetector IOC#278
Add adkreios device role for SPECS KREIOS-150 areaDetector IOC#278Anthony Sligar (sligara7) wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
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_moduleentry for building ADKreios with standard areaDetector build settings and ADCore dependency. - Adds a new
adkreiosdevice role (schema, templates, tasks) plus an example config and verify.yml. - Adds
deploy_iocdefaults 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.
| name: ADKreios | ||
| url: https://github.com/NSLS2/ADKreios | ||
| version: 4ec03dc |
There was a problem hiding this comment.
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).
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>
546085f to
8002414
Compare
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.reqtemplates, and an example config +verify.yml.roles/deploy_ioc/vars/adkreios.yml— device defaults (uses the AD common plugin stack;PRODIGY_HOST/PRODIGY_PORTfor 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 withXSIZE/YSIZE(default 1285×730). Seeroles/device_roles/adkreios/schema.ymlfor the full schema andexamples/kreios-det1/for a working example.Testing
pytest(schema, vars, example, and verify validation): all pass.pixi run deployment --container -t adkreios, EL8): builds ADCore + ADKreios, deploys the example IOC, and allverify.ymlchecks pass.Note for maintainers
The module repository
NSLS2/ADKreiosis currently internal. Theinstall_moduleclone step (and CI) requires it to be anonymously cloneable, so it will need to be made public before automated deployment/CI can build it.