diff --git a/Makefile b/Makefile index 5e554a16d10063819e9c5652357ae0654c3a37aa..bb27ec020834156329d9a28f89372f595209bb4c 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ #Makefile at top of application tree TOP = . -include $(TOP)/config/CONFIG_APP -DIRS += config -DIRS += $(wildcard *App) -DIRS += $(wildcard *app) -DIRS += $(wildcard iocBoot) -DIRS += $(wildcard iocboot) -include $(TOP)/config/RULES_TOP +include $(TOP)/configure/CONFIG +DIRS := $(DIRS) $(filter-out $(DIRS), configure) +DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *App)) +DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *app)) +DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard iocBoot)) +DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard iocboot)) +include $(TOP)/configure/RULES_TOP diff --git a/configure/CONFIG b/configure/CONFIG new file mode 100644 index 0000000000000000000000000000000000000000..bf5e617fc54c085b1d08a99bac6335e5dbc2b6ca --- /dev/null +++ b/configure/CONFIG @@ -0,0 +1,13 @@ +#CONFIG +include $(TOP)/configure/CONFIG_APP +# Add any changes to make definitions here + +#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040 + +# Use this when your IOC and the host use different paths +# to access the application. Typically this will be +# used with the Microsoft FTP server or with NFS mounts. Use +# is indicated by failure of the cdCommands script on +# vxWorks. You must rebuild in the iocBoot directory +# before this takes effect. +#IOCS_APPL_TOP = <the top of the application as seen by the IOC> diff --git a/configure/CONFIG_APP b/configure/CONFIG_APP new file mode 100644 index 0000000000000000000000000000000000000000..3fe2fa134a42e40fa25eaf9a35ab6dfe05b4bf33 --- /dev/null +++ b/configure/CONFIG_APP @@ -0,0 +1,17 @@ +# CONFIG_APP + +include $(TOP)/configure/RELEASE +-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH) +CONFIG=$(EPICS_BASE)/configure +include $(CONFIG)/CONFIG +INSTALL_LOCATION = $(TOP) +ifdef INSTALL_LOCATION_APP +INSTALL_LOCATION = $(INSTALL_LOCATION_APP) +endif + +ifdef T_A +-include $(TOP)/configure/O.$(T_A)/CONFIG_APP_INCLUDE +endif + +# dbst based database optimization (default: NO) +DB_OPT = NO diff --git a/configure/Makefile b/configure/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..03177469efde9ffa1e5b7bac7b93077101677251 --- /dev/null +++ b/configure/Makefile @@ -0,0 +1,15 @@ +# Makefile + +TOP=.. + +include $(TOP)/configure/CONFIG + +# Set the following to NO to disable consistency checking of +# the support applications defined in $(TOP)/configure/RELEASE +CHECK_RELEASE = YES + +TARGETS = $(CONFIG_TARGETS) +CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) + +include $(TOP)/configure/RULES + diff --git a/configure/RELEASE b/configure/RELEASE new file mode 100644 index 0000000000000000000000000000000000000000..abdc1f06dffec9e71bf73e154319cd11948cc09b --- /dev/null +++ b/configure/RELEASE @@ -0,0 +1,32 @@ +# RELEASE - Location of external products +# +# (Architecture dependent declarations should go into RELEASE.<arch>) +# +# 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. +# +# Add your declarations here + +SUPPORT=/home/oxygen/SLUITER/local/epics/Vx_5-5_R3-14-4/support + +include $(SUPPORT)/config/IP_RELEASE +include $(SUPPORT)/config/IP330_RELEASE +include $(SUPPORT)/config/CAMAC_RELEASE +include $(SUPPORT)/config/MCA_RELEASE +include $(SUPPORT)/config/LOVE_RELEASE +include $(SUPPORT)/config/IPUNIDIG_RELEASE +include $(SUPPORT)/config/DAC128V_RELEASE +include $(SUPPORT)/config/MOTOR_RELEASE +include $(SUPPORT)/config/STD_RELEASE +include $(SUPPORT)/config/BITBUS_RELEASE +include $(SUPPORT)/config/MPFGPIB_RELEASE +include $(SUPPORT)/config/MPF_RELEASE +include $(SUPPORT)/config/ALLEN_BRADLEY_RELEASE +include $(SUPPORT)/config/IPAC_RELEASE +include $(SUPPORT)/config/SNCSEQ_RELEASE +include $(SUPPORT)/config/VXSTATS_RELEASE +include $(SUPPORT)/config/RELEASE + +TEMPLATE_TOP=$(EPICS_BASE)/templates/makeBaseApp/top diff --git a/configure/RULES b/configure/RULES new file mode 100644 index 0000000000000000000000000000000000000000..ffee54a710fe5f61c2d5d03a5bdff8775a0a8932 --- /dev/null +++ b/configure/RULES @@ -0,0 +1,5 @@ +#CONFIG +include $(EPICS_BASE)/configure/RULES + +# Library should be rebuilt because LIBOBJS may have changed. +$(LIBNAME): ../Makefile diff --git a/configure/RULES.ioc b/configure/RULES.ioc new file mode 100644 index 0000000000000000000000000000000000000000..5ba101303ee4820080314a49301fa73d93c4d20a --- /dev/null +++ b/configure/RULES.ioc @@ -0,0 +1,2 @@ +#RULES.ioc +include $(EPICS_BASE)/configure/RULES.ioc diff --git a/configure/RULES.iocBoot b/configure/RULES.iocBoot new file mode 100644 index 0000000000000000000000000000000000000000..7bb3b3b303a9ab34eb282d7846f927da2b18cd87 --- /dev/null +++ b/configure/RULES.iocBoot @@ -0,0 +1,4 @@ +#RULES.iocBoot +DIRS += $(wildcard *ioc*) +DIRS += $(wildcard as*) +include $(EPICS_BASE)/configure/RULES_DIRS diff --git a/configure/RULES_DIRS b/configure/RULES_DIRS new file mode 100644 index 0000000000000000000000000000000000000000..804faee5e5b4f3770ae47bdb3cff4d6ed5037384 --- /dev/null +++ b/configure/RULES_DIRS @@ -0,0 +1,2 @@ +#RULES_DIRS +include $(EPICS_BASE)/configure/RULES_DIRS diff --git a/configure/RULES_TOP b/configure/RULES_TOP new file mode 100644 index 0000000000000000000000000000000000000000..0620f08fb358286024534c08f2c3a7e2b934a920 --- /dev/null +++ b/configure/RULES_TOP @@ -0,0 +1,3 @@ +#RULES_TOP +include $(EPICS_BASE)/configure/RULES_TOP + diff --git a/iocBoot/iocxxx/Makefile b/iocBoot/iocxxx/Makefile index c4ef70be2a4f610bba083d396c3acfd289b23090..942befe2f9d50be78b5256c2924958316852d39a 100644 --- a/iocBoot/iocxxx/Makefile +++ b/iocBoot/iocxxx/Makefile @@ -1,4 +1,5 @@ TOP = ../.. -include $(TOP)/config/CONFIG_APP -ARCH = mv167 -include $(TOP)/config/RULES.ioc +include $(TOP)/configure/CONFIG +ARCH = vxWorks-68040 +TARGETS = cdCommands +include $(TOP)/configure/RULES.ioc diff --git a/iocBoot/iocxxx/README b/iocBoot/iocxxx/README new file mode 100644 index 0000000000000000000000000000000000000000..98b48058a456269c471248089a3e40f3a5dac1be --- /dev/null +++ b/iocBoot/iocxxx/README @@ -0,0 +1,8 @@ +Assuming the EPICS_HOST_ARCH environment variable is set correctly, +start the ioc from this directory by executing the following command. + +../../bin/${EPICS_HOST_ARCH}/xxx st.cmd.solaris +OR, +../../bin/${EPICS_HOST_ARCH}/xxx st.cmd.linux + + diff --git a/iocBoot/iocxxx/st.cmd.Vx b/iocBoot/iocxxx/st.cmd.Vx new file mode 100644 index 0000000000000000000000000000000000000000..389844da96faa589f71962f937e5caadea62a71e --- /dev/null +++ b/iocBoot/iocxxx/st.cmd.Vx @@ -0,0 +1,509 @@ +# vxWorks startup script + +cd "" +< ../nfsCommands +< cdCommands +#< MPFconfig.cmd + +################################################################################ +cd startup + +# If the VxWorks kernel was built using the project facility, the following must +# be added before any C++ code is loaded (see SPR #28980). +sysCplusEnable=1 + +### Load EPICS base software +ld < iocCore +ld < seq +ld < mpfLib + +### Load custom EPICS software from xxxApp and from share +ld < xxxLib + +#routerInit +# talk to local IP's +#localMessageRouterStart(0) +# talk to IP's on satellite processor +# (must agree with tcpMessageRouterServerStart in st_proc1.cmd) +# for IP modules on stand-alone mpf server board +#tcpMessageRouterClientStart(1, 9900, Remote_IP, 1500, 40) + +# for local IP slots +# Uncomment, as needed. +#ld < ipLib +#ld < mpfserialserverLib +#ld < mpfgpibserverLib +#ld < dac128VLib + +# This IOC configures the MPF server code locally +#cd startup +#< st_mpfserver.cmd +#cd appbin + +# This IOC talks to a local GPIB server +#ld < GpibHideosLocal.o + +### dbrestore setup +# ok to restore a save set that had missing values (no CA connection to PV)? +sr_restore_incomplete_sets_ok = 1 +# dbrestore saves a copy of the save file it restored. File name is, e.g., +# auto_settings.sav.bu or auto_settings.savYYMMDD-HHMMSS if +# reboot_restoreDatedBU is nonzero. +reboot_restoreDatedBU = 1; +# Currently, the only thing we do in initHooks is call reboot_restore(), which +# restores positions and settings saved ~continuously while EPICS is alive. +# See calls to "create_monitor_set()" at the end of this file. To disable +# autorestore, comment out the following line. +ld < initHooks.o + +# Bunch clock generator +#ld < getFilledBuckets.o + +# X-ray Instrumentation Associates Huber Slit Controller +# supported by a customized version of the SNL program written by Pete Jemian +#ld < xia_slit.o + +# override address, interrupt vector, etc. information in module_types.h +module_types() + +# need more entries in wait/scan-record channel-access queue? +recDynLinkQsize = 1024 + +cd startup +################################################################################ +# Tell EPICS all about the record types, device-support modules, drivers, +# etc. in the software we just loaded (xxxLib) +dbLoadDatabase("../../dbd/xxxApp.dbd") +registerRecordDeviceDriver(pdbbase) + +# Love Controllers +#devLoveDebug=1 +#loveServerDebug=1 +#dbLoadRecords("ipApp/Db/love.db", "P=xxx:,Q=Love_0,C=0,PORT=PORT2,ADDR=1", ip); + +# interpolation +#dbLoadRecords("stdApp/Db/interp.db", "P=xxx:", std) + +# 4-step measurement +#dbLoadRecords("stdApp/Db/4step.db", "P=xxx:", std) + +# X-ray Instrumentation Associates Huber Slit Controller +# supported by a customized version of the SNL program written by Pete Jemian +#dbLoadRecords("stdApp/Db/xia_slit.db", "P=xxx:, HSC=hsc1:", std) +#dbLoadRecords("stdApp/Db/xia_slit.db", "P=xxx:, HSC=hsc2:", std) +#dbLoadRecords("ipApp/Db/generic_serial.db", "P=xxx:,C=0,IPSLOT=a,CHAN=6,BAUD=9600,PRTY=None,DBIT=8,SBIT=1", ip) + +##### Pico Motors (Ernest Williams MHATT-CAT) +##### Motors (see picMot.substitutions in same directory as this file) #### +dbLoadTemplate("picMot.substitutions", ip) + + +################################ +# Sector 2 custom databases +################################ + +#M1 mirror stripe change database +#!dbLoadRecords("sectorApp/Db/stripe_change.db","P=xxx:,M=m21", top) + +#M2B 6 position select database +#bt dbLoadRecords("sectorApp/Db/2motor_position_selector.db","P=xxx:,D=M2B,M1=m29,M2=m30", top) + +#M2C 6 position select database +#bt dbLoadRecords("sectorApp/Db/2motor_position_selector.db","P=xxx:,D=M2C,M1=m28,M2=m27", top) +################################ +# End Sector 2 Custom databases +################################ + +############################################################################## + +# Insertion-device control +dbLoadRecords("stdApp/Db/IDctrl.db","P=xxx:,xx=02us", std) +dbLoadRecords("stdApp/Db/IDctrl.db","P=xxx:,xx=02ds", std) + +# test generic gpib record +#dbLoadRecords("stdApp/Db/gpib.db","P=xxx:", std) +# test generic camac record +#dbLoadRecords("stdApp/Db/camac.db","P=xxx:", std) + +# string sequence (sseq) record +#dbLoadRecords("stdApp/Db/yySseq.db","P=xxx:,S=Sseq1", std) +#dbLoadRecords("stdApp/Db/yySseq.db","P=xxx:,S=Sseq2", std) +#dbLoadRecords("stdApp/Db/yySseq.db","P=xxx:,S=Sseq3", std) + +############################################################################### + +##### Motors (see motors.substitutions in same directory as this file) #### +#dbLoadTemplate("basic_motor.substitutions", motor) +dbLoadTemplate("motor.substitutions", motor) + +# OMS VME driver setup parameters: +# (1)cards, (2)axes per card, (3)base address(short, 16-byte boundary), +# (4)interrupt vector (0=disable or 64 - 255), (5)interrupt level (1 - 6), +# (6)motor task polling rate (min=1Hz,max=60Hz) +omsSetup(2, 8, 0xFC00, 180, 5, 10) + +# OMS VME58 driver setup parameters: +# (1)cards, (2)axes per card, (3)base address(short, 4k boundary), +# (4)interrupt vector (0=disable or 64 - 255), (5)interrupt level (1 - 6), +# (6)motor task polling rate (min=1Hz,max=60Hz) +oms58Setup(3, 8, 0x4000, 190, 5, 10) + +# Highland V544 driver setup parameters: +# (1)cards, (2)axes per card, (3)base address(short, 4k boundary), +# (4)interrupt vector (0=disable or 64 - 255), (5)interrupt level (1 - 6), +# (6)motor task polling rate (min=1Hz,max=60Hz) +#v544Setup(0, 4, 0xDD00, 0, 5, 10) + +# Newport MM4000 driver setup parameters: +# (1) max. controllers, (2)Unused, (3)polling rate (min=1Hz,max=60Hz) +#MM4000Setup(3, 0, 10) + +# Newport MM4000 driver configuration parameters: +# (1)controller# being configured, +# (2)port type: 0-GPIB_PORT or 1-RS232_PORT, +# (3)GPIB link or MPF server location +# (4)GPIB address or hideos_task name +#MM4000Config(0, 1, 1, "a-Serial[0]") + +# Newport PM500 driver setup parameters: +# (1) maximum number of controllers in system +# (2) maximum number of channels on any controller +# (3) motor task polling rate (min=1Hz,max=60Hz) +#PM500Setup(1, 3, 10) + +# Newport PM500 configuration parameters: +# (1) card being configured +# (2) port type (0-GPIB_PORT, 1-RS232_PORT) +# (3) link for GPIB or hideos_card for RS-232 +# (3)GPIB link or MPF server location +# (4) GPIB address (int) or mpf serial server name (string) +#PM500Config(0, 1, 1, "a-Serial[4]") + +# A set of scan parameters for each positioner. This is a convenience +# for the user. It can contain an entry for each scannable thing in the +# crate. +dbLoadTemplate("scanParms.substitutions", std) + +############################################################################### + +### Scalers: Joerger VSC8/16 +dbLoadRecords("stdApp/Db/Jscaler.db","P=xxx:,S=scaler1,C=0", std) +# Joerger VSC setup parameters: +# (1)cards, (2)base address(ext, 256-byte boundary), +# (3)interrupt vector (0=disable or 64 - 255) +VSCSetup(1, 0xD0000000, 200) + +### Allstop, alldone +# This database must agree with the motors and other positioners you've actually loaded. +# Several versions (e.g., all_com_32.db) are in stdApp/Db +dbLoadRecords("stdApp/Db/all_com_32.db","P=xxx:", std) + +### Scan-support software +# crate-resident scan. This executes 1D, 2D, 3D, and 4D scans, and caches +# 1D data, but it doesn't store anything to disk. (See 'saveData' below for that.) +dbLoadRecords("stdApp/Db/scan.db","P=xxx:,MAXPTS1=2000,MAXPTS2=200,MAXPTS3=10,MAXPTS4=10,MAXPTSH=200", std) + +# Slits +dbLoadRecords("stdApp/Db/2slit.db","P=xxx:,SLIT=Slit1V,mXp=m24,mXn=m26", std) +dbLoadRecords("stdApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m23,mXn=m25", std) + +# under development... +#dbLoadRecords("stdApp/Db/2slit_soft.db","P=xxx:,SLIT=Slit2V,mXp=m13,mXn=m14", std) +#dbLoadRecords("stdApp/Db/2slit_soft.db","P=xxx:,SLIT=Slit2H,mXp=m15,mXn=m16", std) + +# 2-post mirror +#dbLoadRecords("stdApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m18,mUp=m17,LENGTH=0.3", std) + +# User filters +#dbLoadRecords("stdApp/Db/filterMotor.db","P=xxx:,Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:", std) +#dbLoadRecords("stdApp/Db/filterMotor.db","P=xxx:,Q=fltr2:,MOTOR=m2,LOCK=fltr_1_2:", std) +#dbLoadRecords("stdApp/Db/filterLock.db","P=xxx:,Q=fltr2:,LOCK=fltr_1_2:,LOCK_PV=xxx:DAC1_1.VAL", std) + +# Optical tables +#tableRecordDebug=1 +# command line would be too long ( >128 chars). One way to shorten it... +cd std +dbLoadRecords("stdApp/Db/table.db","P=xxx:,Q=Table1,T=table1,M0X=m31,M0Y=m12,M1Y=m13,M2X=m32,M2Y=m14,M2Z=m18,GEOM=SRI") +cd startup + +### Monochromator support ### +# Kohzu and PSL monochromators: Bragg and theta/Y/Z motors +# standard geometry (geometry 1) +#dbLoadRecords("stdApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m9,M_Y=m10,M_Z=m11,yOffLo=17.4999,yOffHi=17.5001", std) +# modified geometry (geometry 2) +#dbLoadRecords("stdApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m9,M_Y=m10,M_Z=m11,yOffLo=4,yOffHi=36", std) + +# Heidenhain ND261 encoder (for PSL monochromator) +#dbLoadRecords("ipApp/Db/heidND261.db", "P=xxx:,C=0,IPSLOT=a,CHAN=0", ip) + +# Heidenhain IK320 VME encoder interpolator +#dbLoadRecords("stdApp/Db/IK320card.db","P=xxx:,sw2=card0:,axis=1,switches=41344,irq=3", std) +#dbLoadRecords("stdApp/Db/IK320card.db","P=xxx:,sw2=card0:,axis=2,switches=41344,irq=3", std) +#dbLoadRecords("stdApp/Db/IK320group.db","P=xxx:,group=5") +#drvIK320RegErrStr() + +# Spherical grating monochromator +#dbLoadRecords("stdApp/Db/SGM.db","P=xxx:,N=1,M_x=m7,M_rIn=m6,M_rOut=m8,M_g=m9", std) + +# 4-bounce high-resolution monochromator +#dbLoadRecords("stdApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m9,M_PHI2=m10", std) +#dbLoadRecords("stdApp/Db/hrSeq.db","P=xxx:,N=2,M_PHI1=m11,M_PHI2=m12", std) + +# dispersive-monochromator protection +#dbLoadRecords("stdApp/Db/bprotect.db","P=xxx:,M_BTHETA=m25,M_BTRANS=m26", std) + +### Canberra AIM Multichannel Analyzer ### +#mcaRecordDebug=0 +#devMcaMpfDebug=0 +#mcaAIMServerDebug=0 +#aimDebug=0 + +# AIMConfig(serverName, int etherAddr, int port, int maxChans, +# int maxSignals, int maxSequences, etherDev, queueSize) +# +# serverName: defined here, must agree with dbLoadRecords command +# etherAddr: ethernet address of AIM module +# port: Which ADC port of the AIM module does this config involve? [1,2] +# maxChans: Histogram bins per signal per sequence. (If a multiplexor or +# MCS module is in use, this must agree with hardware setting.) +# maxSignals: How many signals (multiplexed ADC inputs)? (If a multiplexor +# or MCS module is in use, this must agree with hardware setting.) +# maxSequences: How many sequences (usually, a sequence is a "time slice")? +# etherDev: vxWorks device used to communicate over the network to AIM. +# Typically "ei0" for mv16x, mv17x; "dc0" for Motorola PowerPC +# queueSize: size of MPF message queue for this server (100 should be plenty) +#AIMConfig("AIM1/2", 0x674, 2, 2048, 1, 1, "ei0", 100) + +#dbLoadRecords("mcaApp/Db/mca.db","P=xxx:,M=mca1,INP=#C0 S0 @AIM1/2,DTYPE=MPF MCA,NCHAN=2048", mca) + +# Create ICB server for ADC, amplifier and HVPS +# picbServer = icbConfig(icbServer, maxModules, icbAddress, queueSize) +# This creates the ICB server and allocates configures the first module, module 0. +# Additional modules are added to this server with icbAddModule(). +#picbServer = icbConfig("icb/1", 10, "NI674:3", 100) + +# In the dbLoadRecords commands CARD=(0,1) for (local/remote), SERVER=icbServer name from +# icbConfig, ADDR=module number from icbConfig() or icbAddModule(). +#icbAddModule(picbServer, module, icbAddress) +# Note: ADDR is the module number, not the icb address. The correspondence between +# module number and icb address is made in icbConfig (for module number 0) or in +# icbAddModule. +#icbAddModule(picbServer, 1, "NI674:2") +#dbLoadRecords("mcaApp/Db/icb_adc.db","P=xxx:,ADC=icbAdc1,CARD=0,SERVER=icb/1,ADDR=0", mca) + +#icbTcaConfig("icbTca/1", 1, "NI674:1", 100) +#dbLoadRecords("mcaApp/Db/icb_tca.db","P=xxx:,TCA=icbTca1,MCA=mca1,CARD=0,SERVER=icb/1,ADDR=1", mca) + +#icbAddModule(picbServer, 2, "NI674:2") +#dbLoadRecords("mcaApp/Db/icb_hvps.db","P=xxx:,HVPS=icbHvps1,CARD=0,SERVER=icb/1,ADDR=2", mca) + +#icbAddModule(picbServer, 3, "NI674:4") +#dbLoadRecords("mcaApp/Db/icb_amp.db","P=xxx:,AMP=icbAmp1,CARD=0,SERVER=icb/1,ADDR=4", mca) + + +# Load 13 element detector software +#< 13element.cmd + +# Load 3 element detector software +#< 3element.cmd + +### Struck 7201 multichannel scaler (same as SIS 3806 multichannel scaler) + +#mcaRecordDebug = 10 +#devSTR7201Debug = 10 +#drvSTR7201Debug = 10 + +#dbLoadRecords("mcaApp/Db/Struck8.db","P=xxx:mcs:", mca) +#dbLoadRecords("mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca1,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S0 @,CHANS=1000", mca) +#dbLoadRecords("mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca2,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S1 @,CHANS=1000", mca) +#dbLoadRecords("mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca3,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S2 @,CHANS=1000", mca) +#dbLoadRecords("mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca4,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S3 @,CHANS=1000", mca) +#dbLoadRecords("mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca5,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S4 @,CHANS=1000", mca) +#dbLoadRecords("mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca6,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S5 @,CHANS=1000", mca) +#dbLoadRecords("mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca7,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S6 @,CHANS=1000", mca) +#dbLoadRecords("mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca8,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S7 @,CHANS=1000", mca) + +# STR7201Setup(int numCards, int baseAddress, int interruptVector, int interruptLevel) +#STR7201Setup(2, 0xA0000000, 210, 6) +# STR7201Config(int card, int maxSignals, int maxChans, int 1=enable internal 25MHZ clock) +#STR7201Config(0, 8, 1000, 0) + +### Acromag IP330 in sweep mode ### +#dbLoadRecords("mcaApp/Db/mca.db", "P=xxx:,M=mADC_1,DTYPE=ip330Sweep,NCHAN=2048,INP=#C0 S0 @d-Ip330Sweep", mca) + +### Stand-alone user calculations ### +dbLoadRecords("stdApp/Db/userCalcs10.db","P=xxx:", std) +dbLoadRecords("stdApp/Db/userStringCalcs10.db","P=xxx:", std) +dbLoadRecords("stdApp/Db/userTransforms10.db","P=xxx:", std) +# extra userCalcs (must also load userCalcs10.db for the enable switch) +dbLoadRecords("stdApp/Db/userCalcN.db","P=xxx:,N=I_Detector", std) + +### serial support ### + +# generic serial ports +#dbLoadRecords("ipApp/Db/generic_serial.db", "P=xxx:,C=0,IPSLOT=a,CHAN=0,BAUD=9600,PRTY=None,DBIT=8,SBIT=1", ip) + +# serial O/I block (generic serial record with format and parse string calcs) +# on epics/mpf processor +#dbLoadRecords("ipApp/Db/serial_OI_block.db","P=xxx:,N=0_1,C=0,IPSLOT=a,CHAN=4", ip) +# on stand-alone mpf processor +#dbLoadRecords("ipApp/Db/serial_OI_block.db","P=xxx:,N=1_1,C=0,IPSLOT=a,CHAN=4", ip) + +# Stanford Research Systems SR570 Current Preamplifier +#dbLoadRecords("ipApp/Db/SR570.db", "P=xxx:,A=A1,C=0,IPSLOT=a,CHAN=0", ip) + +# Lakeshore DRC-93CA Temperature Controller +#dbLoadRecords("ipApp/Db/LakeShoreDRC-93CA.db", "P=xxx:,Q=TC1,C=0,IPSLOT=a,CHAN=3", ip) + +# Huber DMC9200 DC Motor Controller +#dbLoadRecords("ipApp/Db/HuberDMC9200.db", "P=xxx:,Q=DMC1:,C=0,IPSLOT=a,CHAN=5", ip) + +# Oriel 18011 Encoder Mike +#dbLoadRecords("ipApp/Db/eMike.db", "P=xxx:,M=em1,C=0,IPSLOT=a,CHAN=2", ip) + +# Keithley 2000 DMM +dbLoadRecords("ipApp/Db/Keithley2kDMM.db","P=xxx:,Dmm=D1,C=1,IPSLOT=a,CHAN=0", ip) + +# Oxford Cyberstar X1000 Scintillation detector and pulse processing unit +#dbLoadRecords("ipApp/Db/Oxford_X1k.db","P=xxx:,S=s1,C=0,IPSLOT=a,CHAN=3", ip) + +# Oxford ILM202 Cryogen Level Meter (Serial) +#dbLoadRecords("ipApp/Db/Oxford_ILM202.db","P=xxx:,S=s1,C=0,IPSLOT=c,CHAN=2", ip) + +### GPIB support ### +# GPIB O/I block (generic gpib record with format and parse string calcs) +# See HiDEOSGpibLinkConfig() below. +#dbLoadRecords("ipApp/Db/GPIB_OI_block.db","P=xxx:,N=1,L=10", ip) + +# Heidenhain AWE1024 at GPIB address $(A) +#dbLoadRecords("ipApp/Db/HeidAWE1024.db", "P=xxx:,L=10,A=6", ip) + +# Keithley 199 DMM at GPIB address $(A) +#dbLoadRecords("stdApp/Db/KeithleyDMM.db", "P=xxx:,L=10,A=26", std) + +### Miscellaneous ### +# Systran DAC database +#dbLoadRecords("ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=1,S=0,IPSLOT=c", ip) +#dbLoadRecords("ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=2,S=1,IPSLOT=c", ip) +#dbLoadRecords("ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=3,S=2,IPSLOT=c", ip) +#dbLoadRecords("ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=4,S=3,IPSLOT=c", ip) +#dbLoadRecords("ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=5,S=4,IPSLOT=c", ip) +#dbLoadRecords("ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=6,S=5,IPSLOT=c", ip) +#dbLoadRecords("ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=7,S=6,IPSLOT=c", ip) +#dbLoadRecords("ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=8,S=7,IPSLOT=c", ip) + +# vme test record +#dbLoadRecords("stdApp/Db/vme.db", "P=xxx:,Q=vme1", std) + +# Hewlett-Packard 10895A Laser Axis (interferometer) +#dbLoadRecords("stdApp/Db/HPLaserAxis.db", "P=xxx:,Q=HPLaser1, C=0", std) +# hardware configuration +# example: devHP10895LaserAxisConfig(ncards,a16base) +#devHPLaserAxisConfig(2,0x1000) + +# Acromag general purpose Digital I/O +dbLoadRecords("stdApp/Db/Acromag_16IO.db", "P=xxx:, A=1", std) + +# Acromag AVME9440 setup parameters: +# devAvem9440Config (ncards,a16base,intvecbase) +devAvme9440Config(1,0x0400,0x78) + +# Miscellaneous PV's, such as burtResult +dbLoadRecords("stdApp/Db/misc.db","P=xxx:", std) +dbLoadRecords("stdApp/Db/VXstats.db","P=xxx:", std) + +# Elcomat autocollimator +#dbLoadRecords("ipApp/Db/Elcomat.db", "P=xxx:,C=0,IPSLOT=a,CHAN=7", ip) + +# Bunch-clock generator +#dbLoadRecords("stdApp/Db/BunchClkGen.db","P=xxx:", std) +#dbLoadRecords("stdApp/Db/BunchClkGenA.db", "UNIT=xxx", std) +# hardware configuration +# example: BunchClkGenConfigure(intCard, unsigned long CardAddress) +#BunchClkGenConfigure(0, 0x8c00) + +### Queensgate piezo driver +#dbLoadRecords("stdApp/Db/pzt_3id.db","P=xxx:", std) +#dbLoadRecords("stdApp/Db/pzt.db","P=xxx:", std) + +### GP307 Vacuum Controller +#dbLoadRecords("stdApp/Db/gp307.db","P=xxx:", std) + +### Queensgate Nano2k piezo controller +#dbLoadRecords("stdApp/Db/Nano2k.db","P=xxx:,S=s1", std) + +# Eurotherm temp controller +#dbLoadRecords("ipApp/Db/Eurotherm.db","P=xxx:,C=0,IPSLOT=a,CHAN=6", ip) +#devAoEurothermDebug=20 + +# Analog I/O (Acromag IP330 ADC) +#dbLoadTemplate("ip330Scan.substitutions", ip330) + +# Machine-status board (MRD 100) +##################################################### +# dev32VmeConfig(card,a32base,nreg,iVector,iLevel) +# card = card number +# a32base = base address of card +# nreg = number of A32 registers on this card +# iVector = interrupt vector (MRD100 Only !!) +# iLevel = interrupt level (MRD100 Only !!) +# For Example +# devA32VmeConfig(0, 0x80000000, 44, 0, 0) +##################################################### +# Configure the MSL MRD 100 module..... +#devA32VmeConfig(0, 0xa0000200, 30, 0xa0, 5) + +# VVVVVVVVVVVVVVVVVVVVV This doesn't look right (tmm) VVVVVVVVVVVVVVVVVVVVVVVVVVV +#dbLoadRecords("stdApp/Db/msl_mrd100.db","C=0,S=01,ID1=00,ID2=00us", std) + +### Bit Bus configuration +# BBConfig(Link, LinkType, BaseAddr, IrqVector, IrqLevel) +# Link: ? +# LinkType: 0:hosed; 1:xycom; 2:pep +#BBConfig(3,1,0x2400,0xac,5) + + +############################################################################### +# Set shell prompt (otherwise it is left at mv167 or mv162) +shellPromptSet "iocxxx> " +#reboot_restoreDebug=5 +iocLogDisable=1 +iocInit + +### startup State Notation Language programs +#seq &kohzuCtl, "P=xxx:, M_THETA=m9, M_Y=m10, M_Z=m11, GEOM=1, logfile=kohzuCtl.log" +#seq &hrCtl, "P=xxx:, N=1, M_PHI1=m9, M_PHI2=m10, logfile=hrCtl1.log" +#seq &Keithley2kDMM, "P=xxx:, Dmm=D1" + +# Bunch clock generator +#seq &getFillPat, "unit=xxx" + +# X-ray Instrumentation Associates Huber Slit Controller +# supported by a SNL program written by Pete Jemian and modified (tmm) for use with the +# sscan record +#seq &xia_slit, "name=hsc1, P=xxx:, HSC=hsc1:, S=xxx:seriala[6]" + +### Start up the autosave task and tell it what to do. +# The task is actually named "save_restore". +# (See also, 'initHooks' above, which is the means by which the values that +# will be saved by the task we're starting here are going to be restored. +# +# save positions every five seconds +create_monitor_set("auto_positions.req",5) +# save other things every thirty seconds +create_monitor_set("auto_settings.req",30) + + +### Start the saveData task. +# saveData_MessagePolicy +# 0: wait forever for space in message queue, then send message +# 1: send message only if queue is not full +# 2: send message only if queue is not full and specified time has passed (SetCptWait() +# sets this time.) +# 3: if specified time has passed, wait for space in queue, then send message +# else: don't send message +#debug_saveData = 2 +saveData_MessagePolicy = 2 +saveData_SetCptWait(.1) +saveData_Init("saveData.req", "P=xxx:") +#saveData_PrintScanInfo("xxx:scan1") diff --git a/iocBoot/iocxxx/st.cmd.solaris b/iocBoot/iocxxx/st.cmd.solaris new file mode 100644 index 0000000000000000000000000000000000000000..30f686996efc1be65bab899851c24b2e3fbb8ec2 --- /dev/null +++ b/iocBoot/iocxxx/st.cmd.solaris @@ -0,0 +1,441 @@ +dbLoadDatabase("dbPath.dbd") +dbLoadDatabase("../../dbd/xxxVx.dbd") +registerRecordDeviceDriver(pdbbase) + +routerInit +localMessageRouterStart(1) + +# Configure the MPF server code. This MUST be configured too! +< st_mpfserver.cmd.solaris + +# Love Controllers +#devLoveDebug=1 +#loveServerDebug=1 +#dbLoadDatabase("ipApp/Db/love.db", ip, "P=xxx:,Q=Love_0,C=0,PORT=PORT2,ADDR=1"); + +# interpolation +#dbLoadDatabase("stdApp/Db/interp.db", std, "P=xxx:") + +# 4-step measurement +#dbLoadDatabase("stdApp/Db/4step.db", std, "P=xxx:") + +# X-ray Instrumentation Associates Huber Slit Controller +# supported by a customized version of the SNL program written by Pete Jemian +#dbLoadDatabase("stdApp/Db/xia_slit.db", std, "P=xxx:, HSC=hsc1:") +#dbLoadDatabase("stdApp/Db/xia_slit.db", std, "P=xxx:, HSC=hsc2:") +#dbLoadDatabase("ipApp/Db/generic_serial.db", ip, "P=xxx:,C=0,IPSLOT=a,CHAN=6,BAUD=9600,PRTY=None,DBIT=8,SBIT=1") + +##### Pico Motors (Ernest Williams MHATT-CAT) +##### Motors (see picMot.substitutions in same directory as this file) #### +#!AuxdbLoadTemplate("picMot.substitutions", ip) + + +################################ +# Sector 2 custom databases +################################ + +#M1 mirror stripe change database +#dbLoadDatabase("sectorApp/Db/stripe_change.db", top, "P=xxx:,M=m21") + +#M2B 6 position select database +#bt dbLoadDatabase("sectorApp/Db/2motor_position_selector.db", top, "P=xxx:,D=M2B,M1=m29,M2=m30") + +#M2C 6 position select database +#bt dbLoadDatabase("sectorApp/Db/2motor_position_selector.db", top, "P=xxx:,D=M2C,M1=m28,M2=m27") +################################ +# End Sector 2 Custom databases +################################ + +############################################################################## + +# Insertion-device control +dbLoadDatabase("stdApp/Db/IDctrl.db", std, "P=xxx:,xx=02us") +dbLoadDatabase("stdApp/Db/IDctrl.db", std, "P=xxx:,xx=02ds") + +# test generic gpib record +#dbLoadDatabase("stdApp/Db/gpib.db", std, "P=xxx:") +# test generic camac record +#dbLoadDatabase("stdApp/Db/camac.db", std, "P=xxx:") + +# string sequence (sseq) record +#dbLoadDatabase("stdApp/Db/yySseq.db", std, "P=xxx:,S=Sseq1") +#dbLoadDatabase("stdApp/Db/yySseq.db", std, "P=xxx:,S=Sseq2") +#dbLoadDatabase("stdApp/Db/yySseq.db", std, "P=xxx:,S=Sseq3") + +############################################################################### + +##### Motors (see motors.substitutions in same directory as this file) #### +#AuxdbLoadTemplate("basic_motor.substitutions", motor) +AuxdbLoadTemplate("motor.substitutions.rls", motor) + +# OMS VME driver setup parameters: +# (1)cards, (2)axes per card, (3)base address(short, 16-byte boundary), +# (4)interrupt vector (0=disable or 64 - 255), (5)interrupt level (1 - 6), +# (6)motor task polling rate (min=1Hz,max=60Hz) +#omsSetup(2, 8, 0xFC00, 180, 5, 10) + +# OMS VME58 driver setup parameters: +# (1)cards, (2)axes per card, (3)base address(short, 4k boundary), +# (4)interrupt vector (0=disable or 64 - 255), (5)interrupt level (1 - 6), +# (6)motor task polling rate (min=1Hz,max=60Hz) +#oms58Setup(3, 8, 0x3000, 190, 5, 10) + +# Highland V544 driver setup parameters: +# (1)cards, (2)axes per card, (3)base address(short, 4k boundary), +# (4)interrupt vector (0=disable or 64 - 255), (5)interrupt level (1 - 6), +# (6)motor task polling rate (min=1Hz,max=60Hz) +#v544Setup(0, 4, 0xDD00, 0, 5, 10) + +# Newport MM4000 driver setup parameters: +# (1) max. controllers, (2)Unused, (3)polling rate (min=1Hz,max=60Hz) +MM4000Setup(3, 0, 10) + +# Newport MM4000 driver configuration parameters: +# (1)controller# being configured, +# (2)port type: 0-GPIB_PORT or 1-RS232_PORT, +# (3)GPIB link or MPF server location +# (4)GPIB address or hideos_task name +MM4000Config(0, 1, MPF_Server_Location, "a-Serial[0]") + +# Newport PM500 driver setup parameters: +# (1) maximum number of controllers in system +# (2) maximum number of channels on any controller +# (3) motor task polling rate (min=1Hz,max=60Hz) +#PM500Setup(1, 3, 10) + +# Newport PM500 configuration parameters: +# (1) card being configured +# (2) port type (0-GPIB_PORT, 1-RS232_PORT) +# (3) link for GPIB or hideos_card for RS-232 +# (3)GPIB link or MPF server location +# (4) GPIB address (int) or mpf serial server name (string) +#PM500Config(0, 1, 1, "a-Serial[4]") + +# A set of scan parameters for each positioner. This is a convenience +# for the user. It can contain an entry for each scannable thing in the +# crate. +AuxdbLoadTemplate("scanParms.substitutions", std) + +############################################################################### + +### Scalers: Joerger VSC8/16 +dbLoadDatabase("stdApp/Db/Jscaler.db", std, "P=xxx:,S=scaler1,C=0") +# Joerger VSC setup parameters: +# (1)cards, (2)base address(ext, 256-byte boundary), +# (3)interrupt vector (0=disable or 64 - 255) +VSCSetup(1, 0xD0000000, 200) + +### Allstop, alldone +# This database must agree with the motors and other positioners you've actually loaded. +# Several versions (e.g., all_com_32.db) are in stdApp/Db +dbLoadDatabase("stdApp/Db/all_com_32.db", std, "P=xxx:") + +### Scan-support software +# crate-resident scan. This executes 1D, 2D, 3D, and 4D scans, and caches +# 1D data, but it doesn't store anything to disk. (See 'saveData' below for that.) +dbLoadDatabase("stdApp/Db/scan.db", std, "P=xxx:,MAXPTS1=2000,MAXPTS2=200,MAXPTS3=10,MAXPTS4=10,MAXPTSH=200") + +# Slits +dbLoadDatabase("stdApp/Db/2slit.db", std, "P=xxx:,SLIT=Slit1V,mXp=m24,mXn=m26") +dbLoadDatabase("stdApp/Db/2slit.db", std, "P=xxx:,SLIT=Slit1H,mXp=m23,mXn=m25") + +# under development... +#dbLoadDatabase("stdApp/Db/2slit_soft.db", std, "P=xxx:,SLIT=Slit2V,mXp=m13,mXn=m14") +#dbLoadDatabase("stdApp/Db/2slit_soft.db", std, "P=xxx:,SLIT=Slit2H,mXp=m15,mXn=m16") + +# 2-post mirror +#dbLoadDatabase("stdApp/Db/2postMirror.db", std, "P=xxx:,Q=M1,mDn=m18,mUp=m17,LENGTH=0.3") + +# User filters +#dbLoadDatabase("stdApp/Db/filterMotor.db", std, "P=xxx:,Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:") +#dbLoadDatabase("stdApp/Db/filterMotor.db", std, "P=xxx:,Q=fltr2:,MOTOR=m2,LOCK=fltr_1_2:") +#dbLoadDatabase("stdApp/Db/filterLock.db", std, "P=xxx:,Q=fltr2:,LOCK=fltr_1_2:,LOCK_PV=xxx:DAC1_1.VAL") + +# Optical tables +#tableRecordDebug=1 +# command line would be too long ( >128 chars). One way to shorten it... +cd std +dbLoadDatabase("stdApp/Db/table.db", 0, "P=xxx:,Q=Table1,T=table1,M0X=m31,M0Y=m12,M1Y=m13,M2X=m32,M2Y=m14,M2Z=m18,GEOM=SRI") +cd startup + +### Monochromator support ### +# Kohzu and PSL monochromators: Bragg and theta/Y/Z motors +# standard geometry (geometry 1) +#dbLoadDatabase("stdApp/Db/kohzuSeq.db", std, "P=xxx:,M_THETA=m9,M_Y=m10,M_Z=m11,yOffLo=17.4999,yOffHi=17.5001") +# modified geometry (geometry 2) +#dbLoadDatabase("stdApp/Db/kohzuSeq.db", std, "P=xxx:,M_THETA=m9,M_Y=m10,M_Z=m11,yOffLo=4,yOffHi=36") + +# Heidenhain ND261 encoder (for PSL monochromator) +#dbLoadDatabase("ipApp/Db/heidND261.db", ip, "P=xxx:,C=0,IPSLOT=a,CHAN=0") + +# Heidenhain IK320 VME encoder interpolator +#dbLoadDatabase("stdApp/Db/IK320card.db", std, "P=xxx:,sw2=card0:,axis=1,switches=41344,irq=3") +#dbLoadDatabase("stdApp/Db/IK320card.db", std, "P=xxx:,sw2=card0:,axis=2,switches=41344,irq=3") +#dbLoadDatabase("stdApp/Db/IK320group.db" std, "P=xxx:,group=5") +#drvIK320RegErrStr() + +# Spherical grating monochromator +#dbLoadDatabase("stdApp/Db/SGM.db", std, "P=xxx:,N=1,M_x=m7,M_rIn=m6,M_rOut=m8,M_g=m9") + +# 4-bounce high-resolution monochromator +#dbLoadDatabase("stdApp/Db/hrSeq.db", std,"P=xxx:,N=1,M_PHI1=m9, M_PHI2=m10") +#dbLoadDatabase("stdApp/Db/hrSeq.db", std,"P=xxx:,N=2,M_PHI1=m11,M_PHI2=m12") + +# dispersive-monochromator protection +#dbLoadDatabase("stdApp/Db/bprotect.db", std, "P=xxx:,M_BTHETA=m25,M_BTRANS=m26") + +### Canberra AIM Multichannel Analyzer ### +#mcaRecordDebug=0 +#devMcaMpfDebug=0 +#mcaAIMServerDebug=0 +#aimDebug=0 + +# AIMConfig(serverName, int etherAddr, int port, int maxChans, +# int maxSignals, int maxSequences, etherDev, queueSize) +# +# serverName: defined here, must agree with dbLoadDatabase command +# etherAddr: ethernet address of AIM module +# port: Which ADC port of the AIM module does this config involve? [1,2] +# maxChans: Histogram bins per signal per sequence. (If a multiplexor or +# MCS module is in use, this must agree with hardware setting.) +# maxSignals: How many signals (multiplexed ADC inputs)? (If a multiplexor +# or MCS module is in use, this must agree with hardware setting.) +# maxSequences: How many sequences (usually, a sequence is a "time slice")? +# etherDev: vxWorks device used to communicate over the network to AIM. +# Typically "ei0" for mv16x, mv17x; "dc0" for Motorola PowerPC +# queueSize: size of MPF message queue for this server (100 should be plenty) +#AIMConfig("AIM1/2", 0x674, 2, 2048, 1, 1, "ei0", 100) + +#dbLoadDatabase("mcaApp/Db/mca.db", mca, "P=xxx:,M=mca1,INP=#C0 S0 @AIM1/2,DTYPE=MPF MCA,NCHAN=2048") + +# Create ICB server for ADC, amplifier and HVPS +# picbServer = icbConfig(icbServer, maxModules, icbAddress, queueSize) +# This creates the ICB server and allocates configures the first module, module 0. +# Additional modules are added to this server with icbAddModule(). +#picbServer = icbConfig("icb/1", 10, "NI674:3", 100) + +# In the dbLoadDatabase commands CARD=(0,1) for (local/remote), SERVER=icbServer name from +# icbConfig, ADDR=module number from icbConfig() or icbAddModule(). +#icbAddModule(picbServer, module, icbAddress) +# Note: ADDR is the module number, not the icb address. The correspondence between +# module number and icb address is made in icbConfig (for module number 0) or in +# icbAddModule. +#icbAddModule(picbServer, 1, "NI674:2") +#dbLoadDatabase("mcaApp/Db/icb_adc.db", mca, "P=xxx:,ADC=icbAdc1,CARD=0,SERVER=icb/1,ADDR=0") + +#icbTcaConfig("icbTca/1", 1, "NI674:1", 100) +#dbLoadDatabase("mcaApp/Db/icb_tca.db", mca, "P=xxx:,TCA=icbTca1,MCA=mca1,CARD=0,SERVER=icb/1,ADDR=1") + +#icbAddModule(picbServer, 2, "NI674:2") +#dbLoadDatabase("mcaApp/Db/icb_hvps.db",mca, "P=xxx:,HVPS=icbHvps1,CARD=0,SERVER=icb/1,ADDR=2") + +#icbAddModule(picbServer, 3, "NI674:4") +#dbLoadDatabase("mcaApp/Db/icb_amp.db", mca, "P=xxx:,AMP=icbAmp1,CARD=0,SERVER=icb/1,ADDR=4") + + +# Load 13 element detector software +#< 13element.cmd + +# Load 3 element detector software +#< 3element.cmd + +### Struck 7201 multichannel scaler (same as SIS 3806 multichannel scaler) + +#mcaRecordDebug = 10 +#devSTR7201Debug = 10 +#drvSTR7201Debug = 10 + +#dbLoadDatabase("mcaApp/Db/Struck8.db", mca, "P=xxx:mcs:") +#dbLoadDatabase("mcaApp/Db/simple_mca.db", mca, "P=xxx:mcs:,M=mca1,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S0 @,CHANS=1000") +#dbLoadDatabase("mcaApp/Db/simple_mca.db", mca, "P=xxx:mcs:,M=mca2,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S1 @,CHANS=1000") +#dbLoadDatabase("mcaApp/Db/simple_mca.db", mca, "P=xxx:mcs:,M=mca3,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S2 @,CHANS=1000") +#dbLoadDatabase("mcaApp/Db/simple_mca.db", mca, "P=xxx:mcs:,M=mca4,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S3 @,CHANS=1000") +#dbLoadDatabase("mcaApp/Db/simple_mca.db", mca, "P=xxx:mcs:,M=mca5,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S4 @,CHANS=1000") +#dbLoadDatabase("mcaApp/Db/simple_mca.db", mca, "P=xxx:mcs:,M=mca6,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S5 @,CHANS=1000") +#dbLoadDatabase("mcaApp/Db/simple_mca.db", mca, "P=xxx:mcs:,M=mca7,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S6 @,CHANS=1000") +#dbLoadDatabase("mcaApp/Db/simple_mca.db", mca, "P=xxx:mcs:,M=mca8,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S7 @,CHANS=1000") + +# STR7201Setup(int numCards, int baseAddress, int interruptVector, int interruptLevel) +#STR7201Setup(2, 0xA0000000, 210, 6) +# STR7201Config(int card, int maxSignals, int maxChans, int 1=enable internal 25MHZ clock) +#STR7201Config(0, 8, 1000, 0) + +### Acromag IP330 in sweep mode ### +#dbLoadDatabase("mcaApp/Db/mca.db", mca, "P=xxx:,M=mADC_1,DTYPE=ip330Sweep,NCHAN=2048,INP=#C0 S0 @d-Ip330Sweep") + +### Stand-alone user calculations ### +dbLoadDatabase("stdApp/Db/userCalcs10.db", std, "P=xxx:") +dbLoadDatabase("stdApp/Db/userStringCalcs10.db", std, "P=xxx:") +dbLoadDatabase("stdApp/Db/userTransforms10.db", std, "P=xxx:") +# extra userCalcs (must also load userCalcs10.db for the enable switch) +dbLoadDatabase("stdApp/Db/userCalcN.db", std, "P=xxx:,N=I_Detector") + +### serial support ### + +# generic serial ports +#dbLoadDatabase("ipApp/Db/generic_serial.db", ip, "P=xxx:,C=0,IPSLOT=a,CHAN=0,BAUD=9600,PRTY=None,DBIT=8,SBIT=1") + +# serial O/I block (generic serial record with format and parse string calcs) +# on epics/mpf processor +#dbLoadDatabase("ipApp/Db/serial_OI_block.db", ip, "P=xxx:,N=0_1,C=0,IPSLOT=a,CHAN=4") +# on stand-alone mpf processor +#dbLoadDatabase("ipApp/Db/serial_OI_block.db", ip, "P=xxx:,N=1_1,C=0,IPSLOT=a,CHAN=4") + +# Stanford Research Systems SR570 Current Preamplifier +#dbLoadDatabase("ipApp/Db/SR570.db", ip, "P=xxx:,A=A1,C=0,IPSLOT=a,CHAN=0") + +# Lakeshore DRC-93CA Temperature Controller +#dbLoadDatabase("ipApp/Db/LakeShoreDRC-93CA.db", ip, "P=xxx:,Q=TC1,C=0,IPSLOT=a,CHAN=3") + +# Huber DMC9200 DC Motor Controller +#dbLoadDatabase("ipApp/Db/HuberDMC9200.db", ip, "P=xxx:,Q=DMC1:,C=0,IPSLOT=a,CHAN=5") + +# Oriel 18011 Encoder Mike +#dbLoadDatabase("ipApp/Db/eMike.db", ip, "P=xxx:,M=em1,C=0,IPSLOT=a,CHAN=2") + +# Keithley 2000 DMM +dbLoadDatabase("ipApp/Db/Keithley2kDMM.db", ip, "P=xxx:,Dmm=D1,C=0,IPSLOT=a,CHAN=0") + +# Oxford Cyberstar X1000 Scintillation detector and pulse processing unit +#dbLoadDatabase("ipApp/Db/Oxford_X1k.db", ip, "P=xxx:,S=s1,C=0,IPSLOT=a,CHAN=3") + +# Oxford ILM202 Cryogen Level Meter (Serial) +#dbLoadDatabase("ipApp/Db/Oxford_ILM202.db", ip, "P=xxx:,S=s1,C=0,IPSLOT=c,CHAN=2") + +### GPIB support ### +# GPIB O/I block (generic gpib record with format and parse string calcs) +# See HiDEOSGpibLinkConfig() below. +#dbLoadDatabase("ipApp/Db/GPIB_OI_block.db", ip, "P=xxx:,N=1,L=10") + +# Heidenhain AWE1024 at GPIB address $(A) +#dbLoadDatabase("ipApp/Db/HeidAWE1024.db", ip, "P=xxx:,L=10,A=6") + +# Keithley 199 DMM at GPIB address $(A) +#dbLoadDatabase("stdApp/Db/KeithleyDMM.db", std, "P=xxx:,L=10,A=26") + +### Miscellaneous ### +# Systran DAC database +#dbLoadDatabase("ipApp/Db/DAC.db", ip, "P=xxx:,D=1,C=1,N=1,S=0,IPSLOT=c") +#dbLoadDatabase("ipApp/Db/DAC.db", ip, "P=xxx:,D=1,C=1,N=2,S=1,IPSLOT=c") +#dbLoadDatabase("ipApp/Db/DAC.db", ip, "P=xxx:,D=1,C=1,N=3,S=2,IPSLOT=c") +#dbLoadDatabase("ipApp/Db/DAC.db", ip, "P=xxx:,D=1,C=1,N=4,S=3,IPSLOT=c") +#dbLoadDatabase("ipApp/Db/DAC.db", ip, "P=xxx:,D=1,C=1,N=5,S=4,IPSLOT=c") +#dbLoadDatabase("ipApp/Db/DAC.db", ip, "P=xxx:,D=1,C=1,N=6,S=5,IPSLOT=c") +#dbLoadDatabase("ipApp/Db/DAC.db", ip, "P=xxx:,D=1,C=1,N=7,S=6,IPSLOT=c") +#dbLoadDatabase("ipApp/Db/DAC.db", ip, "P=xxx:,D=1,C=1,N=8,S=7,IPSLOT=c") + +# vme test record +#dbLoadDatabase("stdApp/Db/vme.db", std, "P=xxx:,Q=vme1") + +# Hewlett-Packard 10895A Laser Axis (interferometer) +#dbLoadDatabase("stdApp/Db/HPLaserAxis.db", std, "P=xxx:,Q=HPLaser1, C=0") +# hardware configuration +# example: devHP10895LaserAxisConfig(ncards,a16base) +#devHPLaserAxisConfig(2,0x1000) + +# Acromag general purpose Digital I/O +#dbLoadDatabase("stdApp/Db/Acromag_16IO.db", std, "P=xxx:, A=1") + +# Acromag AVME9440 setup parameters: +# devAvem9440Config (ncards,a16base,intvecbase) +#devAvme9440Config(1,0x0400,0x78) + +# Miscellaneous PV's, such as burtResult +dbLoadDatabase("stdApp/Db/misc.db", std, "P=xxx:") +dbLoadDatabase("stdApp/Db/VXstats.db", std, "P=xxx:") + +# Elcomat autocollimator +#dbLoadDatabase("ipApp/Db/Elcomat.db", ip, "P=xxx:,C=0,IPSLOT=a,CHAN=7") + +# Bunch-clock generator +#dbLoadDatabase("stdApp/Db/BunchClkGen.db", std, "P=xxx:") +#dbLoadDatabase("stdApp/Db/BunchClkGenA.db", std, "UNIT=xxx") +# hardware configuration +# example: BunchClkGenConfigure(intCard, unsigned long CardAddress) +#BunchClkGenConfigure(0, 0x8c00) + +### Queensgate piezo driver +#dbLoadDatabase("stdApp/Db/pzt_3id.db", std, "P=xxx:") +#dbLoadDatabase("stdApp/Db/pzt.db" , std, "P=xxx:") + +### GP307 Vacuum Controller +#dbLoadDatabase("stdApp/Db/gp307.db", std, "P=xxx:") + +### Queensgate Nano2k piezo controller +#dbLoadDatabase("stdApp/Db/Nano2k.db", std, "P=xxx:,S=s1") + +# Eurotherm temp controller +#dbLoadDatabase("ipApp/Db/Eurotherm.db", ip, "P=xxx:,C=0,IPSLOT=a,CHAN=6") +#devAoEurothermDebug=20 + +# Analog I/O (Acromag IP330 ADC) +#AuxdbLoadTemplate("ip330Scan.substitutions", ip330) + +# Machine-status board (MRD 100) +##################################################### +# dev32VmeConfig(card,a32base,nreg,iVector,iLevel) +# card = card number +# a32base = base address of card +# nreg = number of A32 registers on this card +# iVector = interrupt vector (MRD100 Only !!) +# iLevel = interrupt level (MRD100 Only !!) +# For Example +# devA32VmeConfig(0, 0x80000000, 44, 0, 0) +##################################################### +# Configure the MSL MRD 100 module..... +#devA32VmeConfig(0, 0xa0000200, 30, 0xa0, 5) + +# VVVVVVVVVVVVVVVVVVVVV This doesn't look right (tmm) VVVVVVVVVVVVVVVVVVVVVVVVVVV +#dbLoadDatabase("stdApp/Db/msl_mrd100.db", std, "C=0,S=01,ID1=00,ID2=00us") + +### Bit Bus configuration +# BBConfig(Link, LinkType, BaseAddr, IrqVector, IrqLevel) +# Link: ? +# LinkType: 0:hosed; 1:xycom; 2:pep +#BBConfig(3,1,0x2400,0xac,5) + + +############################################################################### +# Set shell prompt (otherwise it is left at mv167 or mv162) +shellPromptSet "iocxxx> " +#reboot_restoreDebug=5 +iocLogDisable=1 +iocInit + +### startup State Notation Language programs +#seq &kohzuCtl, "P=xxx:, M_THETA=m9, M_Y=m10, M_Z=m11, GEOM=1, logfile=kohzuCtl.log" +#seq &hrCtl, "P=xxx:, N=1, M_PHI1=m9, M_PHI2=m10, logfile=hrCtl1.log" +#seq &Keithley2kDMM, "P=xxx:, Dmm=D1" + +# Bunch clock generator +#seq &getFillPat, "unit=xxx" + +# X-ray Instrumentation Associates Huber Slit Controller +# supported by a SNL program written by Pete Jemian and modified (tmm) for use with the +# sscan record +#seq &xia_slit, "name=hsc1, P=xxx:, HSC=hsc1:, S=xxx:seriala[6]" + +### Start up the autosave task and tell it what to do. +# The task is actually named "save_restore". +# (See also, 'initHooks' above, which is the means by which the values that +# will be saved by the task we're starting here are going to be restored. +# +# save positions every five seconds +create_monitor_set("auto_positions.req",5) +# save other things every thirty seconds +create_monitor_set("auto_settings.req",30) + + +### Start the saveData task. +# saveData_MessagePolicy +# 0: wait forever for space in message queue, then send message +# 1: send message only if queue is not full +# 2: send message only if queue is not full and specified time has passed (SetCptWait() +# sets this time.) +# 3: if specified time has passed, wait for space in queue, then send message +# else: don't send message +#debug_saveData = 2 +saveData_MessagePolicy = 2 +saveData_SetCptWait(.1) +saveData_Init("saveData.req", "P=xxx:") +#saveData_PrintScanInfo("xxx:scan1") diff --git a/iocBoot/iocxxx/st_mpfserver.cmd.solaris b/iocBoot/iocxxx/st_mpfserver.cmd.solaris new file mode 100644 index 0000000000000000000000000000000000000000..92547babebe911918f317e3d16a6ef8627ad4983 --- /dev/null +++ b/iocBoot/iocxxx/st_mpfserver.cmd.solaris @@ -0,0 +1,5 @@ +# This configures the MPF server stuff + +initTtyPort("port0","/dev/ttyb",9600,"N",1,8,"N",1000) +initSerialServer("serial0","port0",1000,2,"") + diff --git a/iocBoot/iocxxx/st_mpfserver.cmd.vxWorks b/iocBoot/iocxxx/st_mpfserver.cmd.vxWorks new file mode 100644 index 0000000000000000000000000000000000000000..23d049dbc5e5379a00c65055b112d09ddcd69268 --- /dev/null +++ b/iocBoot/iocxxx/st_mpfserver.cmd.vxWorks @@ -0,0 +1,196 @@ +# This configures the MPF server stuff + +# slot a: IP-Octal (serial RS-232) +# slot b: EMPTY +# slot c: EMPTY +# slot d: EMPTY + +############################################################################### +# Initialize IP carrier +# ipacAddCarrier(ipac_carrier_t *pcarrier, char *cardParams) +# pcarrier - pointer to carrier driver structure +# cardParams - carrier-specific init parameters + +carrier = "ipac" +ipacAddCarrier(&ipmv162, "A:l=3,3 m=0xe0000000,64;B:l=3,3 m=0xe0010000,64;C:l=3,3 m=0xe0020000,64;D:l=3,3 m=0xe0030000,64") +# Number of tyGSOctal modules to support: +tyGSOctalDrv(1) +taskDelay(10) + +# tyGSOctalModuleInit(IP module type, Interrupt number, carrier board [0-n], +# module number on carrier [0-m]) +octalUart0 = tyGSOctalModuleInit("GSIP_OCTAL232", 0x80, 0, 0) +taskDelay(3) + +############################################################################### +# Initialize GPIB stuff + +#initGpibGsTi9914("GS-IP488-0",carrier,"IP_b",104) +#initGpibServer("GPIB0","GS-IP488-0",1024,1000) + +############################################################################### +# Initialize Octal UART stuff + +port0 = tyGSOctalDevCreate("/tyGS/0/0",octalUart0,0,1000,1000) +port1 = tyGSOctalDevCreate("/tyGS/0/1",octalUart0,1,1000,1000) +port2 = tyGSOctalDevCreate("/tyGS/0/2",octalUart0,2,1000,1000) +port3 = tyGSOctalDevCreate("/tyGS/0/3",octalUart0,3,1000,1000) +port4 = tyGSOctalDevCreate("/tyGS/0/4",octalUart0,4,1000,1000) +port5 = tyGSOctalDevCreate("/tyGS/0/5",octalUart0,5,1000,1000) +port6 = tyGSOctalDevCreate("/tyGS/0/6",octalUart0,6,1000,1000) +port7 = tyGSOctalDevCreate("/tyGS/0/7",octalUart0,7,1000,1000) + +tyGSOctalConfig(port0,9600,'N',1,8,'N') /* */ +tyGSOctalConfig(port1,9600,'N',1,8,'N') /* */ +tyGSOctalConfig(port2,9600,'N',1,8,'N') /* */ +tyGSOctalConfig(port3,9600,'N',1,8,'N') /* */ +tyGSOctalConfig(port4,9600,'N',1,8,'N') /* */ +tyGSOctalConfig(port5,9600,'N',1,8,'N') /* */ +tyGSOctalConfig(port6,9600,'N',1,8,'N') /* */ +tyGSOctalConfig(port7,9600,'N',1,8,'N') /* */ + +initTtyVxPort("UART[0]","/tyGS/0/0",9600,1000) +initTtyVxPort("UART[1]","/tyGS/0/1",9600,1000) +initTtyVxPort("UART[2]","/tyGS/0/2",9600,1000) +initTtyVxPort("UART[3]","/tyGS/0/3",9600,1000) +initTtyVxPort("UART[4]","/tyGS/0/4",9600,1000) +initTtyVxPort("UART[5]","/tyGS/0/5",9600,1000) +initTtyVxPort("UART[6]","/tyGS/0/6",9600,1000) +initTtyVxPort("UART[7]","/tyGS/0/7",9600,1000) + +initSerialServer("a-Serial[0]","UART[0]",1000,20,"\r",1) +initSerialServer("a-Serial[1]","UART[1]",1000,20,"\r",1) +initSerialServer("a-Serial[2]","UART[2]",1000,20,"\r",1) +initSerialServer("a-Serial[3]","UART[3]",1000,20,"\r",1) +initSerialServer("a-Serial[4]","UART[4]",1000,20,"\r",1) +initSerialServer("a-Serial[5]","UART[5]",1000,20,"\r",1) +initSerialServer("a-Serial[6]","UART[6]",1000,20,"\r",1) +initSerialServer("a-Serial[7]","UART[7]",1000,20,"\r",1) + +############################################################################### +# Initialize Systran DAC +# initDAC128V(char *serverName, char *carrierName, char *siteName, +# int queueSize) +# serverName = name to give this server +# carrierName = name of IPAC carrier from initIpacCarrier above +# siteName = name of IP site, e.g. "IP_a" +# queueSize = size of output queue for EPICS +# + +#initDAC128V("c-DAC",carrier,"IP_c",20) + +############################################################################### +# Initialize Acromag ADC +# Ip330 *pIp330 = initIp330( +# const char *moduleName, const char *carrierName, const char *siteName, +# const char *typeString, const char *rangeString, +# int firstChan, int lastChan, +# int maxClients, int intVec) +# +# pIp330 = pointer to the Ip330 object, needed by configIp330(), and +# needed to initialize the application-specific classes +# moduleName = name to give this module +# carrierName = name of IPAC carrier from initIpacCarrier() above +# siteName = name of IP site on the carrier, e.g. "IP_a" +# typeString = "D" or "S" for differential or single-ended +# rangeString = "-5to5","-10to10","0to5", or "0to10" +# This value must match hardware setting selected +# firstChan = first channel to be digitized. This must be in the range: +# 0 to 31 (single-ended) +# 0 to 15 (differential) +# lastChan = last channel to be digitized +# maxClients = Maximum number of Ip330 tasks which will attach to this +# Ip330 module. For example Ip330Scan, Ip330Sweep, etc. This +# does not refer to the number of EPICS clients. A value of +# 10 should certainly be safe. +# intVec = Interrupt vector + +#pIp330 = initIp330("d-ADC", carrier, "IP_d", "D", "-10to10", 0, 15, 10, 205) + +# int configIp330(Ip330 *pIp330, scanModeType scanMode, +# const char *triggerString, int microSecondsPerScan, +# int secondsBetweenCalibrate) +# +# pIp330 = pointer to the Ip330 object, returned by initIp330 above +# scanMode = scan mode: +# 0 = disable +# 1 = uniformContinuous +# 2 = uniformSingle +# 3 = burstContinuous (normally recommended) +# 4 = burstSingle +# 5 = convertOnExternalTriggerOnly +# triggerString = "Input" or "Output". Selects the direction of the external +# trigger signal. +# microSecondsPerScan = repeat interval to digitize all channels +# The minimum theoretical time is 15 microseconds times the +# number of channels, but a practical limit is probably 100 +# microseconds. +# secondsBetweenCalibrate = number of seconds between calibration cycles. +# If zero then there will be no periodic calibration, but +# one calibration will still be done at initialization. + +#configIp330(pIp330, 3, "Input", 1000, 60) + + +# initIp330Scan(Ip330 *pIp330, char *serverName, int firstChan, int lastChan, +# int milliSecondsToAverage, int queueSize) +# pIp330 = pointer returned by initIp330 above +# serverName = name to give this server +# firstChan = first channel to be used by Ip330Scan. This must be in the +# range firstChan to lastChan specified in initIp330 +# lastChan = last channel to be used by Ip330Scan. This must be in the range +# firstChan to lastChan specified in initIp330 +# milliSecondsToAverage = number of milliseconds to average for values +# returned to EPICS +# queueSize = size of output queue for EPICS + +#initIp330Scan(pIp330,"d-Ip330Scan",0,15,100,20) + + +# initIp330Sweep(Ip330 *pIp330, char *serverName, int firstChan, int lastChan, +# int maxPoints, int queueSize) +# pIp330 = pointer returned by initIp330 above +# serverName = name to give this server +# firstChan = first channel to be used by Ip330Sweep. This must be in the +# range firstChan to lastChan specified in initIp330 +# lastChan = last channel to be used by Ip330Sweep. This must be in the +# range firstChan to lastChan specified in initIp330 +# maxPoints = maximum number of points in a sweep. The amount of memory +# allocated will be maxPoints*(lastChan-firstChan+1)*4 bytes +# queueSize = size of output queue for EPICS + +#initIp330Sweep(pIp330,"d-Ip330Sweep",0,12,2048,20) + + +# initIp330PID(char *serverName, Ip330 *pIp330, int ADCChan, +# DAC128V *pDAC128V, int DACChan, +# double KP, double KI, double KD, +# int interval, int feedbackOn, int lowLimit, int highLimit, +# int queueSize) +# serverName = name to give this server +# pIp330 = pointer returned by initIp330 above +# ADCChan = ADC channel to be used by Ip330PID. This must be in the range +# firstChan to lastChan specified in initIp330 +# pDAC128V = pointer returned by initDAC128V above +# DACChan = DAC channel to be used by Ip330PID, in the range 0 to 7 +# KP = proportional gain, must be a floating point value +# KI = integral gain, must be a floating point value +# KD = derivative gain, must be a floating point value +# interval = number of microseconds per feedback loop +# feedbackOn = initial state of feedback. 0 = off, 1 = on +# lowLimit = lower limit on the DAC output, in the range 0-2047 +# highLimit = upper limit on the DAC output, in the range 0-2047 +# queueSize = size of output queue for EPICS + +#pIp330PID = initIp330PID("Ip330PID_1", pIp330, 0, pDAC128V, 0, 20) +#configIp330PID(pIp330PID, .1, 10., 0., 1000, 0, 500, 1500) + +############################################################################### +# Initialize Greenspring IP-Unidig + +#initIpUnidig("b-Unidig", carrier, "IP_b", 20) + +# Love controllers +#initOctalUARTPort("UART[7]","octalUart0",7,19200,"N",1,8,"N") +#initLoveServer("PORT7","UART[7]",112) + diff --git a/xxxApp/Db/Makefile b/xxxApp/Db/Makefile index 0380f4bf802747452290641d3c9bfc91684c7586..983981d401b27c05644f2f2cc19cbf888f053bf3 100644 --- a/xxxApp/Db/Makefile +++ b/xxxApp/Db/Makefile @@ -1,3 +1,22 @@ TOP=../.. -include $(TOP)/config/CONFIG_APP -include $(TOP)/config/RULES_ARCHS +include $(TOP)/configure/CONFIG +#---------------------------------------- +# ADD MACRO DEFINITIONS AFTER THIS LINE + +#---------------------------------------------------- +# Optimization of db files using dbst (DEFAULT: NO) +#DB_OPT = YES + +#---------------------------------------------------- +# Create and install (or just install) into <top>/db +# databases, templates, substitutions like this +#DB += xxx.db + +#---------------------------------------------------- +# If <anyname>.db template is not named <anyname>*.template add +# <anyname>_template = <templatename> + +include $(TOP)/configure/RULES +#---------------------------------------- +# ADD RULES AFTER THIS LINE + diff --git a/xxxApp/Db/Makefile.Host b/xxxApp/Db/Makefile.Host deleted file mode 100644 index f666bb73cba42a353a5985738ae1ab0e5c3b96ed..0000000000000000000000000000000000000000 --- a/xxxApp/Db/Makefile.Host +++ /dev/null @@ -1,30 +0,0 @@ -# Makefile.Host -TOP = ../../.. -include $(TOP)/config/CONFIG_APP -#---------------------------------------- -# ADD MACRO DEFINITIONS AFTER THIS LINE - -#---------------------------------------------------- -# Optimization of DB files using dbst (default: NO) -#DB_OPT = YES - -#---------------------------------------------------- -# Optimization needs the name of the appropriate -# dbd file (compare with ../src/Makefile.Vx) -#DBDNAME = xxx.dbd - -#---------------------------------------------------- -# Add databases, templates, substitutions like this -#DB += xxx.db - -#---------------------------------------------------- -# Declare template files which do not show up in DB -#USES_TEMPLATE += xxx.template - -#---------------------------------------------------- -# The following lines are for local dbd expansion -#DBDEXPAND = xxxInclude.dbd - -include $(TOP)/config/RULES.Db -#---------------------------------------- -# ADD RULES AFTER THIS LINE diff --git a/xxxApp/Makefile b/xxxApp/Makefile index e26216db6a9a8c0ede6bf857ebf8809746ca22f0..10e0126aabf1452a21384b5ad2ebc00fd9431072 100644 --- a/xxxApp/Makefile +++ b/xxxApp/Makefile @@ -1,7 +1,8 @@ TOP = .. -include $(TOP)/config/CONFIG_APP -DIRS += $(wildcard *src*) -DIRS += $(wildcard *Src*) -DIRS += $(wildcard *db*) -DIRS += $(wildcard *Db*) -include $(TOP)/config/RULES_DIRS +include $(TOP)/configure/CONFIG +DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *src*)) +DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Src*)) +DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *db*)) +DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Db*)) +include $(TOP)/configure/RULES_DIRS + diff --git a/xxxApp/src/Makefile b/xxxApp/src/Makefile index 0380f4bf802747452290641d3c9bfc91684c7586..3794b42c7859cae95cf5fd9adc2da635b425fd01 100644 --- a/xxxApp/src/Makefile +++ b/xxxApp/src/Makefile @@ -1,3 +1,72 @@ +# Makefile TOP=../.. -include $(TOP)/config/CONFIG_APP -include $(TOP)/config/RULES_ARCHS +include $(TOP)/configure/CONFIG +#---------------------------------------- +# ADD MACRO DEFINITIONS AFTER THIS LINE +#============================= + +DBD += xxx.dbd +DBD += xxxVx.dbd + +PROD_IOC_DEFAULT = xxx +PROD_IOC_vxWorks = xxxVx + +xxx_SRCS += xxx_registerRecordDeviceDriver.cpp +xxxVx_SRCS += xxxVx_registerRecordDeviceDriver.cpp +xxx_SRCS_DEFAULT += xxxMain.cpp + +#The following adds support from base/src/vxWorks +xxxVx_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary + +# Support from ipac +xxxVx_LDOBJS_vxWorks += $(IPAC_BIN)/ipacLib +xxxVx_OBJS_vxWorks += $(IPAC_BIN)/tyGSOctal + +# MCA libraries +xxxVx_LIBS += mcaSIS +xxxVx_LIBS += mcaCanberra +xxxVx_LIBS += mca + +# IP libraries. +xxxVx_LIBS += ip + +# IP330 libraries +xxxVx_LIBS += ip330 +xxxVx_LIBS += devIp330 + +# STD libraries +xxx_LIBS += std +xxxVx_LIBS += std +#xxxVx_OBJS_vxWorks += $(STD_BIN)/module_types.o + +# MOTOR libraries +xxx_LIBS += Newport softMotor motorCOM_mpf motor +xxxVx_LIBS += oms Newport softMotor motorCOM_mpf motor + +# LOVE libraries +xxxVx_LIBS += love + +# IPUNIDIG libraries +xxxVx_LIBS += ipUnidig + +# DAC128V libraries +xxxVx_LIBS += dac128V + +# MPF libraries. +xxx_LIBS += mpfSerial mpfEpics mpf +xxxVx_LIBS += mpfSerial mpfEpics mpf + +# SNCSEQ libraries. +xxx_LIBS += seq pv +xxxVx_LIBS += seq pv + +# Support from vxStats +xxxVx_OBJS_vxWorks += $(VXSTATS_BIN)/devVXStats + +xxx_LIBS += $(EPICS_BASE_IOC_LIBS) +xxxVx_LIBS += $(EPICS_BASE_IOC_LIBS) + +include $(TOP)/configure/RULES +#---------------------------------------- +# ADD RULES AFTER THIS LINE + diff --git a/xxxApp/src/Makefile.Host b/xxxApp/src/Makefile.Host deleted file mode 100644 index 9e3f779c86b96f3015ad18821ff2347c3163d1fa..0000000000000000000000000000000000000000 --- a/xxxApp/src/Makefile.Host +++ /dev/null @@ -1,12 +0,0 @@ -# Makefile.Host -TOP = ../../.. -include $(TOP)/config/CONFIG_APP -#---------------------------------------- -# ADD MACRO DEFINITIONS AFTER THIS LINE - -DBDEXPAND = xxxInclude.dbd -DBDNAME = xxxApp.dbd - -include $(TOP)/config/RULES.Host -#---------------------------------------- -# ADD RULES AFTER THIS LINE diff --git a/xxxApp/src/Makefile.Vx b/xxxApp/src/Makefile.Vx deleted file mode 100644 index ab06410ece11f65ce00a385c1e49cc3c62cd15c2..0000000000000000000000000000000000000000 --- a/xxxApp/src/Makefile.Vx +++ /dev/null @@ -1,121 +0,0 @@ -# FILENAME... Makefile.Vx -# -# NOTE: Some software (STD and IP) can be loaded by either uncommenting two -# lines like the following, -# include $(MOD)/modApp/src/modLIBOBJS -# LIBOBJS += $(MODLIBOBJS) -# or, uncommenting one line that links an already made library like the -# following, -# LIBOBJS += $(MOD_BIN)/modLib -# But don't do both! Either method should yield equivalent results. -# Customization can be done by making a local copy of a -# $(MOD)/modApp/src/modLIBOBJS file in the <ioc>App/src directory, and changing -# the "include $(MOD)/modApp/src/modLIBOBJS" line to, -# include ../modLIBOBJS - -TOP = ../../.. -include $(TOP)/config/CONFIG_APP -#---------------------------------------- -# ADD MACRO DEFINITIONS AFTER THIS LINE - -# Objects from STD -# ---------------- -#include $(STD)/stdApp/src/baseLIBOBJS -#LIBOBJS += $(BASELIBOBJS) -LIBOBJS += $(STD_BIN)/baseLib -#include $(STD)/stdApp/src/stdLIBOBJS -#LIBOBJS += $(STDLIBOBJS) -LIBOBJS += $(STD_BIN)/stdLib -BIN_INSTALLS += $(STD_BIN)/getFilledBuckets.o -BIN_INSTALLS += $(STD_BIN)/initHooks.o -BIN_INSTALLS += $(STD_BIN)/xiahsc.o -BIN_INSTALLS += $(STD_BIN)/xia_slit.o - -# Objects from MPF -# ---------------- -LIBOBJS += $(MPF_BIN)/DevMpf.o -BIN_INSTALLS += $(MPF_BIN)/mpfLib -BIN_INSTALLS += $(MPF_BIN)/ipLib - -# Objects from MPF_GPIB -# --------------------- -BIN_INSTALLS += $(MPF_GPIB_BIN)/GpibHideosRemote.o -BIN_INSTALLS += $(MPF_GPIB_BIN)/GpibHideosLocal.o -BIN_INSTALLS += $(MPF_GPIB_BIN)/mpfgpibserverLib - -# Objects from MPF_SERIAL -# ----------------------- -LIBOBJS += $(MPF_SERIAL_BIN)/devStringMpf.o -BIN_INSTALLS += $(MPF_SERIAL_BIN)/mpfserialserverLib - -# Objects from DAC128V -# -------------------- -LIBOBJS += $(DAC128V_BIN)/devAoDAC128V.o -BIN_INSTALLS += $(DAC128V_BIN)/dac128VLib - -# Objects from IP330 -# ------------------ -LIBOBJS += $(IP330_BIN)/devAiIp330Scan.o -LIBOBJS += $(IP330_BIN)/devLoIp330Config.o -LIBOBJS += $(IP330_BIN)/devEpidIp330.o -BIN_INSTALLS += $(IP330_BIN)/ip330Lib -BIN_INSTALLS += $(IP330_BIN)/ip330ServLib - -# Objects from IPUNIDIG -# --------------------- -LIBOBJS += $(IPUNIDIG_BIN)/devIpUnidig.o -BIN_INSTALLS += $(IPUNIDIG_BIN)/ipUnidigLib - -# Objects from LOVE -# ----------------- -LIBOBJS += $(LOVE_BIN)/devLove.o -BIN_INSTALLS += $(LOVE_BIN)/loveServer.o - -# Objects from MCA -# ---------------- -#include $(MCA)/mcaApp/src/mcaLIBOBJS -#LIBOBJS += $(MCALIBOBJS) -#include $(MCA)/mcaApp/src/mcaMpfServerLIBOBJS -#LIBOBJS += $(MCAMPFSERVERLIBOBJS) -LIBOBJS += $(MCA_BIN)/mcaLib - -# Objects from IP -# ---------------- -#include $(IP)/ipApp/src/ipLIBOBJS -#LIBOBJS += $(IPLIBOBJS) -LIBOBJS += $(IP_BIN)/ipLib -BIN_INSTALLS += $(IP_BIN)/mpcServer.o - -# Allen Bradley objects. Local copy of file to edit in needed routines -#include ../allenBradleyLIBOBJS - -# Objects from MOTOR -# ------------------ -LIBOBJS += $(MOTOR_BIN)/motorLib -LIBOBJS += $(MOTOR_BIN)/softMotorLib -#LIBOBJS += $(MOTOR_BIN)/motorCOM_mpf -LIBOBJS += $(MOTOR_BIN)/omsLib -#LIBOBJS += $(MOTOR_BIN)/V544Lib -#LIBOBJS += $(MOTOR_BIN)/newportLib -#LIBOBJS += $(MOTOR_BIN)/pm500Lib - -# CAMAC libraries -#LIBOBJS += $(CAMAC_BIN)/camacLib -#LIBOBJS += $(CAMAC_BIN)/devCamacLib -#LIBOBJS += $(CAMAC_BIN)/dxpCamacLib - -# Local source files. -#SRCS.c += ../myProg.c -#SRCS.cc += ../myProg.cc -#LIBOBJS += myProg.o - -LIBNAME = xxxLib - -BIN_INSTALLS += $(EPICS_BASE_BIN)/iocCore $(EPICS_BASE_BIN)/seq - -#Note that the command line that builds the -#library $(LIBNAME) may be HUGE (>3kB) -# -include $(TOP)/config/RULES.Vx -#---------------------------------------- -# ADD RULES AFTER THIS LINE diff --git a/xxxApp/src/base.dbd b/xxxApp/src/base.dbd deleted file mode 100644 index 5e228bc602c7c3924a8c624cd8d732c985cb9d46..0000000000000000000000000000000000000000 --- a/xxxApp/src/base.dbd +++ /dev/null @@ -1,241 +0,0 @@ -include "menuGlobal.dbd" -include "menuConvert.dbd" -include "aiRecord.dbd" -#include "aaiRecord.dbd" -include "aoRecord.dbd" -#include "aaoRecord.dbd" -include "biRecord.dbd" -include "boRecord.dbd" -include "calcRecord.dbd" -include "calcoutRecord.dbd" -include "compressRecord.dbd" -include "dfanoutRecord.dbd" -#include "egRecord.dbd" -#include "egeventRecord.dbd" -#include "erRecord.dbd" -#include "ereventRecord.dbd" -include "eventRecord.dbd" -include "fanoutRecord.dbd" -#include "histogramRecord.dbd" -include "longinRecord.dbd" -include "longoutRecord.dbd" -include "mbbiRecord.dbd" -include "mbbiDirectRecord.dbd" -include "mbboRecord.dbd" -include "mbboDirectRecord.dbd" -include "permissiveRecord.dbd" -include "pidRecord.dbd" -#include "pulseCounterRecord.dbd" -#include "pulseDelayRecord.dbd" -#include "pulseTrainRecord.dbd" -#include "scanRecord.dbd" -include "selRecord.dbd" -include "seqRecord.dbd" -include "stateRecord.dbd" -#include "steppermotorRecord.dbd" -include "stringinRecord.dbd" -include "stringoutRecord.dbd" -include "subRecord.dbd" -#include "gsubRecord.dbd" -#include "palRecord.dbd" -include "subArrayRecord.dbd" -#include "timerRecord.dbd" -#include "waitRecord.dbd" -include "waveformRecord.dbd" -device(ai,CONSTANT,devAiSoft,"Soft Channel") -device(ai,CONSTANT,devAiSoftRaw,"Raw Soft Channel") -#device(ai,VME_IO,devAiXy566Se,"XYCOM-566 SE Scanned") -#device(ai,VME_IO,devAiXy566Di,"XYCOM-566 Dif Scanned") -#device(ai,VME_IO,devAiXy566DiL,"XYCOM-566 Dif Latched") -device(ai,VME_IO,devAiDvx2502,"DVX-2502") -#device(ai,CONSTANT,devAiTestAsyn,"Test Asyn") -#device(ai,AB_IO,devAiAb1771Il,"AB-1771IL-Analog In") -#device(ai,AB_IO,devAiAb1771Ife,"AB-1771IFE") -#device(ai,AB_IO,devAiAb1771Ixe,"AB-1771IXE-Millivolt In") -#device(ai,AB_IO,devAiAb1771IfeSe,"AB-1771IFE-SE") -#device(ai,AB_IO,devAiAb1771IfeMa,"AB-1771IFE-4to20MA") -#device(ai,AB_IO,devAiAb1771Ife0to5V,"AB-1771IFE-0to5Volt") -#device(ai,AB_IO,devAiAb1771IrPlatinum,"AB-1771RTD-Platinum") -#device(ai,AB_IO,devAiAb1771IrCopper,"AB-1771RTD-Copper") -#device(ai,CAMAC_IO,devAiCamac,"Camac") -#device(ai,VME_IO,devAiAt5Vxi,"VXI-AT5-AI") -#device(ai,GPIB_IO,devAiK486Gpib,"Keithley-486") -#device(ai,VME_IO,devAiKscV215,"KSC-V215") -device(ai,INST_IO,devAiVXStats,"VX stats") -#device(aai,CAMAC_IO,devAaiCamac,"Camac") -device(ao,CONSTANT,devAoSoft,"Soft Channel") -device(ao,CONSTANT,devAoSoftRaw,"Raw Soft Channel") -#device(ao,VME_IO,devAoVmiVme4100,"VMIVME-4100") -#device(ao,CONSTANT,devAoTestAsyn,"Test Asyn") -#device(ao,AB_IO,devAoAb1771Ofe,"AB-1771OFE") -#device(ao,CAMAC_IO,devAoCamac,"Camac") -#device(ao,VME_IO,devAoAt5Vxi,"VXI-AT5-AO") -device(ao,INST_IO,devAoVXStats,"VX stats") -device(bi,CONSTANT,devBiSoft,"Soft Channel") -device(bi,CONSTANT,devBiSoftRaw,"Raw Soft Channel") -#device(bi,VME_IO,devBiMpv910,"MPV-910") -#device(bi,VME_IO,devBiXVme210,"XVME-210") -#device(bi,CONSTANT,devBiTestAsyn,"Test Asyn") -#device(bi,AB_IO,devBiAb,"AB-Binary Input") -#device(bi,AB_IO,devBiAb16,"AB-16 bit BI") -#device(bi,AB_IO,devBiAb32,"AB-32 bit BI") -#device(bi,CAMAC_IO,devBiCamac,"Camac") -#device(bi,VME_IO,devBiAt5Vxi,"VXI-AT5-BI") -#device(bi,VME_IO,devBiXy240,"XYCOM-240") -#device(bi,VME_IO,devBiHpe1368a,"VXI-HPE1368-VS") -#device(bi,VME_IO,devBiAt8Fp,"AT8-FP10S") -device(bi,VME_IO,devBiAvme9440,"AVME9440 I") -device(bo,CONSTANT,devBoSoft,"Soft Channel") -device(bo,CONSTANT,devBoSoftRaw,"Raw Soft Channel") -#device(bo,VME_IO,devBoMpv902,"MPV-902") -#device(bo,VME_IO,devBoXVme220,"XVME-220") -#device(bo,CONSTANT,devBoTestAsyn,"Test Asyn") -#device(bo,AB_IO,devBoAb,"AB-Binary Output") -#device(bo,AB_IO,devBoAb16,"AB-16 bit BO") -#device(bo,AB_IO,devBoAb32,"AB-32 bit BO") -#device(bo,CAMAC_IO,devBoCamac,"Camac") -#device(bo,VME_IO,devBoAt5Vxi,"VXI-AT5-BO") -#device(bo,GPIB_IO,devBoK486Gpib,"Keithley-486") -#device(bo,VME_IO,devBoXy240,"XYCOM-240") -#device(bo,VME_IO,devBoHpe1368a,"VXI-HPE1368-VS") -#device(bo,VME_IO,devBoAt8Fp,"AT8-FP10S") -device(bo,VME_IO,devBoAvme9440,"AVME9440 O") -device(event,CONSTANT,devEventSoft,"Soft Channel") -#device(event,VME_IO,devEventMz8310,"Mizar-8310") -#device(event,CONSTANT,devEventTestIoEvent,"Test IoEvent") -#device(event,VME_IO,devErEpicsEvent,"APS event receiver") -#device(histogram,CONSTANT,devHistogramSoft,"Soft Channel") -#device(histogram,CONSTANT,devHistogramTestAsyn,"Test Asyn") -device(longin,CONSTANT,devLiSoft,"Soft Channel") -#device(longin,CAMAC_IO,devLiCamac,"Camac") -device(longout,CONSTANT,devLoSoft,"Soft Channel") -#device(longout,CAMAC_IO,devLoCamac,"Camac") -device(mbbi,CONSTANT,devMbbiSoft,"Soft Channel") -device(mbbi,CONSTANT,devMbbiSoftRaw,"Raw Soft Channel") -#device(mbbi,VME_IO,devMbbiMpv910,"MPV-910") -#device(mbbi,VME_IO,devMbbiXVme210,"XVME-210") -#device(mbbi,CONSTANT,devMbbiTestAsyn,"Test Asyn") -#device(mbbi,AB_IO,devMbbiAb,"AB-Binary Input") -#device(mbbi,AB_IO,devMbbiAb16,"AB-16 bit BI") -#device(mbbi,AB_IO,devMbbiAb32,"AB-32 bit BI") -#device(mbbi,AB_IO,devMbbiAbAdapterStat,"AB-Adapter Status") -#device(mbbi,AB_IO,devMbbiAbCardStat,"AB-Card Status") -#device(mbbi,CAMAC_IO,devMbbiCamac,"Camac") -#device(mbbi,VME_IO,devMbbiAt5Vxi,"VXI-AT5-BI") -#device(mbbi,VME_IO,devMbbiXy240,"XYCOM-240") -#device(mbbi,VME_IO,devMbbiHpe1368a,"VXI-HPE1368-VS") -#device(mbbi,VME_IO,devMbbiAt8Fp,"AT8-FP10S") -device(mbbi,VME_IO,devMbbiAvme9440,"AVME9440 I") -device(mbbiDirect,CONSTANT,devMbbiDirectSoft,"Soft Channel") -device(mbbiDirect,CONSTANT,devMbbiDirectSoftRaw,"Raw Soft Channel") -#device(mbbiDirect,VME_IO,devMbbiDirectMpv910,"MPV-910") -#device(mbbiDirect,VME_IO,devMbbiDirectXVme210,"XVME-210") -#device(mbbiDirect,AB_IO,devMbbiDirectAb,"AB-Binary Input") -#device(mbbiDirect,AB_IO,devMbbiDirectAb16,"AB-16 bit BI") -#device(mbbiDirect,AB_IO,devMbbiDirectAb32,"AB-32 bit BI") -#device(mbbiDirect,CAMAC_IO,devMbbiDirectCamac,"Camac") -#device(mbbiDirect,VME_IO,devMbbiDirectAt5Vxi,"VXI-AT5-BI") -device(mbbo,CONSTANT,devMbboSoft,"Soft Channel") -device(mbbo,CONSTANT,devMbboSoftRaw,"Raw Soft Channel") -#device(mbbo,VME_IO,devMbboMpv902,"MPV-902") -#device(mbbo,VME_IO,devMbboXVme220,"XVME-220") -#device(mbbo,CONSTANT,devMbboTestAsyn,"Test Asyn") -#device(mbbo,AB_IO,devMbboAb,"AB-Binary Output") -#device(mbbo,AB_IO,devMbboAb16,"AB-16 bit BO") -#device(mbbo,AB_IO,devMbboAb32,"AB-32 bit BO") -#device(mbbo,VME_IO,devMbboAt5Vxi,"VXI-AT5-BO") -#device(mbbo,GPIB_IO,devMbboK486Gpib,"Keithley-486") -#device(mbbo,VME_IO,devMbboXy240,"XYCOM-240") -#device(mbbo,VME_IO,devMbboHpe1368a,"VXI-HPE1368-VS") -#device(mbbo,VME_IO,devMbboAt8Fp,"AT8-FP10S") -device(mbbo,VME_IO,devMbboAvme9440,"AVME9440 O") -device(mbboDirect,CONSTANT,devMbboDirectSoft,"Soft Channel") -device(mbboDirect,CONSTANT,devMbboDirectSoftRaw,"Raw Soft Channel") -#device(mbboDirect,VME_IO,devMbboDirectMpv902,"MPV-902") -#device(mbboDirect,VME_IO,devMbboDirectXVme220,"XVME-220") -#device(mbboDirect,AB_IO,devMbboDirectAb,"AB-Binary Output") -#device(mbboDirect,AB_IO,devMbboDirectAb16,"AB-16 bit BO") -#device(mbboDirect,AB_IO,devMbboDirectAb32,"AB-32 bit BO") -#device(mbboDirect,CAMAC_IO,devMbboDirectCamac,"Camac") -#device(mbboDirect,VME_IO,devMbboDirectAt5Vxi,"VXI-AT5-BO") -#device(pulseCounter,VME_IO,devPcMz8310,"Mizar-8310") -#device(pulseDelay,VME_IO,devPdMz8310,"Mizar-8310") -#device(pulseTrain,CONSTANT,devPtSoft,"Soft Channel") -#device(pulseTrain,VME_IO,devPtMz8310,"Mizar-8310") -#device(steppermotor,VME_IO,devSmCompumotor1830,"Compumotor 1830") -#device(steppermotor,VME_IO,devSmOms6Axis,"OMS 6-Axis") -#device(steppermotor,AB_IO,devSmAB1746Hstp1,"Allen Bradley 1746-HTSP1") -device(stringin,CONSTANT,devSiSoft,"Soft Channel") -#device(stringin,CONSTANT,devSiTestAsyn,"Test Asyn") -device(stringout,CONSTANT,devSoSoft,"Soft Channel") -#device(stringout,CONSTANT,devSoTestAsyn,"Test Asyn") -device(subArray,CONSTANT,devSASoft,"Soft Channel") -#device(timer,VME_IO,devTmMizar8310,"Mizar-8310") -#device(timer,VME_IO,devTmDg535,"DG 535") -#device(timer,VME_IO,devTmAt5Vxi,"VXI-AT5-TIME") -device(waveform,CONSTANT,devWfSoft,"Soft Channel") -#device(waveform,VME_IO,devWfXy566Sc,"XYCOM-566 Single Channel") -#device(waveform,VME_IO,devWfComet,"Comet Digitizer") -#device(waveform,VME_IO,devWfJoergerVtr1,"Joerger Digitizer") -#device(waveform,CONSTANT,devWfTestAsyn,"Test Asyn") -#device(waveform,VME_IO,devWfDvx2502,"DVX-2502") -#device(waveform,VME_IO,devWfPentek4261,"Pentek 4261") -#device(waveform,CAMAC_IO,devWfCamac,"Camac") -#device(waveform,VME_IO,devWfJoergerVtr1,"Joerger-VTR1") -#device(waveform,VME_IO,devWfComet,"Omnibyte-COMET") -#device(eg,VME_IO,devEg,"APS event generator G") -#device(egevent,VME_IO,devEgEvent,"APS event generator E") -#device(er,VME_IO,devEr,"APS event receiver") -#device(erevent,VME_IO,devErevent,"APS event receiver") -#device(wait,CONSTANT,devWaitIoEvent,"Soft Channel") -#device(ai,INST_IO,devAiCan,"CANbus") -#device(ao,INST_IO,devAoCan,"CANbus") -#device(bi,INST_IO,devBiCan,"CANbus") -#device(bo,INST_IO,devBoCan,"CANbus") -#device(mbbi,INST_IO,devMbbiCan,"CANbus") -#device(mbbo,INST_IO,devMbboCan,"CANbus") -#device(mbbiDirect,INST_IO,devMbbiDirectCan,"CANbus") -#device(mbboDirect,INST_IO,devMbboDirectCan,"CANbus") -#device(bi,VME_IO,devBiVmic2534,"Vmic2534") -#device(bo,VME_IO,devBoVmic2534,"Vmic2534") -#device(mbbi,VME_IO,devMbbiVmic2534,"Vmic2534") -#device(mbbo,VME_IO,devMbboVmic2534,"Vmic2534") - -include "symb.dbd" - -#device(ai,AB_IO,devAiAbSlcDcm,"AB-SLC500DCM") -#device(ai,AB_IO,devAiAbSlcDcmSigned,"AB-SLC500DCM-Signed") -#device(ao,AB_IO,devAoAbSlcDcm,"AB-SLC500DCM") -#device(longin,AB_IO,devLiAbSlcDcm,"AB-SLC500DCM") -#device(longout,AB_IO,devLoAbSlcDcm,"AB-SLC500DCM") - -#driver(drvXy010) -#driver(drvVxi) -driver(drvGpib) -driver(drvBitBus) -#driver(drvBb910) -#driver(drvXy210) -#driver(drvBb902) -#driver(drvXy220) -#driver(drvXy566) -driver(drvDvx) -#driver(drvVmi4100) -driver(drvAb) -#driver(drvAt5Vxi) -#driver(drvCompuSm) -#driver(drvOms) -#driver(drvMz8310) -#driver(drvHpe1368a) -#driver(drvXy240) -#driver(drvKscV215) -#driver(drvComet) -#driver(drvJgvtr1) -#driver(drvFp) -#driver(drvFpm) -#driver(drvIpac) -#driver(drvTip810) -#driver(drvVmi2534) -#include "bptTypeJdegC.dbd" -#include "bptTypeJdegF.dbd" -#include "bptTypeKdegC.dbd" -#include "bptTypeKdegF.dbd" diff --git a/xxxApp/src/baseLIBOBJS b/xxxApp/src/baseLIBOBJS deleted file mode 100644 index cd962ba951fa21cb11b0d3361cc2928644bd45ea..0000000000000000000000000000000000000000 --- a/xxxApp/src/baseLIBOBJS +++ /dev/null @@ -1,216 +0,0 @@ -#LIBOBJS += $(EPICS_BASE_BIN)/aaiRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/aaoRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/aiRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/aoRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/biRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/boRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/calcRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/calcoutRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/compressRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/dfanoutRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/egRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/egeventRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/erRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/ereventRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/eventRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/fanoutRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/gsubRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/histogramRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/longinRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/longoutRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/mbbiRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/mbbiDirectRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/mbboRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/mbboDirectRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/palRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/permissiveRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/pidRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/pulseCounterRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/pulseDelayRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/pulseTrainRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/recWaitCa.o -#LIBOBJS += $(EPICS_BASE_BIN)/recDynLink.o -#LIBOBJS += $(EPICS_BASE_BIN)/recDynLinkTest.o -#LIBOBJS += $(EPICS_BASE_BIN)/scanRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/selRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/seqRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/stateRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/steppermotorRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/stringinRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/stringoutRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/subRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/subArrayRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/timerRecord.o -#LIBOBJS += $(EPICS_BASE_BIN)/waitRecord.o -LIBOBJS += $(EPICS_BASE_BIN)/waveformRecord.o -# -# Device Support -# -#LIBOBJS += $(EPICS_BASE_BIN)/devAaiCamac.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAiCamac.o -LIBOBJS += $(EPICS_BASE_BIN)/devAiDvx2502.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAiKscV215.o -LIBOBJS += $(EPICS_BASE_BIN)/devAiSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devAiSoftRaw.o -LIBOBJS += $(EPICS_BASE_BIN)/devVXStats.o -LIBOBJS += $(EPICS_BASE_BIN)/devAiTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAiXy566Di.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAiXy566DiL.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAiXy566Se.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAaoCamac.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAoCamac.o -LIBOBJS += $(EPICS_BASE_BIN)/devAoSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devAoSoftRaw.o -LIBOBJS += $(EPICS_BASE_BIN)/devAoTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAoVmiVme4100.o -#LIBOBJS += $(EPICS_BASE_BIN)/devApsEg.o -#LIBOBJS += $(EPICS_BASE_BIN)/devApsEr.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAt5Vxi.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAt8Fp.o -LIBOBJS += $(EPICS_BASE_BIN)/devAvme9440.o -#LIBOBJS += $(EPICS_BASE_BIN)/devBiCamac.o -#LIBOBJS += $(EPICS_BASE_BIN)/devBiMpv910.o -LIBOBJS += $(EPICS_BASE_BIN)/devBiSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devBiSoftRaw.o -LIBOBJS += $(EPICS_BASE_BIN)/devBiTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devBiXVme210.o -#LIBOBJS += $(EPICS_BASE_BIN)/devBoCamac.o -#LIBOBJS += $(EPICS_BASE_BIN)/devBoMpv902.o -LIBOBJS += $(EPICS_BASE_BIN)/devBoSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devBoSoftRaw.o -LIBOBJS += $(EPICS_BASE_BIN)/devBoTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devBoXVme220.o -LIBOBJS += $(EPICS_BASE_BIN)/devCommonGpib.o -LIBOBJS += $(EPICS_BASE_BIN)/devEventSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devEventTestIoEvent.o -LIBOBJS += $(EPICS_BASE_BIN)/devHistogramSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devHistogramTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devHpe1368a.o -#LIBOBJS += $(EPICS_BASE_BIN)/devLiCamac.o -LIBOBJS += $(EPICS_BASE_BIN)/devLiSoft.o -#LIBOBJS += $(EPICS_BASE_BIN)/devLoCamac.o -LIBOBJS += $(EPICS_BASE_BIN)/devLoSoft.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbbiCamac.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbbiDirectCamac.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbbiDirectMpv910.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbbiDirectSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbbiDirectSoftRaw.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbbiDirectXVme210.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbbiMpv910.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbbiSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbbiSoftRaw.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbbiTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbbiXVme210.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbboCamac.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbboDirectCamac.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbboDirectMpv902.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbboDirectSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbboDirectSoftRaw.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbboDirectXVme220.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbboMpv902.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbboSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbboSoftRaw.o -LIBOBJS += $(EPICS_BASE_BIN)/devMbboTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbboXVme220.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMz8310.o -LIBOBJS += $(EPICS_BASE_BIN)/devPtSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devSASoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devSiSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devSiTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devSmCompumotor1830.o -#LIBOBJS += $(EPICS_BASE_BIN)/devSmOms6Axis.o -LIBOBJS += $(EPICS_BASE_BIN)/devSoSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devSoTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devTimerMz8310.o -#LIBOBJS += $(EPICS_BASE_BIN)/devWfCamac.o -#LIBOBJS += $(EPICS_BASE_BIN)/devWfComet.o -#LIBOBJS += $(EPICS_BASE_BIN)/devWfDvx2502.o -#LIBOBJS += $(EPICS_BASE_BIN)/devWfJoergerVtr1.o -LIBOBJS += $(EPICS_BASE_BIN)/devWfSoft.o -LIBOBJS += $(EPICS_BASE_BIN)/devWfTestAsyn.o -#LIBOBJS += $(EPICS_BASE_BIN)/devWfXy566Sc.o -#LIBOBJS += $(EPICS_BASE_BIN)/devWfPentek4261.o -#LIBOBJS += $(EPICS_BASE_BIN)/devXy240.o - -#LIBOBJS += $(EPICS_BASE_BIN)/devAB1771IFE.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAB1771IL.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAB1771IR.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAB1771IXE.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAB1771OFE.o -#LIBOBJS += $(EPICS_BASE_BIN)/devABSLCDCM.o -#LIBOBJS += $(EPICS_BASE_BIN)/devABBINARY.o -#LIBOBJS += $(EPICS_BASE_BIN)/devABStatus.o - -#LIBOBJS += $(EPICS_BASE_BIN)/devAiCan.o -#LIBOBJS += $(EPICS_BASE_BIN)/devAoCan.o -#LIBOBJS += $(EPICS_BASE_BIN)/devBiCan.o -#LIBOBJS += $(EPICS_BASE_BIN)/devBoCan.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbbiCan.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbboCan.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbbiDirectCan.o -#LIBOBJS += $(EPICS_BASE_BIN)/devMbboDirectCan.o -#LIBOBJS += $(EPICS_BASE_BIN)/devVmic2534.o - -LIBOBJS += $(EPICS_BASE_BIN)/symb - -# -# Driver support ANSI -# -#LIBOBJS += $(EPICS_BASE_BIN)/drvAb.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvAt5Vxi.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvEpvxi.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvEpvxiMsg.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvHp1404a.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvHpe1368a.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvHpe1445a.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvKscV215.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvMz8310.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvStc.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvTime.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvCaenV265.o - -#LIBOBJS += $(EPICS_BASE_BIN)/drvVipc310.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvVipc610.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvIpMv162.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvIpac.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvTip810.o -# -# Driver support NON ANSI -# -#LIBOBJS += $(EPICS_BASE_BIN)/module_types.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvBB232.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvBb902.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvBb910.o -LIBOBJS += $(EPICS_BASE_BIN)/drvBitBus.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvComet.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvCompuSm.o -LIBOBJS += $(EPICS_BASE_BIN)/drvDvx.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvFp.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvFpm.o -LIBOBJS += $(EPICS_BASE_BIN)/drvGpib.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvJgvtr1.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvMsg.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvOms.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvTranServ.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvVmi4100.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvXy010.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvXy210.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvXy220.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvXy240.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvXy566.o -#LIBOBJS += $(EPICS_BASE_BIN)/drvVmic2534.o -# -#from src/devOpt -# -#LIBOBJS += $(EPICS_BASE_BIN)/devAnalytekGpib.o -#LIBOBJS += $(EPICS_BASE_BIN)/devBBInteract.o -LIBOBJS += $(EPICS_BASE_BIN)/devGpibInteract.o -#LIBOBJS += $(EPICS_BASE_BIN)/devK486Gpib.o -#LIBOBJS += $(EPICS_BASE_BIN)/devLibOpt.o -#LIBOBJS += $(EPICS_BASE_BIN)/devXxDc5009Gpib.o -#LIBOBJS += $(EPICS_BASE_BIN)/devXxDg535Gpib.o -#LIBOBJS += $(EPICS_BASE_BIN)/devXxK196Gpib.o -#LIBOBJS += $(EPICS_BASE_BIN)/devXxK263Gpib.o -#LIBOBJS += $(EPICS_BASE_BIN)/devXxSkeletonGpib.o -#LIBOBJS += $(EPICS_BASE_BIN)/devXxSr620Gpib.o - diff --git a/xxxApp/src/xxxInclude.dbd b/xxxApp/src/xxxInclude.dbd index 28f0a308f0b1860dced64881b2a163cc2aaee49e..6d053a151a98180e4eb98483ab097caf251f15ce 100644 --- a/xxxApp/src/xxxInclude.dbd +++ b/xxxApp/src/xxxInclude.dbd @@ -1,25 +1,16 @@ -include "shareBase.dbd" -include "stdShare.dbd" - -include "mcaShare.dbd" -include "ipShare.dbd" -include "devIpUnidig.dbd" -include "devAoDAC128V.dbd" - -include "devEpidIp330.dbd" -include "devAiIp330.dbd" +include "base.dbd" +include "std.dbd" +include "mpfSerial.dbd" include "motorRecord.dbd" include "devSoftMotor.dbd" -include "devOms.dbd" #include "devAcsMotor.dbd" #include "devImsMotor.dbd" #include "devMclennanMotor.dbd" -#include "devNewport.dbd" +include "devNewport.dbd" #include "camacShare.dbd" #include "devCamacShare.dbd" #include "dxpCamacShare.dbd" #include "allenBradley.dbd" -include "devLove.dbd" diff --git a/xxxApp/src/xxxMain.c b/xxxApp/src/xxxMain.c new file mode 100644 index 0000000000000000000000000000000000000000..8bd5df669118edbf8d4cb6e367e454bd25737428 --- /dev/null +++ b/xxxApp/src/xxxMain.c @@ -0,0 +1,21 @@ +/* xxxMain.c */ +/* Author: Ron Sluiter */ + +#include <stddef.h> +#include <stdlib.h> +#include <stddef.h> +#include <string.h> +#include <stdio.h> + +#include "epicsThread.h" +#include "iocsh.h" + +int main(int argc,char *argv[]) +{ + if(argc>=2) { + iocsh(argv[1]); + epicsThreadSleep(.2); + } + iocsh(NULL); + return(0); +} diff --git a/xxxApp/src/xxxVxInclude.dbd b/xxxApp/src/xxxVxInclude.dbd new file mode 100644 index 0000000000000000000000000000000000000000..dca75a13ee0e0ba4b4a8825434a9c1f146e7a27f --- /dev/null +++ b/xxxApp/src/xxxVxInclude.dbd @@ -0,0 +1,28 @@ +include "base.dbd" +include "stdVX.dbd" +include "mpfSerialVx.dbd" + +include "vxStats.dbd" +include "mcaSupport.dbd" +include "ipShare.dbd" +include "devIpUnidig.dbd" +include "devAoDAC128V.dbd" + +include "devIp330.dbd" + +include "motorRecord.dbd" +include "devSoftMotor.dbd" +include "devOms.dbd" +#include "devAcsMotor.dbd" +#include "devImsMotor.dbd" +#include "devMclennanMotor.dbd" +include "devNewport.dbd" + +#include "camacShare.dbd" +#include "devCamacShare.dbd" +#include "dxpCamacShare.dbd" +#include "allenBradley.dbd" +include "devLove.dbd" + +registrar(stdRegister) +