epics-containers / pvi

EPICS PV Interface described in YAML
https://epics-containers.github.io/pvi
Apache License 2.0
4 stars 3 forks source link

auto-generation in the future #60

Open gilesknap opened 11 months ago

gilesknap commented 11 months ago

Having used PVI to make some screens for Aravis IOCs I'm wondering if we intend to support auto-generation as the primary way of making pvi files or if we intend to treat them as manually editable entities going forward.

With builder to ibek it is clear that this is a one off as builder will be retiring and hand edits of support yaml will be the only option in future. But with PVI the source of autogeneration may continue could continue.

If we intend to keep the conversion and maintain PVI device files via re-running the conversion then there are a number of changes that would need to be made to make this viable.

gilesknap commented 11 months ago

@coretl @GDYendell I've scheduled a meeting to discuss this Next Friday and will use these notes as the basis for that.

In my view auto-generation should be maintained and updated so that manual intervention is not required. The source of the auto-generated device files (.adl's and .h's) are unlikely to go away and the area detector modules continue to be updated with regular releases. Therefore not doing auto-gen leaves us with a maintenance headache. The same is true of most other support modules.

It would be nicest if each ibek-support folder contained a single file that described how to auto-generate pvi device files from the support modules that exist inside the generic IOC. I started a bash script to do this here but it is woefully inadequate, and I would prefer a yaml file with an associated command in pvi that consumes it.

If we have this we can generate device.yaml at support module build time instead of checking in hand coded ones. We could still allow override by checking in for where the manual edits can't be automated.

The features of this file would be:-

In addition we need some new features / bug fixes to make prettier screens.

This needs to make the label / demand / readback on separate lines because it needs MUCH more width. widget:lines:2 just makes two narrow two line widgets. image

In these two examples widget type checkbox seems to do the wrong thing, should I use a different type or is this a bug. image image

In truth this first set of auto generated screens came out pretty good. There is not a massive list of things that need to change.

gilesknap commented 11 months ago

One more thing. AD screens are not showing the status group containing PVS like BL20J-DI-PHDGN-03:CAM:ArrayRate_RBV

GDYendell commented 11 months ago

A problem with repeating the conversion is we are stuck with the grouping extracted from the adl files. Or would have to edit the adl files to change what appeared in the generated bob files.

GDYendell commented 11 months ago

widget:lines:2 just makes two narrow two line widgets

I am not sure what this means, but I am not surprised Text{Read,Write}.lines does not do what is expected because I don't think I implemented anything for it

In these two examples widget type checkbox seems to do the wrong thing, should I use a different type or is this a bug.

I think this is a bug in PVI