Minor fixes

This commit is contained in:
sandst_a committed 2026-10-26 16:59:40 +01:00
1 parent 6c9d9832cc
commit e938fa7a11
4 files changed
+26 -10

No files matched your search

+1 -1
View File
@@ -14,7 +14,7 @@
# caqtdm -macro "IOC=HEXAPOD,CPP_ID=0" ecmcCppLogic.ui
epicsEnvSet("IOC", "${IOC=HEXAPD}")
require ecmccfg v11.2.0_RC1 "ECMC_VER=v11.2.0_RC1,MASTER_ID=-1,EC_RATE=1000"
require ecmccfg sandst_a "ECMC_VER=sandst_a,MASTER_ID=-1,EC_RATE=1000"
# Load all twelve virtual axes, then the C++ transform and its status PVs.
${SCRIPTEXEC} ./cfg/load.cmd
+22 -7
View File
@@ -370,27 +370,42 @@ The quintic profile in the offline viewer is not an IOC trajectory generator.
## EPICS viewer
Build the viewer's local C API library separately from the IOC's `libmain.so`:
Start the IOC first, then run the viewer on a machine with a graphical display
and network access to the IOC. From the project root, build the viewer's local
C API library separately from the IOC's `libmain.so` and install the dependencies:
```sh
make viewer-lib
python3 -m venv .venv # First-time setup; reuse an existing .venv if present.
.venv/bin/pip install -r python/requirements-ioc.txt
```
This creates `build/libhexapod.so` (`.dylib` on macOS) from `src/c_api.cpp`
without EPICS dependencies. Rebuild it after changing the kinematics code.
For a running IOC, install the IOC viewer requirements and use the IOC record
prefix, including the trailing colon:
For the IOC configured in `MTEST04-MTN-HEXAPOD_parameters.yaml`, start the live
viewer with the IOC record prefix, including the trailing colon:
```sh
.venv/bin/pip install -r python/requirements-ioc.txt
.venv/bin/python python/viewer.py --prefix HEXAPD:
.venv/bin/python python/viewer.py --prefix MTEST04-MTN-HEXAPOD:
```
Use the prefix configured by `loadCppLogic.cmd` (`DB_PREFIX`, default `${IOC}:`).
If the IOC was started with the startup script's fallback name `HEXAPD`, use
`--prefix HEXAPD:` instead. The prefix is the PV name prefix, not the IOC hostname.
Pyepics needs an EPICS Channel Access library (`libca`) and network access to the
IOC. If CA discovery does not reach the IOC subnet, configure
`EPICS_CA_ADDR_LIST` / `EPICS_CA_AUTO_ADDR_LIST` for your network before starting.
IOC. If broadcast discovery does not reach the IOC, explicitly address the host
configured in the parameters file (replace it for a different IOC):
```sh
EPICS_CA_AUTO_ADDR_LIST=NO EPICS_CA_ADDR_LIST=c6025a-08 \
.venv/bin/python python/viewer.py --prefix MTEST04-MTN-HEXAPOD:
```
To check connectivity independently, run
`caget MTEST04-MTN-HEXAPOD:hex-pose-actual` if EPICS command-line tools are
available. It should return six coordinate values. If the viewer reports missing
connections, check the prefix, IOC status and Channel Access network access.
IOC mode is read-only, with the offline motion controls disabled. It subscribes
to these six PVs through pyepics monitors:
+2 -1
View File
@@ -4,6 +4,7 @@ axis:
id: ${AX_ID}
group: virt
type: virtual
tweakDist: 5
features:
allowSrcChangeWhenEnabled: true
autoEnable:
@@ -30,7 +31,7 @@ encoder:
trajectory:
source: 0
axis:
velocity: 1
velocity: 10
acceleration: 10
deceleration: 10
+1 -1
View File
@@ -9,6 +9,7 @@ axis:
id: ${AX_ID}
group: phys
type: virtual
parameters: "restoreMotorSoftLims=1;"
features:
allowSrcChangeWhenEnabled: true
autoEnable:
@@ -33,7 +34,6 @@ encoder:
# External feedback is supplied by the C++ ideal plant; no EtherCAT position link.
trajectory:
source: 1
axis:
velocity: 1
acceleration: 10