EPICS StreamDevice driver for SmarAct SmarPod Piezo Hexapod controller.
Though it may work on other versions, the driver was tested on these:
- EPICS base 3.14.12.3 http://www.aps.anl.gov/epics/
- asyn 4-18 http://www.aps.anl.gov/epics/modules/soft/asyn/
- StreamDevice 2.5+ http://epics.web.psi.ch/software/streamdevice/
-
Install EPICS
- If using a Debian-based system (e.g., Ubuntu), use the packages here http://epics.nsls2.bnl.gov/debian/
- If no packages are available for your distribution, build from source
-
Edit configure/RELEASE
- Point the directories listed in there to the appropriate places
- If using the Debian packages, everything can be pointed to /usr/lib/epics
-
Edit iocBoot/iocSmarPod/st.cmd
-
Change the shebang on the top of the script if your architecture is different than linux-x86: #!../../bin/linux-x86/hxnSmarPod (check if the environment variable EPICS_HOST_ARCH is set, or perhaps
uname -a
, or ask someone if you don't know) -
The following lines set the prefix to all of the additional (i.e., non-motor record) PVs (with
$(P)$ (R)):epicsEnvSet "P" "$(P=E1:)" epicsEnvSet "R" "$(R=SmarPod:)"
Set the second quoted strings appropriately.
-
Set the IP address of the controller here:
epicsEnvSet "SMARPOD_IP" "$(SMARPOD_IP=10.0.3.9)" epicsEnvSet "SMARPOD_PORT" "$(SMARPOD_PORT=2000)"
The port should not be changed.
-
For each device, load the necessary records:
dbLoadRecords("$(TOP)/db/devSmarPod.db","P=$(P),R=$(R),PORT=$(ASYN_PORT),A=0")
-
-
Go to the top directory and
make
-
If all goes well:
$ cd iocBoot/iocSmarPod $ chmod +x st.cmd $ ./st.cmd
-
Run EDM:
$ export EDMDATAFILES=$TOP/op/edl:$EDMDATAFILES $ edm -x -m "P=E1:,R=SmarPod:" smarpod