|
Hi Edmund,
With the help of an AI coding agent, you can quickly create a PVAccess server based on p4p and epicsdev.
The resulting server can provide standard IOC-like functionality, including autosave/restore, iocStats, heartbeat monitoring, and PV put logging. Unlike a traditional IOC, however, it does not use EPICS database records.
OPI screens can also be generated automatically using AI together with phoebusgen.
As an example, I created this GitHub
repository and started with a minimal __main__.py containing only these two imports:
from moku.instruments import Oscilloscope
from epicsdev import epicsdev as edev
I then opened the folder in VS Code and gave Copilot
this prompt.
Within about five minutes, Copilot created a functional PVAccess server.
You can try it directly from the repository:
python -m epicsdev_osc_moku -i <moku_ip> -d moku -x 0
To create an OPI display, you can ask Copilot to modify this
OPI generator.
Regards,
Andrey
From: Tech-talk on behalf of Konrad Gajewski via Tech-talk
Sent: Friday, September 11, 2026 7:03 AM
To: Edmund Blomley
Cc: Tech Talk EPICS
Subject: Re: Device support for MokuPro from Liquid Instruments
Hi Edmund,
I use
https://github.com/klemenv/PyDevice support module to connect devices
with REST api to EPICS. It works pretty well in my case but the devices are quite simple and we have no high demand on performance (timing, bandwidth).
Cheers,
Konrad.
Skickat från min iPhone
11 sep. 2026 kl. 12:33 skrev Blomley, Edmund (IBPT) via Tech-talk <tech-talk at aps.anl.gov>:
Dear EPICS community,
A lab requested some help in getting EPICS support for a new device, which is basically a multi-purpose FPGA device.
The device is called MokuPro from Liquid Instruments[1]. It comes with a command line utility and a REST API [2]. It provides examples also for C++ [3], which seems to basically use CURL to query the Rest API. There is also a Python module [4].
While I always prefer “traditional” EPICS IOCs for hardware implementation I wonder if that is a good call if there is basically a RestAPI as the basic interface.
The next thing after a traditional EPICS IOC would be using PythonSoftIOC[5], which is Python, but still provides at least something close to “regular” EPICS records.
So I would be curious about what the best approach here would be. As this will probably be done by the people in the lab itself with little “traditional IOC” experience we will probably give it a first try with PythonSoftIOC.
Also, does anyone have a PythonSoftIOC implementing a RestAPI which I could take a look at?
Cheers
Eddy
[1] MokuPro: https://liquidinstruments.com/products/hardware-platforms/
[2] API Docs: https://apis.liquidinstruments.com/api/
[3] Examples in C++: https://apis.liquidinstruments.com/api/moku-examples/other-language-api/#c
[4] Moku Python module: https://pypi.org/project/moku/
[5] PythonSoftIOC: https://diamondlightsource.github.io/pythonSoftIOC/
|