2024-06-24 14:18:45 -05:00
motorDSM
==========
2024-06-28 16:04:24 -05:00
EPICS motor drivers for the following [Dynamic Structures and Materials ](https://www.dynamic-structures.com/ ) motor controllers: MD-90
2019-04-16 16:00:30 -05:00
2024-05-20 15:05:13 -05:00
[](https://github.com/Binary-Coalescence/motorDSM/actions/workflows/ci-scripts-build.yml)
2020-05-26 11:55:28 -05:00
2024-06-28 16:04:24 -05:00
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.
2024-06-24 14:18:45 -05:00
2024-06-25 11:49:42 -05:00
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.
2024-06-24 14:18:45 -05:00
2024-06-25 11:49:42 -05:00
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.
2024-06-24 14:18:45 -05:00
2024-06-25 12:33:34 -05:00
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
2024-06-28 16:04:24 -05:00
for eight attached MD-90 controllers. You may need to change the path(s) for the serial port(s) in ``st.cmd.md90`` or ``st.cmd.md90.multi`` if the MD-90 is not attached at ``/dev/ttyUSB0` `.
2024-06-25 12:33:34 -05:00
2024-06-24 14:18:45 -05:00
------------------------
2024-06-28 16:09:50 -05:00
To set up a full EPICS stack for development and testing, install and configure all of the following dependencies:
2024-06-24 14:18:45 -05:00
------------------------
epics-base
------------------------
2024-06-28 16:09:50 -05:00
Install make, gcc, and perl packages if not already installed, then clone and build epics-base:
2024-06-24 14:18:45 -05:00
$ 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
2024-06-28 16:09:50 -05:00
You may need to install (on Arch Linux) ``rpcsvc-proto`` package to get ``rpcgen` ` binary needed to make asyn.
2024-06-24 14:18:45 -05:00
2024-06-28 16:04:24 -05:00
In ``asyn/configure``, create the file ``RELEASE.local` ` with contents:
SUPPORT=/path/to/install/directory
EPICS_BASE=/path/to/epics-base
2024-06-24 14:18:45 -05:00
In ``asyn/configure``, create ``CONFIG_SITE.local` ` file with the line:
TIRPC=YES
2024-06-28 16:09:50 -05:00
if appropriate header files are in ``/usr/include/tirpc/rpc`` instead of ``/usr/include/rpc` `.
2024-06-24 14:18:45 -05:00
2024-06-28 16:04:24 -05:00
$ cd $SUPPORT/asyn
2024-06-24 14:18:45 -05:00
$ make clean
$ make
------------------------
seq
------------------------
$ cd $SUPPORT
$ git clone git@github .com:ISISComputingGroup/EPICS-seq.git seq
2024-06-28 16:04:24 -05:00
Install the ``re2c` ` package (Arch) if needed.
2024-06-24 14:18:45 -05:00
2024-06-28 16:09:50 -05:00
Create ``seq/configure/RELEASE.local`` and set path for ``EPICS_BASE` `. (Note this package seems to forget to git-ignore the .local file.)
2024-06-24 14:18:45 -05:00
2024-06-28 16:09:50 -05:00
Edit ``seq/configure/RELEASE`` to add the missing '-' before the ``include`` for ``ISIS_CONFIG` ` on the next to last line. This seems to be a typo.
2024-06-24 14:18:45 -05:00
2024-06-28 16:04:24 -05:00
$ cd $SUPPORT/seq
2024-06-24 14:18:45 -05:00
$ make clean
$ make
------------------------
motor
------------------------
$ cd $SUPPORT
$ git clone git@github .com:epics-modules/motor.git
2024-06-28 16:09:50 -05:00
Create ``motor/configure/RELEASE.local`` and set ``SUPPORT``, ``ASYN``, ``SNCSEQ``, and ``EPICS_BASE` ` to the appropriate paths.
2024-06-24 14:18:45 -05:00
2024-06-28 16:04:24 -05:00
$ cd $SUPPORT/motor
2024-06-24 14:18:45 -05:00
$ make distclean
$ make
------------------------
motorDSM (this package)
------------------------
$ cd $SUPPORT
$ git clone git@github .com:Binary-Coalescence/motorDSM.git
2024-06-28 16:09:50 -05:00
In ``motorDSM/configure``, copy ``EXAMPLE_RELEASE.local`` to ``RELEASE.local`` and set paths for ``EPICS_BASE``, ``MOTOR``, and ``MOTOR_DSM` `.
2024-06-25 11:49:42 -05:00
2024-06-28 16:09:50 -05:00
In ``motorDSM/configure``, copy ``EXAMPLE_CONFIG_SITE.local`` to ``CONFIG_SITE.local` ` and uncomment to set:
2024-06-24 14:18:45 -05:00
BUILD_IOCS = YES
2019-04-16 16:00:30 -05:00
2024-06-28 16:09:50 -05:00
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` `.
2019-04-16 16:00:30 -05:00
2024-06-28 16:04:24 -05:00
$ cd $SUPPORT/motorDSM
2024-06-24 14:18:45 -05:00
$ make distclean
$ make