mirror of
https://github.com/Binary-Coalescence/motorDSM.git
synced 2025-08-04 21:55:40 -05:00
140 lines
4.2 KiB
Markdown
140 lines
4.2 KiB
Markdown
motorDSM
|
|
==========
|
|
|
|
EPICS motor drivers for the following [Dynamic Structures and
|
|
Materials](https://www.dynamic-structures.com/) motor controllers: MD-90
|
|
|
|
[](https://github.com/Binary-Coalescence/motorDSM/actions/workflows/ci-scripts-build.yml)
|
|
|
|
motorDSM is a submodule of [motor](https://github.com/epics-modules/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
|