Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge in epics-motor R7-3 to our master #59

Merged
merged 16 commits into from
Jun 2, 2023
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ O.*
/include/
/lib/
/templates/
bin/
/db/
dbd/
html/
include/
/iocsh/
lib/
templates/
cdCommands
envPaths
dllPath*.bat
Expand All @@ -20,3 +28,4 @@ runIOC.sh
relPaths.sh
iocBoot/iocmotorSim/motor.substitutions.local
.project
*.local
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ motorApp_DEPEND_DIRS = configure
# 3rd - make clean uninstall
# 4th - make

DIRS += motorExApp iocBoot
motorExApp_DEPEND_DIRS = motorApp
iocBoot_DEPEND_DIRS = motorExApp
DIRS += modules
modules_DEPEND_DIRS = motorApp


include $(TOP)/configure/RULES_TOP
43 changes: 39 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,52 @@
# motor
APS BCDA synApps module: motor
[![Build Status](https://github.com/epics-modules/motor/actions/workflows/ci-scripts-build.yml/badge.svg)](https://github.com/epics-modules/motor/actions/workflows/ci-scripts-build.yml)
<!--[![Build Status](https://travis-ci.org/epics-modules/motor.png)](https://travis-ci.org/epics-modules/motor)-->

[![Build Status](https://travis-ci.org/epics-modules/motor.png)](https://travis-ci.org/epics-modules/motor)
This module contains motor support for the Experimental Physics and Industrial Control System (EPICS).

**Note**: Current discussion on future of the *motor* module repository: https://github.com/epics-modules/motor/issues/55
The core motor functionality resides in this respository. Starting with R7-0 the drivers have been moved from motor to standalone github repositories, which have been added to motor as submodules. The driver repositories can be found here: https://github.com/epics-motor

## Getting started

### Updating clones created before 2019-04-02
Use the following procedure to update clones that were created before the beginning of the motor split:
```bash
$ cd motor
$ make distclean
$ git fetch origin
$ git status
<behind by many commits and can be fast-forwarded>
$ git stash
$ git rebase origin/master
$ git stash apply
$ git submodule init
$ git submodule update
```
Failure to 'make distclean' before rebasing will result in many driver source directories in motorApp with "O.*" directories that need to be removed manually.

### Cloning motor with support for all motor controllers
The following command results in a motor directory that contains all of the driver submodules:
```bash
$ git clone --recursive https://github.com/epics-modules/motor.git
```

### Cloning motor with support for a single motor controller
The following procedure allows only required drivers to be built, which can significantly reduce build times:
```bash
$ git clone https://github.com/epics-modules/motor.git
$ cd motor
$ git submodule init
$ git submodule update modules/motorMotorSim
```

## Additional Info
For more information, see:
* [main page](https://epics-modules.github.io/motor)
* [release notes](https://github.com/epics-modules/motor/blob/master/docs/RELEASE.md)
* [motor wiki](https://github.com/epics-modules/motor/wiki)
* http://www.aps.anl.gov/bcda/synApps
* [HTML documentation](https://github.com/epics-modules/motor/blob/master/docs/README.md)

[Report an issue with Motor](https://github.com/epics-modules/motor/issues/new?title=%20ISSUE%20NAME%20HERE&body=**Describe%20the%20issue**%0A%0A**Steps%20to%20reproduce**%0A1.%20Step%20one%0A2.%20Step%20two%0A3.%20Step%20three%0A%0A**Expected%20behaivour**%0A%0A**Actual%20behaviour**%0A%0A**Build%20Environment**%0AArchitecture:%0AEpics%20Base%20Version:%0ADependent%20Module%20Versions:&labels=bug)
[Request a feature](https://github.com/epics-modules/motor/issues/new?title=%20FEATURE%20SHORT%20DESCRIPTION&body=**Feature%20Long%20Description**%0A%0A**Why%20should%20this%20be%20added?**%0A&labels=enhancement)

converted from APS SVN repository: Fri Oct 16 12:31:41 CDT 2015
32 changes: 22 additions & 10 deletions configure/CONFIG_SITE
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,33 @@
# Normally CHECK_RELEASE should be set to YES.
# Set CHECK_RELEASE to NO to disable checking completely.
# Set CHECK_RELEASE to WARN to perform consistency checking but
# continue building anyway if conflicts are found.
# continue building even if conflicts are found.
CHECK_RELEASE = YES

# Set this when you only want to compile this application
# for a subset of the cross-compiled target architectures
# that Base is built for.
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32

# To install files into a location other than $(TOP) define
# INSTALL_LOCATION here.
#INSTALL_LOCATION=</path/name/to/install/top>

# Set this when your IOC and the host use different paths
# to access the application. This will be needed to boot
# from a Microsoft FTP server or with some NFS mounts.
# You must rebuild in the iocBoot directory for this to
# take effect.
#IOCS_APPL_TOP = </IOC/path/to/application/top>
#INSTALL_LOCATION=</absolute/path/to/install/top>

# Set this when the IOC and build host use different paths
# to the install location. This may be needed to boot from
# a Microsoft FTP server say, or on some NFS configurations.
#IOCS_APPL_TOP = </IOC's/absolute/path/to/install/top>

# For application debugging purposes, override the HOST_OPT and/
# or CROSS_OPT settings from base/configure/CONFIG_SITE
#HOST_OPT = NO
#CROSS_OPT = NO

# Don't build iocs in motor/modules/motorVendor/iocs by default
BUILD_IOCS = NO

# Overrides for the settings above may appear in a CONFIG_SITE.local file
-include $(or $(MOTOR),$(TOP))/configure/CONFIG_SITE.local

-include $(SUPPORT)/configure/CONFIG_SITE

58 changes: 26 additions & 32 deletions configure/RELEASE
Original file line number Diff line number Diff line change
Expand Up @@ -9,47 +9,41 @@
#
# Add your declarations here

SUPPORT=
-include $(TOP)/../configure/SUPPORT.$(EPICS_HOST_ARCH)
SUPPORT=/path/to/support

# If any motor controller communication mechanism besides the VME backplane is
# required, then ASYN must be defined.
# Recommended ASYN release: R4-23
ASYN=$(SUPPORT)/asyn/master
# If any motor controller communication mechanism besides
# the VME backplane is required, then ASYN must be defined.
# Recommended ASYN release: R4-35
ASYN=$(SUPPORT)/asyn-R4-35

# Need the sequencer and the busy record for the MM4005 and XPS trajectory scanning
# Recommended SNCSEQ release: R2.1.16
SNCSEQ=$(SUPPORT)/seq/master
# Recommended BUSY release: R1-6
BUSY=$(SUPPORT)/busy/master
# Need the sequencer and the busy record for trajectory scanning
# Recommended SNCSEQ release: R2.2.6
SNCSEQ=$(SUPPORT)/seq-2-2-6
# Recommended BUSY release: R1-7-1
BUSY=$(SUPPORT)/busy-R1-7-1

# Recommended EPICS release: R3.14.12.4
EPICS_BASE=
-include $(TOP)/../configure/EPICS_BASE.$(EPICS_HOST_ARCH)
# Recommended EPICS release: R3.15.6
EPICS_BASE=/path/to/base

# The following must be defined for the MXmotor device driver.
# The following must be defined for motorMXmotor
#!MX=$(SUPPORT)/mx/mx

# The following support modules are required for the Hytec driver and for the examples in
# <motor>/motorExApp. To build examples, the top Makefile,
# <motor>/Makefile must also be edited.
# IPAC is required to build motorHytec
# Recommended IPAC release: R2-15
IPAC=$(SUPPORT)/ipac-R2-15

# Recommended IPAC release: R2-12
IPAC=$(SUPPORT)/ipac/master
# Script module needed to build motorScriptMotor
#!LUA=$(SUPPORT)/lua-R1-3

# Script module needed to build ScriptMotorController
LUA=$(SUPPORT)/lua/master
# Modbus module needed to build motorAMCI's example IOC
# Required MODBUS release: R2-11 or later
#!MODBUS=$(SUPPORT)/modbus-R2-11

# The following is only needed for the motor examples in iocBoot.
#!MOTOR=$(TOP)

CALC=$(SUPPORT)/calc/master
AUTOSAVE=$(SUPPORT)/autosave/master
SSCAN=$(SUPPORT)/sscan/master
ONCRPC=$(SUPPORT)/oncrpc/master

# optional extra local definitions here
-include $(TOP)/configure/RELEASE.private

include $(TOP)/../../../ISIS_CONFIG
-include $(TOP)/../../../ISIS_CONFIG.$(EPICS_HOST_ARCH)
# These lines allow developers to override these RELEASE settings
# without having to modify this file directly.
-include $(TOP)/../RELEASE.local
-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
-include $(TOP)/configure/RELEASE.local
56 changes: 56 additions & 0 deletions configure/RELEASE.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# RELEASE - Location of external products
#
# Note: This file will be scanned to automatically generate
# include path definitions etc.
# The order of the following declarations will be retained
# within those definitions.
#
# Note that "#!" marks lines that can be uncommented.
#
# Add your declarations here

SUPPORT=
-include $(TOP)/../configure/SUPPORT.$(EPICS_HOST_ARCH)

# If any motor controller communication mechanism besides the VME backplane is
# required, then ASYN must be defined.
# Recommended ASYN release: R4-23
ASYN=$(SUPPORT)/asyn/master

# Need the sequencer and the busy record for the MM4005 and XPS trajectory scanning
# Recommended SNCSEQ release: R2.1.16
SNCSEQ=$(SUPPORT)/seq/master
# Recommended BUSY release: R1-6
BUSY=$(SUPPORT)/busy/master

# Recommended EPICS release: R3.14.12.4
EPICS_BASE=
-include $(TOP)/../configure/EPICS_BASE.$(EPICS_HOST_ARCH)

# The following must be defined for the MXmotor device driver.
#!MX=$(SUPPORT)/mx/mx

# The following support modules are required for the Hytec driver and for the examples in
# <motor>/motorExApp. To build examples, the top Makefile,
# <motor>/Makefile must also be edited.

# Recommended IPAC release: R2-12
IPAC=$(SUPPORT)/ipac/master

# Script module needed to build ScriptMotorController
LUA=$(SUPPORT)/lua/master

# The following is only needed for the motor examples in iocBoot.
#!MOTOR=$(TOP)

CALC=$(SUPPORT)/calc/master
CALCMBLAH=/Instrument/Apps/EPICS/support/calc/master
rerpha marked this conversation as resolved.
Show resolved Hide resolved
AUTOSAVE=$(SUPPORT)/autosave/master
SSCAN=$(SUPPORT)/sscan/master
ONCRPC=$(SUPPORT)/oncrpc/master

# optional extra local definitions here
-include $(TOP)/configure/RELEASE.private

include $(TOP)/../../../ISIS_CONFIG
-include $(TOP)/../../../ISIS_CONFIG.$(EPICS_HOST_ARCH)
3 changes: 3 additions & 0 deletions configure/RULES_TOP
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
#RULES_TOP
ifeq ($(INSTALL_LOCATION),$(MOTOR))
INSTALL_CONFIG =
endif
include $(CONFIG)/RULES_TOP

Loading