Skip to content

Commit ee6ad1f

Browse files
authored
Merge pull request #128 from jwlodek/add-adxspd-role
Add role for ADXSPD driver
2 parents 9c3fc21 + 28f22c2 commit ee6ad1f

10 files changed

Lines changed: 114 additions & 11 deletions

File tree

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ delete:
66

77
role:
88
@if [ -z "${TARGET}" ]; then \
9-
./scripts/manage_collection.py add role; \
9+
pixi run make-role; \
1010
else \
11-
./scripts/manage_collection.py $(TARGET) role; \
11+
pixi run $(TARGET)-role; \
1212
fi
1313
git status
1414

1515
module:
1616
@if [ -z "${TARGET}" ]; then \
17-
./scripts/manage_collection.py add module; \
17+
pixi run make-module; \
1818
else \
19-
./scripts/manage_collection.py $(TARGET) module; \
19+
pixi run $(TARGET)-module; \
2020
fi
2121
git status
2222

2323
report:
24-
./scripts/manage_collection.py report
24+
pixi run report

pixi.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ version = "1.2.0"
1010
default = { solve-group = "default" }
1111

1212
[tasks]
13-
make-role = "make role"
14-
make-module = "make module"
15-
update-module = "make update module"
16-
delete-role = "make delete role"
17-
delete-module = "make delete module"
18-
report = "make report"
13+
make-role = "scripts/manage_collection.py add role"
14+
make-module = "scripts/manage_collection.py add module"
15+
update-module = "scripts/manage_collection.py update module"
16+
delete-role = "scripts/manage_collection.py delete role"
17+
delete-module = "scripts/manage_collection.py delete module"
18+
report = "scripts/manage_collection.py report"
1919
lint-changes = "pre-commit"
2020
lint = "pre-commit run --all-files"
2121
ruff-fix = "ruff check --fix"

roles/deploy_ioc/vars/adxspd.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
3+
deploy_ioc_use_ad_common: true
4+
deploy_ioc_required_module: adxspd_986de77
5+
deploy_ioc_template_root_path:
6+
"{{ deploy_ioc_required_module_path }}/iocs/xspdIOC"
7+
deploy_ioc_req_file_list:
8+
- name: auto_settings.req
9+
macros: "P=$(PREFIX)"
10+
deploy_ioc_device_specific_env:
11+
PORT: "XSPD1"
12+
QSIZE: 20
13+
NCHANS: 2048
14+
CBUFFS: 500
15+
MAX_THREADS: 8
16+
EPICS_DB_INCLUDE_PATH: "$(ADCORE)/db"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# adxspd
2+
3+
Ansible role for deploying ADXSPD IOC instances.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
3+
adxspd-01:
4+
type: adxspd
5+
environment:
6+
ENGINEER: C. Engineer
7+
PREFIX: XF:31ID1-ES{XSPD-Det:1}
8+
XSIZE: 1576
9+
YSIZE: 1200
10+
NUM_MODULES: 1
11+
IP: "192.168.1.1"
12+
PORT_NUM: 8008
13+
DEVICE_ID: "lambda01"
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
3+
type: enum("adxspd")
4+
environment:
5+
ENGINEER: str()
6+
PREFIX: str()
7+
XSIZE: int()
8+
YSIZE: int()
9+
NUM_MODULES: int()
10+
IP: any(hostname(), ip())
11+
PORT_NUM: int()
12+
13+
# Optional device identifier.
14+
# If not specified, first device discovered will be used.
15+
DEVICE_ID: str(required=False)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
# Tasks for adxspd role
3+
4+
- name: Install base.cmd
5+
ansible.builtin.template:
6+
src: templates/base.cmd.j2
7+
dest: "{{ deploy_ioc_ioc_directory }}/iocBoot/base.cmd"
8+
mode: "0664"
9+
owner: "{{ host_config.softioc_user }}"
10+
group: "{{ host_config.softioc_group }}"
11+
12+
- name: Install auto_settings.req
13+
ansible.builtin.template:
14+
src: templates/auto_settings.req.j2
15+
dest: "{{ deploy_ioc_as_directory }}/req/auto_settings.req"
16+
mode: "0664"
17+
owner: "{{ host_config.softioc_user }}"
18+
group: "{{ host_config.softioc_group }}"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
file "ADXSPD_settings.req", P=$(P), R=cam1:
2+
file "commonPlugin_settings.req", P=$(P)
3+
{% if deploy_ioc_merged_env.FFMPEGSERVER is defined and ioc.environment.FFMSTREAM_PORT is defined%}
4+
file "ffmpegServer_settings.req", P=$(P), R=ffmstream1:
5+
{% endif %}
6+
{% if deploy_ioc_merged_env.ADCOMPVISION is defined %}
7+
file "NDCV_settings.req", P=$(P), R=CV1:
8+
{% endif %}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
dbLoadDatabase("{{ deploy_ioc_template_root_path }}/dbd/{{ deploy_ioc_executable }}.dbd")
3+
{{ deploy_ioc_executable }}_registerRecordDeviceDriver(pdbbase)
4+
5+
# adxspd specific commands
6+
{% if ioc.environment.DEVICE_ID is defined %}
7+
ADXSPDConfig("$(PORT)", "$(IP):$(PORT_NUM)", "$(DEVICE_ID)")
8+
{% else %}
9+
ADXSPDConfig("$(PORT)", "$(IP):$(PORT_NUM)")
10+
{% endif %}
11+
12+
dbLoadRecords("$(ADXSPD)/db/ADXSPD.template","P=$(PREFIX),R=cam1:,PORT=$(PORT),ADDR=0,TIMEOUT=1")
13+
{% for module_index in range(1, ioc.environment.NUM_MODULES + 1) %}
14+
dbLoadRecords("$(ADXSPD)/db/ADXSPDModule.template", "P=$(PREFIX), R=mod{{ module_index }}:,PORT=$(PORT)_MOD{{ module_index }},ADDR=0,TIMEOUT=1")
15+
{% endfor %}
16+
17+
set_requestfile_path("$(ADXSPD)/xspdApp/Db")
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
3+
adxspd_986de77:
4+
name: ADXSPD
5+
version: 986de77
6+
url: https://github.com/NSLS2/ADXSPD
7+
include_base_ad_config: True
8+
executable: xspdApp
9+
pkg_deps:
10+
- curl-devel
11+
module_deps:
12+
- adcompvision_9750d13
13+
- adcore_60080dc

0 commit comments

Comments
 (0)