From 31917f4e0e75756e38b37bc64b87f1d27716d66d Mon Sep 17 00:00:00 2001 From: Giles Knap Date: Thu, 16 Jan 2025 14:38:23 +0000 Subject: [PATCH] add schema generation --- .gitmodules | 6 ++++++ ibek-support | 1 + ibek-support-dls | 1 + src/builder2ibek/converters/Hy8401ip.py | 2 ++ src/builder2ibek/utils.py | 2 +- tests/samples/bl16i-va-ioc-01.yaml | 4 ++-- update-schema | 9 +++++++++ 7 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 .gitmodules create mode 160000 ibek-support create mode 160000 ibek-support-dls create mode 100755 update-schema diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a83ad9d --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "ibek-support-dls"] + path = ibek-support-dls + url = https://gitlab.diamond.ac.uk/controls/containers/utils/ibek-support-dls.git +[submodule "ibek-support"] + path = ibek-support + url = https://github.com/epics-containers/ibek-support diff --git a/ibek-support b/ibek-support new file mode 160000 index 0000000..e68591c --- /dev/null +++ b/ibek-support @@ -0,0 +1 @@ +Subproject commit e68591c270740de714d029b1935c53df40a8d60b diff --git a/ibek-support-dls b/ibek-support-dls new file mode 160000 index 0000000..7b13a89 --- /dev/null +++ b/ibek-support-dls @@ -0,0 +1 @@ +Subproject commit 7b13a890d07cb6bad273c665a8bb2d63657d97bd diff --git a/src/builder2ibek/converters/Hy8401ip.py b/src/builder2ibek/converters/Hy8401ip.py index d0b3bf0..e005e32 100644 --- a/src/builder2ibek/converters/Hy8401ip.py +++ b/src/builder2ibek/converters/Hy8401ip.py @@ -1,5 +1,6 @@ from builder2ibek.converters.globalHandler import globalHandler from builder2ibek.types import Entity, Generic_IOC +from builder2ibek.utils import int_to_hertz xml_component = "Hy8401ip" @@ -12,3 +13,4 @@ def handler(entity: Entity, entity_type: str, ioc: Generic_IOC): if entity_type == "Hy8401": entity.remove("name") + int_to_hertz(entity, "clockRate") diff --git a/src/builder2ibek/utils.py b/src/builder2ibek/utils.py index ee5b437..eea14f1 100644 --- a/src/builder2ibek/utils.py +++ b/src/builder2ibek/utils.py @@ -51,7 +51,7 @@ def hex_to_int(entity: Entity, prefix: str): ] -def int_to_Hertz(entity: Entity, key: str): +def int_to_hertz(entity: Entity, key: str): """ Convert an integer key to a Hertz key """ diff --git a/tests/samples/bl16i-va-ioc-01.yaml b/tests/samples/bl16i-va-ioc-01.yaml index 97b1552..6dd041b 100644 --- a/tests/samples/bl16i-va-ioc-01.yaml +++ b/tests/samples/bl16i-va-ioc-01.yaml @@ -47,13 +47,13 @@ entities: - type: Hy8401ip.Hy8401 cardid: 50 carrier: IPAC5 - clockRate: 15 + clockRate: 100kHz ipslot: 0 - type: Hy8401ip.Hy8401 cardid: 51 carrier: IPAC5 - clockRate: 15 + clockRate: 100kHz ipslot: 1 - type: epics.InterruptVectorVME diff --git a/update-schema b/update-schema new file mode 100755 index 0000000..4cec4cb --- /dev/null +++ b/update-schema @@ -0,0 +1,9 @@ +#!/bin/bash + +THISDIR=$(dirname $0) + +# set up the generic IOC-like environment for ibek +mkdir -p /epics/ibek-defs/ +ln -srf $THISDIR/ibek-support*/*/*.ibek.support.yaml /epics/ibek-defs/ + +ibek ioc generate-schema > /epics/ibek-defs/ioc.schema.json