Here is a roadmap for doing this using AI together with the
epicsdev helper for p4p:
• First, create a PV definition dictionary pvDef (using the pvinfo app or the
p4p.client API).
This dictionary should include each PV’s description, initial value, and an
extra section containing fields such as units, limitLow,
limitHigh, and setter.
• Then prompt an AI assistant (for example, Copilot Pro Codex) with something like:
“Create a PVAccess server called <my_instrument> using the epicsdev module that serves the PVs defined in
pvDef, and use the instrument's programming manual at <this httpp link> as a reference.”
• Within an hour, the AI should produce working code.
Review, test, and refine the result as needed.
Andrey Sukhanov,
Collider-Accelerator Department, Brookhaven National Laboratory.
"If you want to find the secrets of the universe, think in terms of
energy, frequency, and vibration" --Nikola Tesla
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov>
Sent: Monday, April 20, 2026 3:43 AM
To: Graeme Winter <gw363 at cornell.edu>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: Simulate an existing IOC with a python IOC
On 4/19/26 6: 42 PM, Graeme Winter via Tech-talk wrote: Thinking about developing a test harness for clients Has anyone made a tool which can interrogate a running IOC and create a python soft IOC with the same API? It doesn’t need to work just
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
On 4/19/26 6:42 PM, Graeme Winter via Tech-talk wrote:
Thinking about developing a test harness for clients
Has anyone made a tool which can interrogate a running IOC and create a python soft IOC with the same API? It doesn’t need to work just be the stubs
Struck me as worth asking before I delved into the rabbit hole…
https://github.com/mdavidsaver/ioc-clone
Takes a record list, and produces a .db file which can be passed to softIoc. Originally to facilitate offline development of OPI screens.
|