This repository contains a system to generate large amounts of EPICS IOCs via string Templates using as input an Excel spreadsheet.
The following is a list of applications and ports:
Port | Device |
---|---|
5000 | countingPRU |
5002 | mks937b |
5003 | mbtemp |
5004 | agilent4uhv |
5005 | spixconv |
5006 | rackMonitoring |
- Requires Python >= 3.6
pip install openpyxl pandas
File | Description |
---|---|
Dockerfile | Target IOC |
Dockerfile. | Target IOC |
Dockerfile.Stream | Base Streamdevice |
Dockerfile.EPICS | EPICS base image |
For each device supported, a tag must be created in order to mitigate conflicts.
Use make
to build the image, editing the corresponding tag.
In order to build a new mks937b image, edit the image tag of the corresponding service at docker-compose.yml so it will not overwrite when pushed to dockerhub.
Build a service:
# Use make
make <target>
The docker related files included in this repository are meant to build and test the images. Check the instructions at docker-stacks/cons-streamdevice-ioc for production deployment.
Some environment variables are available to the user:
Env | Default | Desc |
---|---|---|
EPICS_IOC_CAPUTLOG_INET | 0.0.0.0 | EPICS Logging Inet (generic) |
EPICS_IOC_CAPUTLOG_PORT | 7012 | EPICS Logging Port (generic) |
EPICS_IOC_LOG_INET | 0.0.0.0 | EPICS Logging Inet (caput) |
EPICS_IOC_LOG_PORT | 7011 | EPICS Logging Port (caput) |
If the autosave feature is used, the *.sav
files directory should be mounted from host.
# *.sav files directory
/opt/streamdevice-ioc/autosave/save
The procServ may be using UNIX or TCP sockets. The socat
app is already present in the image in order to access UNIX sockets.
socat - UNIX-CLIENT:<socket_path>
In order to access in case of TCP sockets, one may use telnet
.
telnet <host> <port>
Autosave data inside the container is located at /opt/streamdevice-ioc/autosave/save/