motorDSM

EPICS motor drivers for the following Dynamic Structures and Materials motor controllers: MD-90

Build Status

motorDSM is a submodule of motor. When motorDSM is built in the motor/modules directory, no manual configuration is needed.

motorDSM can also be built outside of motor by copying it's configure/EXAMPLE_RELEASE.local file to RELEASE.local and defining the paths to EPICS_BASE, MOTOR, and itself.

motorDSM contains an example IOC that is built if configure/CONFIG_SITE.local sets BUILD_IOCS = YES. The example IOC can be built outside of the driver module. Copy iocs/dsmIOC/configure/EXAMPLE_RELEASE.local to RELEASE.local and uncomment and set the paths for the appropriate lines depending on whether motorDSM was built inside the motor module or independently.

To run the example IOC, in the iocs/dsmIOC/iocBoot/iocDsm directory, run

$ ../../bin/linux-x86_64/dsm st.cmd.md90

for one attached MD-90 controller, or

$ ../../bin/linux-x86_64/dsm st.cmd.md90.multi

for eight attached MD-90 controllers.


To set up a full EPICS stack for development and testing, install and configure all of the following dependencies:


epics-base

Install make, gcc, and perl packages if not already installed, then clone and build epics-base:

$ export SUPPORT=/path/to/install/directory
$ cd $SUPPORT
$ git clone git@github.com:epics-base/epics-base.git
$ cd epics-base
$ make distclean
$ make

asyn

$ cd $SUPPORT
$ git clone git@github.com:epics-modules/asyn.git

Needed to install (on Arch Linux) rpcsvc-proto package to get rpcgen binary needed to make asyn.

In asyn/configure, copy RELEASE to RELEASE.local and set SUPPORT and EPICS_BASE paths.

In asyn/configure, create CONFIG_SITE.local file with the line:
TIRPC=YES
if appropriate header files are in /usr/include/tirpc/rpc instead of /usr/include/rpc.

$ cd asyn
$ make clean
$ make

seq

$ cd $SUPPORT
$ git clone git@github.com:ISISComputingGroup/EPICS-seq.git seq

Install the re2c package (Arch).

Create seq/configure/RELEASE.local and set path for EPICS_BASE.
(Note this package seems to forget to git-ignore the .local file.)

Edit seq/configure/RELEASE to add the missing '-' before include for ISIS_CONFIG on the next to last line. Seems to be a typo.

$ cd seq
$ make clean
$ make

motor

$ cd $SUPPORT
$ git clone git@github.com:epics-modules/motor.git

Optionally, if you want to install additional motor drivers:

$ cd motor
$ git submodule init
$ git submodule update modules/motorAcs
$ git submodule update modules/foo
$ git submodule update modules/bar

Optionally, edit motor/modules/Makefile and comment out all unused driver submodules.

Optionally, create motor/config/CONFIG_SITE.local with the line:
BUILD_IOCS = YES

Create motor/config/RELEASE.local and set SUPPORT, ASYN, SNCSEQ, and EPICS_BASE to the appropriate paths.

$ cd motor
$ make distclean
$ make

motorDSM (this package)

$ cd $SUPPORT
$ git clone git@github.com:Binary-Coalescence/motorDSM.git

In motorDSM/configure, copy EXAMPLE_RELEASE.local to RELEASE.local and set paths for EPICS_BASE, MOTOR, and MOTOR_DSM.

In motorDSM/configure, copy EXAMPLE_CONFIG_SITE.local to CONFIG_SITE.local and set:
BUILD_IOCS = YES

In motorDSM/iocs/dsmIOC/configure, copy EXAMPLE_RELEASE.local to RELEASE.local. Comment out the "if built inside motor" lines, uncomment the "if built outside motor" lines, and set the path for MOTOR_DSM.

$ cd motorDSM
$ make distclean
$ make
Description
EPICS motor driver for the DSM MD-90 motor controller
Readme 280 KiB
Languages
C++ 83.6%
Makefile 12.7%
C 3.1%
Batchfile 0.6%