From 1a4794a9b2822810fac5f662589e2e73f6223c85 Mon Sep 17 00:00:00 2001 From: Daniel Sissom Date: Fri, 28 Jun 2024 16:04:24 -0500 Subject: [PATCH 1/4] Clarified install instructions in README. --- README.md | 46 +++++++++++++++------------------------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index f2ca560..6185981 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,11 @@ motorDSM ========== -EPICS motor drivers for the following [Dynamic Structures and -Materials](https://www.dynamic-structures.com/) motor controllers: MD-90 +EPICS motor drivers for the following [Dynamic Structures and Materials](https://www.dynamic-structures.com/) motor controllers: MD-90 [![Build Status](https://github.com/Binary-Coalescence/motorDSM/actions/workflows/ci-scripts-build.yml/badge.svg)](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 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. @@ -22,7 +19,7 @@ for one attached MD-90 controller, or $ ../../bin/linux-x86_64/dsm st.cmd.md90.multi -for eight attached MD-90 controllers. +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``. ------------------------ @@ -51,18 +48,19 @@ asyn $ cd $SUPPORT $ git clone git@github.com:epics-modules/asyn.git -Needed to install (on Arch Linux) ``rpcsvc-proto`` package to get ``rpcgen`` +You may need 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 the file ``RELEASE.local`` with contents: +SUPPORT=/path/to/install/directory +EPICS_BASE=/path/to/epics-base 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 + $ cd $SUPPORT/asyn $ make clean $ make @@ -74,15 +72,15 @@ seq $ cd $SUPPORT $ git clone git@github.com:ISISComputingGroup/EPICS-seq.git seq -Install the ``re2c`` package (Arch). +Install the ``re2c`` package (Arch) if needed. 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. +on the next to last line. This seems to be a typo. - $ cd seq + $ cd $SUPPORT/seq $ make clean $ make @@ -94,24 +92,10 @@ 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``, +Create ``motor/configure/RELEASE.local`` and set ``SUPPORT``, ``ASYN``, ``SNCSEQ``, and ``EPICS_BASE`` to the appropriate paths. - $ cd motor + $ cd $SUPPORT/motor $ make distclean $ make @@ -127,13 +111,13 @@ 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: +to ``CONFIG_SITE.local`` and uncomment to 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 + $ cd $SUPPORT/motorDSM $ make distclean $ make From 40cfb47f05ced006f8c8c1fcf804d53fddc26012 Mon Sep 17 00:00:00 2001 From: Daniel Sissom Date: Fri, 28 Jun 2024 16:05:17 -0500 Subject: [PATCH 2/4] Made /dev/ttyUSB0 default serial port again. --- iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 b/iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 index 3a8a2a4..717d333 100644 --- a/iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 +++ b/iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 @@ -8,8 +8,8 @@ dsm_registerRecordDeviceDriver(pdbbase) # Network device #!drvAsynIPPortConfigure("serial0", "192.168.1.16:4002",0,0,0) # Local serial port -#!drvAsynSerialPortConfigure("serial0", "/dev/ttyUSB0", 0, 0, 0) -drvAsynSerialPortConfigure("serial0", "/tmp/motorport", 0, 0, 0) +drvAsynSerialPortConfigure("serial0", "/dev/ttyUSB0", 0, 0, 0) +#!drvAsynSerialPortConfigure("serial0", "/tmp/motorport", 0, 0, 0) asynSetOption("serial0", 0, "baud", "115200") asynSetOption("serial0", 0, "bits", "8") asynSetOption("serial0", 0, "parity", "none") From 90b0fa88363fc132d2b9ef5c340b158747b613cf Mon Sep 17 00:00:00 2001 From: Daniel Sissom Date: Fri, 28 Jun 2024 16:06:46 -0500 Subject: [PATCH 3/4] Cleaned up IOC startup file. --- iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 | 7 ------- 1 file changed, 7 deletions(-) diff --git a/iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 b/iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 index 717d333..5893de1 100644 --- a/iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 +++ b/iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90 @@ -9,20 +9,14 @@ dsm_registerRecordDeviceDriver(pdbbase) #!drvAsynIPPortConfigure("serial0", "192.168.1.16:4002",0,0,0) # Local serial port drvAsynSerialPortConfigure("serial0", "/dev/ttyUSB0", 0, 0, 0) -#!drvAsynSerialPortConfigure("serial0", "/tmp/motorport", 0, 0, 0) asynSetOption("serial0", 0, "baud", "115200") asynSetOption("serial0", 0, "bits", "8") asynSetOption("serial0", 0, "parity", "none") asynSetOption("serial0", 0, "stop", "1") -# not sure if these two are needed or what they should be set to: -#!asynSetOption("serial0", 0, "clocal", "Y") -#!asynSetOption("serial0", 0, "crtscts", "Y") - asynOctetSetInputEos("serial0", 0, "\r") asynOctetSetOutputEos("serial0", 0, "\r") asynSetTraceIOMask("serial0", 0, 2) -#asynSetTraceMask("serial0", 0, 255) # Turn on the power supply and set the deadband asynOctetConnect("initConnection", "serial0", 0) @@ -34,7 +28,6 @@ MD90CreateController("MD900", "serial0", 1, 100, 5000) ### Motors dbLoadTemplate "motor.substitutions.md90" - dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial0,PORT=serial0,ADDR=0,OMAX=80,IMAX=80") iocInit From 8ec61fb3dc2d177b64604716385323c412a2acb6 Mon Sep 17 00:00:00 2001 From: Daniel Sissom Date: Fri, 28 Jun 2024 16:09:50 -0500 Subject: [PATCH 4/4] Removed hard line wrapping in README to fix markdown rendering issues. --- README.md | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 6185981..abc5ecd 100644 --- a/README.md +++ b/README.md @@ -23,15 +23,13 @@ for eight attached MD-90 controllers. You may need to change the path(s) for th ------------------------ -To set up a full EPICS stack for development and testing, install and configure -all of the following dependencies: +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: +Install make, gcc, and perl packages if not already installed, then clone and build epics-base: $ export SUPPORT=/path/to/install/directory $ cd $SUPPORT @@ -48,8 +46,7 @@ asyn $ cd $SUPPORT $ git clone git@github.com:epics-modules/asyn.git -You may need to install (on Arch Linux) ``rpcsvc-proto`` package to get ``rpcgen`` -binary needed to make asyn. +You may need to install (on Arch Linux) ``rpcsvc-proto`` package to get ``rpcgen`` binary needed to make asyn. In ``asyn/configure``, create the file ``RELEASE.local`` with contents: SUPPORT=/path/to/install/directory @@ -57,8 +54,7 @@ EPICS_BASE=/path/to/epics-base 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``. +if appropriate header files are in ``/usr/include/tirpc/rpc`` instead of ``/usr/include/rpc``. $ cd $SUPPORT/asyn $ make clean @@ -74,11 +70,9 @@ seq Install the ``re2c`` package (Arch) if needed. -Create ``seq/configure/RELEASE.local`` and set path for ``EPICS_BASE``. -(Note this package seems to forget to git-ignore the .local file.) +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. This seems to be a typo. +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. $ cd $SUPPORT/seq $ make clean @@ -92,8 +86,7 @@ motor $ cd $SUPPORT $ git clone git@github.com:epics-modules/motor.git -Create ``motor/configure/RELEASE.local`` and set ``SUPPORT``, ``ASYN``, ``SNCSEQ``, -and ``EPICS_BASE`` to the appropriate paths. +Create ``motor/configure/RELEASE.local`` and set ``SUPPORT``, ``ASYN``, ``SNCSEQ``, and ``EPICS_BASE`` to the appropriate paths. $ cd $SUPPORT/motor $ make distclean @@ -107,16 +100,12 @@ 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_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 uncomment to set: +In ``motorDSM/configure``, copy ``EXAMPLE_CONFIG_SITE.local`` to ``CONFIG_SITE.local`` and uncomment to 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``. +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 $SUPPORT/motorDSM $ make distclean