diff --git a/.gitignore b/.gitignore index de04849..7df0d51 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,44 @@ +# Install directories +/bin/ +/cfg/ +/db/ +/dbd/ +/html/ +/include/ +/lib/ +/templates/ +/iocs/*IOC/db/ +/iocs/*IOC/dbd/ +/iocs/*IOC/bin/ +/iocs/*IOC/lib/ +iocs/lab +iocs/gui +iocs/lab-ppmac + +# Local configuration files +/configure/*.local +/iocs/*IOC*/configure/*.local + +# iocBoot generated files +/iocBoot/*ioc*/cdCommands +/iocBoot/*ioc*/dllPath.bat +/iocBoot/*ioc*/envPaths +/iocBoot/*ioc*/relPaths.sh +/iocs/*IOC*/iocBoot/*ioc*/cdCommands +/iocs/*IOC*/iocBoot/*ioc*/dllPath.bat +/iocs/*IOC*/iocBoot/*ioc*/envPaths +/iocs/*IOC*/iocBoot/*ioc*/relPaths.sh +/iocs/*IOC*/iocBoot/*ioc*/.iocsh_history + +# Build directories +O.*/ + +# Common files created by other tools *~ .cproject .project .vscode -O.* -bin -include -lib -db -dbd data -iocs/lab -iocs/gui -iocs/lab-ppmac .idea cmake-build-debug/ *.pyc diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE index b5d00ae..c63dacc 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -21,26 +21,35 @@ CHECK_RELEASE = WARN # build for a specific one (e.g., linux-x86_64 or RTEMS-beatnik). It helps avoid unnecessary # builds and potential duplication errors. In EPICS 7, this can be used alongside # CROSS_COMPILER_TARGET_ARCHS to control cross-compilation targets. -BUILD_ARCHS = linux-x86_64 +#BUILD_ARCHS = linux-x86_64 # 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 = RTEMS-beatnik -ifeq (,$(findstring R3.14, $(EPICS_BASE))) - # If R3.14 is not in EPICS_BASE then build RTEMS support - # DLS support for RTEMS was added in epics 7 - CROSS_COMPILER_TARGET_ARCHS = RTEMS-beatnik -endif - # To install files into a location other than $(TOP) define # INSTALL_LOCATION here. #INSTALL_LOCATION= +# To build the IOC applications set BUILD_IOCS to YES; otherwise set it to NO +#BUILD_IOCS=NO + +# For SSH access to PowerPMACs, we need a SSH client library +#SSH = /usr +#SSH_LIB = $(SSH)/lib64 +#SSH_INCLUDE = -I$(SSH)/include + +# Build unit tests (requires BOOST >= 1.34.0) +WITH_BOOST = NO + # 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 = + +-include $(SUPPORT)/configure/CONFIG_SITE +-include $(TOP)/../CONFIG_SITE.local +-include $(TOP)/configure/CONFIG_SITE.local diff --git a/configure/CONFIG_SITE.linux-x86_64.Common b/configure/CONFIG_SITE.linux-x86_64.Common deleted file mode 100644 index b176e93..0000000 --- a/configure/CONFIG_SITE.linux-x86_64.Common +++ /dev/null @@ -1,25 +0,0 @@ -# The following definitions must be changed for each site - - -# - To build the IOC applications set BUILD_IOCS to YES -# Otherwise set it to NO -BUILD_IOCS=NO - -# - To include GraphicsMagick support set the following to YES -# - To not use it comment out the line or set it to NO -# - GraphicsMagick is required for NDFileMagick and the URL driver. -USE_GRAPHICSMAGICK=NO - -#CROSS_COMPILER_TARGET_ARCHS = - -# Comment-in the following line if building asyn ports stand-alone -# i.e. without an IOC. Note that asyn will also need to have been -# built with this flag -# EPICS_LIBCOM_ONLY=YES - -SSH = /usr -SSH_LIB = $(SSH)/lib64 -SSH_INCLUDE = -I$(SSH)/include - -# Build unit tests (requires BOOST >= 1.34.0) -WITH_BOOST = YES diff --git a/configure/RELEASE b/configure/RELEASE index c6f9dc6..badbf71 100644 --- a/configure/RELEASE +++ b/configure/RELEASE @@ -5,9 +5,21 @@ # directory. # +# These following three base definitions are overwritten by definitions in +# the RELEASE..Common files. Included here for information only. +# SUPPORT = /dls_sw/prod/R3.14.12.7/support +# WORK = /dls_sw/work/R3.14.12.7/support +# EPICS_BASE = /dls_sw/epics/R3.14.12.7/base + +#ASYN= $(SUPPORT)/asyn/4-41dls2 +#CALC= $(SUPPORT)/calc/3-7-3 +#MOTOR= $(SUPPORT)/motor/7-0dls9-1 +#BUSY= $(SUPPORT)/busy/1-7-2dls6 + -include $(TOP)/../configure/RELEASE_PATHS.local -include $(TOP)/../configure/RELEASE_PATHS.local.$(EPICS_HOST_ARCH) -include $(TOP)/../configure/RELEASE_LIBS.local -include $(TOP)/configure/RELEASE.local.$(EPICS_HOST_ARCH) +-include $(TOP)/../RELEASE.local +-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local -include $(TOP)/configure/RELEASE.local - diff --git a/configure/RELEASE.linux-x86_64.Common b/configure/RELEASE.linux-x86_64.Common deleted file mode 120000 index 667a824..0000000 --- a/configure/RELEASE.linux-x86_64.Common +++ /dev/null @@ -1 +0,0 @@ -RELEASE.local.linux-x86_64 \ No newline at end of file diff --git a/configure/RELEASE.local b/configure/RELEASE.local deleted file mode 100644 index e492c30..0000000 --- a/configure/RELEASE.local +++ /dev/null @@ -1,14 +0,0 @@ -# The following definitions must be changed for each site - -# These following three base definitions are overwritten by definitions in -# the RELEASE..Common files. Included here for information only. -# SUPPORT = /dls_sw/prod/R3.14.12.7/support -# WORK = /dls_sw/work/R3.14.12.7/support -# EPICS_BASE = /dls_sw/epics/R3.14.12.7/base - -ASYN= $(SUPPORT)/asyn/4-41dls2 -CALC= $(SUPPORT)/calc/3-7-3 -MOTOR= $(SUPPORT)/motor/7-0dls9-1 -BUSY= $(SUPPORT)/busy/1-7-2dls6 - - diff --git a/configure/RELEASE.local.linux-x86_64 b/configure/RELEASE.local.linux-x86_64 deleted file mode 100644 index 9772a7c..0000000 --- a/configure/RELEASE.local.linux-x86_64 +++ /dev/null @@ -1,6 +0,0 @@ -# The following definitions must be changed for each site - -SUPPORT = /dls_sw/prod/R3.14.12.7/support -WORK = /dls_sw/work/R3.14.12.7/support -EPICS_BASE = /dls_sw/epics/R3.14.12.7/base - diff --git a/pmacApp/Db/Makefile b/pmacApp/Db/Makefile index 62a2ca0..40c1831 100644 --- a/pmacApp/Db/Makefile +++ b/pmacApp/Db/Makefile @@ -11,56 +11,10 @@ include $(TOP)/configure/CONFIG # Create and install (or just install) into /db # databases, templates, substitutions like this - -DB += pmacController.template -DB += pmacCsController.template -DB += pmacControllerTrajectory.template -DB += pmacStatusAxis.template -DB += pmacStatus8Axes.template -DB += pmacStatus32Axes.template -DB += powerPmacStatus.template -DB += pmacStatus.template -DB += pmacDirectMotor.template -DB += pmac_cs_axis.template -DB += dls_pmac_asyn_motor.template -DB += motor_in_cs.template -DB += eloss_kill_autohome_records.template -DB += pmacVariableWrite.template -DB += pmacVariableRead.template -DB += pmacVariableReadLED.template -DB += autohome.template -DB += encoder_readback.template -DB += run_plc.template -DB += run_command.template -DB += motion_stop.template -DB += geobrickette_motion_stop.template -DB += basic_asyn_motor.template - -# The following templates are used for Coordinate Systems -DB += dls_pmac_cs_asyn_motor.template -DB += 1jack_compensated.template -DB += 2jack.template -DB += 3jack_mirror.template -DB += 3jack.template -DB += accel_dcm.template -DB += aperture_slits.template -DB += B22_optics_box.template -DB += bender.template -DB += blade_slits.template -DB += flexure_slits.template -DB += gap_and_centre_slits.template -DB += IDT_sagittal_bender.template -DB += IDT_sagittal_dcm.template -DB += multi_beamstop_on_platform.template -DB += qcm.template -DB += slit4-gui.template -DB += symetrie_hexapod.template -DB += translated_motor.template -DB += zform.template - - -# The following templates are used for CSS screens -DB += pmacCSS.template +# include all files with known extensions +DB += $(patsubst ../%, %, $(wildcard ../*.template)) +DB += $(patsubst ../%, %, $(wildcard ../*.db)) +DB += $(patsubst ../%, %, $(wildcard ../*.vdb)) #---------------------------------------------------- # If .db template is not named *.template add diff --git a/pmacApp/src/pmacCSController.cpp b/pmacApp/src/pmacCSController.cpp index 90fc74f..1e1e734 100644 --- a/pmacApp/src/pmacCSController.cpp +++ b/pmacApp/src/pmacCSController.cpp @@ -148,7 +148,7 @@ const std::string pmacCSController::CS_RUNTIME_ERRORS[] = { */ pmacCSController::pmacCSController(const char *portName, const char *controllerPortName, int csNo, int program) - : asynMotorController(portName, 10, (int)NUM_MOTOR_DRIVER_PARAMS + (int)NUM_PMAC_CS_PARAMS, + : asynMotorController(portName, 10, NUM_PMAC_CS_PARAMS, asynInt32ArrayMask, // For user mode and velocity mode 0, // No addition interrupt interfaces ASYN_CANBLOCK | ASYN_MULTIDEVICE, diff --git a/pmacApp/src/pmacController.cpp b/pmacApp/src/pmacController.cpp old mode 100755 new mode 100644 index 9564464..346d4ce --- a/pmacApp/src/pmacController.cpp +++ b/pmacApp/src/pmacController.cpp @@ -134,7 +134,7 @@ static void trajTaskC(void *drvPvt) { pmacController::pmacController(const char *portName, const char *lowLevelPortName, int lowLevelPortAddress, int numAxes, double movingPollPeriod, double idlePollPeriod) - : asynMotorController(portName, numAxes + 1, NUM_MOTOR_DRIVER_PARAMS + NUM_PMAC_PARAMS, + : asynMotorController(portName, numAxes + 1, NUM_PMAC_PARAMS, asynEnumMask | asynInt32ArrayMask, // For user mode and velocity mode asynEnumMask, // No addition interrupt interfaces ASYN_CANBLOCK | ASYN_MULTIDEVICE,