Skip to content

Instantly share code, notes, and snippets.

@canismarko
Last active March 20, 2024 15:47
Show Gist options
  • Save canismarko/7ffb652e1507771965d15dc7015e1eb6 to your computer and use it in GitHub Desktop.
Save canismarko/7ffb652e1507771965d15dc7015e1eb6 to your computer and use it in GitHub Desktop.
USB Ctr IOC Errors
Starting 20bmb
# Linux startup script
< envPaths
epicsEnvSet("IOC","ioc20bmb")
epicsEnvSet("TOP","/net/s20data/xorApps/epics/synApps_6_3/ioc/20bmb")
epicsEnvSet("SUPPORT","/APSshare/epics/synApps_6_3/support")
epicsEnvSet("EPICS_BASE","/APSshare/epics/base-7.0.8")
epicsEnvSet("ALIVE","/APSshare/epics/synApps_6_3/support/alive-R1-4-1")
epicsEnvSet("AREA_DETECTOR","/APSshare/epics/synApps_6_3/support/areaDetector-R3-12-1")
epicsEnvSet("ASYN","/APSshare/epics/synApps_6_3/support/asyn-R4-44-2")
epicsEnvSet("AUTOSAVE","/APSshare/epics/synApps_6_3/support/autosave-R5-11")
epicsEnvSet("BUSY","/APSshare/epics/synApps_6_3/support/busy-R1-7-4")
epicsEnvSet("CALC","/APSshare/epics/synApps_6_3/support/calc-R3-7-5")
epicsEnvSet("CAMAC","/APSshare/epics/synApps_6_3/support/camac-R2-7-5")
epicsEnvSet("CAPUTRECORDER","/APSshare/epics/synApps_6_3/support/caputRecorder-R1-7-6")
epicsEnvSet("DAC128V","/APSshare/epics/synApps_6_3/support/dac128V-R2-10-1")
epicsEnvSet("DANTE","/APSshare/epics/synApps_6_3/support/Dante-R1-1")
epicsEnvSet("DELAYGEN","/APSshare/epics/synApps_6_3/support/delaygen-R1-2-4")
epicsEnvSet("DEVIOCSTATS","/APSshare/epics/synApps_6_3/support/iocStats-3-1-16")
epicsEnvSet("DXP","/APSshare/epics/synApps_6_3/support/dxp-R6-1")
epicsEnvSet("DXPSITORO","/APSshare/epics/synApps_6_3/support/dxpSITORO-R1-3")
epicsEnvSet("ETHERIP","/APSshare/epics/synApps_6_3/support/ether_ip-ether_ip-3-3")
epicsEnvSet("GALIL","/APSshare/epics/synApps_6_3/support/Galil-3-0-V3-5")
epicsEnvSet("IP","/APSshare/epics/synApps_6_3/support/ip-R2-22")
epicsEnvSet("IP330","/APSshare/epics/synApps_6_3/support/ip330-R2-10")
epicsEnvSet("IPAC","/APSshare/epics/synApps_6_3/support/ipac-2-16")
epicsEnvSet("IPUNIDIG","/APSshare/epics/synApps_6_3/support/ipUnidig-R2-12")
epicsEnvSet("LABJACK","/APSshare/epics/synApps_6_3/support/LabJack-R3-0")
epicsEnvSet("LOVE","/APSshare/epics/synApps_6_3/support/love-R3-2-9")
epicsEnvSet("LUA","/APSshare/epics/synApps_6_3/support/lua-R3-1")
epicsEnvSet("MCA","/APSshare/epics/synApps_6_3/support/mca-R7-10")
epicsEnvSet("MEASCOMP","/APSshare/epics/synApps_6_3/support/measComp-R4-2")
epicsEnvSet("MODBUS","/APSshare/epics/synApps_6_3/support/modbus-R3-3")
epicsEnvSet("MOTOR","/APSshare/epics/synApps_6_3/support/motor-R7-3-1")
epicsEnvSet("OPTICS","/APSshare/epics/synApps_6_3/support/optics-R2-14")
epicsEnvSet("QUADEM","/APSshare/epics/synApps_6_3/support/quadEM-R9-5")
epicsEnvSet("SCALER","/APSshare/epics/synApps_6_3/support/scaler-4-1")
epicsEnvSet("SNCSEQ","/APSshare/epics/synApps_6_3/support/sequencer-mirror-R2-2-9")
epicsEnvSet("SOFTGLUE","/APSshare/epics/synApps_6_3/support/softGlue-R2-8-4")
epicsEnvSet("SOFTGLUEZYNQ","/APSshare/epics/synApps_6_3/support/softGlueZynq-R2-0-5")
epicsEnvSet("SSCAN","/APSshare/epics/synApps_6_3/support/sscan-R2-11-6")
epicsEnvSet("STD","/APSshare/epics/synApps_6_3/support/std-R3-6-4")
epicsEnvSet("STREAM","/APSshare/epics/synApps_6_3/support/StreamDevice-2-8-24")
epicsEnvSet("VAC","/APSshare/epics/synApps_6_3/support/vac-R1-9-2")
epicsEnvSet("VME","/APSshare/epics/synApps_6_3/support/vme-R2-9-5")
epicsEnvSet("XSPRESS3","/APSshare/epics/synApps_6_3/support/xspress3-3-2-8")
epicsEnvSet("XXX","/APSshare/epics/synApps_6_3/support/xxx-R6-3")
epicsEnvSet("YOKOGAWA_DAS","/APSshare/epics/synApps_6_3/support/Yokogawa_DAS-R2-0-2")
epicsEnvSet("ALLENBRADLEY","/APSshare/epics/synApps_6_3/support/allenBradley-2-3")
epicsEnvSet("ADCORE","/APSshare/epics/synApps_6_3/support/areaDetector-R3-12-1/ADCore")
epicsEnvSet("ADSUPPORT","/APSshare/epics/synApps_6_3/support/areaDetector-R3-12-1/ADSupport")
epicsEnvSet("ULDAQ","/APSshare/epics/synApps_6_3/support/measComp-R4-2/libuldaq-1.2.1")
# Increase size of buffer for error logging from default 1256
errlogInit(20000)
################################################################################
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (20bmb.munch)
dbLoadDatabase("../../dbd/ioc20bmbLinux.dbd")
ioc20bmbLinux_registerRecordDeviceDriver(pdbbase)
< settings.iocsh
# Shell prompt
epicsEnvSet("IOCSH_PS1", "ioc20bmb> ")
# prefix used for all PVs in this IOC
epicsEnvSet("PREFIX", "20bmb:")
#For devIocStats
epicsEnvSet("ENGINEER", "engineer")
epicsEnvSet("LOCATION", "location")
epicsEnvSet("GROUP", "group")
# search path for database files
epicsEnvSet("EPICS_DB_INCLUDE_PATH", ".")
# search path for streamDevice protocol files
epicsEnvSet("STREAM_PROTOCOL_PATH", ".")
# search path for lua scripts
# epicsEnvSet("LUA_SCRIPT_PATH", "./scripts")
# Specify largest array CA will transport
# Note for N doubles, need N*8 bytes+some overhead
epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", 64010)
< common.iocsh
### save_restore setup, change SAVE_PATH if you are having autosave manage its own NFS mount
iocshLoad("/APSshare/epics/synApps_6_3/support/autosave-R5-11/iocsh/autosave_settings.iocsh", "PREFIX=20bmb:, SAVE_PATH=/net/s20data/xorApps/epics/synApps_6_3/ioc/20bmb/iocBoot/ioc20bmb")
# ### autosave_settings.iocsh ###
set_savefile_path("/net/s20data/xorApps/epics/synApps_6_3/ioc/20bmb/iocBoot/ioc20bmb", "autosave")
set_requestfile_path("/net/s20data/xorApps/epics/synApps_6_3/ioc/20bmb/iocBoot/ioc20bmb", "")
set_requestfile_path("/APSshare/epics/synApps_6_3/support/autosave-R5-11", "asApp/Db")
save_restoreSet_status_prefix("20bmb:")
save_restoreSet_CAReconnect(1)
save_restoreSet_IncompleteSetsOk(1)
save_restoreSet_DatedBackupFiles(1)
save_restoreSet_NumSeqFiles(3)
save_restoreSet_SeqPeriodInSeconds(300)
save_restoreSet_CallbackTimeout(-1)
dbLoadRecords("/APSshare/epics/synApps_6_3/support/autosave-R5-11/asApp/Db/save_restoreStatus.db", "P=20bmb:, DEAD_SECONDS=5")
iocshLoad("/APSshare/epics/synApps_6_3/support/autosave-R5-11/iocsh/save_restore.iocsh", "PREFIX=20bmb:, POSITIONS_FILE=auto_positions, SETTINGS_FILE=auto_settings")
# ### save_restore.iocsh ###
set_pass0_restoreFile("auto_positions.sav")
set_pass0_restoreFile("auto_settings.sav")
set_pass1_restoreFile("auto_settings.sav")
doAfterIocInit("create_monitor_set('auto_positions.req',5,'P=20bmb:')")
doAfterIocInit("create_monitor_set('auto_settings.req',30,'P=20bmb:')")
save_restoreSet_Debug(0)
iocshLoad("/APSshare/epics/synApps_6_3/support/autosave-R5-11/iocsh/autosaveBuild.iocsh", "PREFIX=20bmb:, BUILD_PATH=autosave")
# ### autosaveBuild.iocsh ###
set_pass0_restoreFile("built_positions.sav")
set_pass0_restoreFile("built_settings.sav")
set_pass1_restoreFile("built_settings.sav")
doAfterIocInit("create_monitor_set('built_positions.req',5, P=20bmb:)")
doAfterIocInit("create_monitor_set('built_settings.req',30, P=20bmb:)")
save_restoreSet_Debug(0)
epicsEnvSet("BUILT_SETTINGS", "built_settings.req")
epicsEnvSet("BUILT_POSITIONS", "built_positions.req")
autosaveBuild("autosave/built_settings.req", "_settings.req", 1)
autosaveBuild("autosave/built_positions.req", "_positions.req", 1)
set_requestfile_path("autosave")
#set_pass0_restoreFile("octupole_settings.sav")
#set_pass1_restoreFile("octupole_settings.sav")
###
# Setup search path for .req files. Include the db folders of every module specified in RELEASE
luaCmd("modules=require('modules'); for mod,path in pairs(modules) do set_requestfile_path(path .. '/db') end")
# Debug-output level
save_restoreSet_Debug(0)
# Access Security
#dbLoadRecords("$(TOP)/20bmbApp/Db/Security_Control.db","P=$(PREFIX)")
#asSetFilename("$(TOP)/iocBoot/accessSecurity.acf")
#asSetSubstitutions("P=$(PREFIX)")
### caputRecorder
iocshLoad("/APSshare/epics/synApps_6_3/support/caputRecorder-R1-7-6/iocsh/caputRecorder.iocsh", "PREFIX=20bmb:")
# ### caputRecorder.iocsh ###
dbLoadRecords("/APSshare/epics/synApps_6_3/support/caputRecorder-R1-7-6/caputRecorderApp/Db/caputPoster.db","P=20bmb:,N=300")
doAfterIocInit("registerCaputRecorderTrapListener('20bmb:caputRecorderCommand')")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/caputRecorder-R1-7-6/caputRecorderApp/Db/caputRecorder.db","P=20bmb:,N=300")
### Scan-support software
iocshLoad("/APSshare/epics/synApps_6_3/support/sscan-R2-11-6/iocsh/sscan.iocsh", "PREFIX=20bmb:, MAX_PTS=1000, REQ_FILE=saveData.req")
# ### sscan.iocsh ###
dbLoadRecords("/APSshare/epics/synApps_6_3/support/sscan-R2-11-6/sscanApp/Db/standardScans.db","P=20bmb:,MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=1000,MAXPTS4=1000,MAXPTSH=1000")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/sscan-R2-11-6/sscanApp/Db/saveData.db","P=20bmb:")
doAfterIocInit("saveData_Init('saveData.req', 'P=20bmb:')")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/sscan-R2-11-6/sscanApp/Db/scanProgress.db","P=20bmb:scanProgress:")
doAfterIocInit("seq &scanProgress, 'S=20bmb:, P=20bmb:scanProgress:'")
iocshLoad("/APSshare/epics/synApps_6_3/support/autosave-R5-11/iocsh/configMenu.iocsh", "PREFIX=20bmb:,CONFIG=scan1")
# ### configMenu.iocsh ###
dbLoadRecords("/APSshare/epics/synApps_6_3/support/autosave-R5-11/asApp/Db/configMenu.db","P=20bmb:,CONFIG=scan1")
doAfterIocInit("create_manual_set('scan1Menu.req','P=20bmb:,CONFIG=scan1,CONFIGMENU=1')")
#dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=$(PREFIX),CONFIG=scan1,ENABLE_SAVE=0")
### Stuff for user programming ###
iocshLoad("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/iocsh/userCalc.iocsh", "PREFIX=20bmb:, ARRAY_SIZE=8000")
# ### userCalc.iocsh ###
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userCalcGlobalEnable.db", "P=20bmb:")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userCalcs10.db", "P=20bmb:")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userCalcOuts10.db", "P=20bmb:")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userStringCalcs10.db", "P=20bmb:")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userArrayCalcs10.db", "P=20bmb:, N=8000")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userTransforms10.db", "P=20bmb:")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userAve10.db", "P=20bmb:")
iocshLoad("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/iocsh/userCalc_extra.iocsh", "PREFIX=20bmb:, N=1, ARRAY_SIZE=8000")
# ### userCalc.iocsh ###
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userCalcs10more.db","P=20bmb:,N10=10,N1=11,N2=12,N3=13,N4=14,N5=15,N6=16,N7=17,N8=18,N9=19")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userCalcOuts10more.db","P=20bmb:,N10=10,N1=11,N2=12,N3=13,N4=14,N5=15,N6=16,N7=17,N8=18,N9=19")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userStringCalcs10more.db","P=20bmb:,N10=10,N1=11,N2=12,N3=13,N4=14,N5=15,N6=16,N7=17,N8=18,N9=19")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userArrayCalcs10more.db","P=20bmb:,N10=10,N1=11,N2=12,N3=13,N4=14,N5=15,N6=16,N7=17,N8=18,N9=19,N=8000")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userTransforms10more.db","P=20bmb:,N10=10,N1=11,N2=12,N3=13,N4=14,N5=15,N6=16,N7=17,N8=18,N9=19")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userAve10more.db","P=20bmb:,N10=10,N1=11,N2=12,N3=13,N4=14,N5=15,N6=16,N7=17,N8=18,N9=19")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/lua-R3-1/luaApp/Db/luascripts10.db", "P=20bmb:, R=set1:")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/lua-R3-1/luaApp/Db/luascripts10.db", "P=20bmb:, R=set2:")
iocshLoad("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/iocsh/sseq.iocsh", "PREFIX=20bmb:, INSTANCE=ES:")
# ### sseq.iocsh ###
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/userStringSeqs10.db","P=20bmb:")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/db/editSseq.db", "P=20bmb:,Q=ES:")
doAfterIocInit("seq &editSseq, 'P=20bmb:,Q=ES:'")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/calcApp/Db/interp.db", "P=20bmb:,N=2000")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/calc-R3-7-5/calcApp/Db/interpNew.db", "P=20bmb:,Q=1,N=2000")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/busy-R1-7-4/busyApp/Db/busyRecord.db", "P=20bmb:,R=mybusy1")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/busy-R1-7-4/busyApp/Db/busyRecord.db", "P=20bmb:,R=mybusy2")
#dbLoadRecords("$(CALC)/calcApp/Db/FuncGen.db","P=$(PREFIX),Q=fgen,OUT=$(PREFIX)m7.VAL")
### Load database record for alive heartbeating support.
dbLoadRecords("/APSshare/epics/synApps_6_3/support/alive-R1-4-1/aliveApp/Db/alive.db", "P=20bmb:,IOCNM=ioc20bmb,RHOST=164.54.100.11")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/alive-R1-4-1/aliveApp/Db/aliveMSGCalc.db", "P=20bmb:")
#dbLoadTemplate("substitutions/scanParms.substitutions", "P=$(PREFIX)")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/iocStats-3-1-16/db/iocAdminSoft.db","IOC=20bmb:")
dbLoadRecords("/net/s20data/xorApps/epics/synApps_6_3/ioc/20bmb/20bmbApp/Db/iocAdminSoft_aliases.db","P=20bmb:")
###############################################################################
# Other devices
###############################################################################
# LabJack DAQs
# < cmds/LabJack.cmd
# Measurement computing CTR08
< cmds/usbctr.cmd
# < envPaths
## Register all support components
dbLoadDatabase "/APSshare/epics/synApps_6_3/support/measComp-R4-2/dbd/measCompApp.dbd"
# This command fails, so can we do without it?
#! measCompApp_registerRecordDeviceDriver pdbbase
# epicsEnvSet("PREFIX", "USBCTR0:")
epicsEnvSet("CTR_PREFIX", "20bmb:USBCTR0:")
# epicsEnvSet("PORT", "USBCTR_0")
epicsEnvSet("UNIQUE_ID", "214D5DB")
# epicsEnvSet("RNAME", "mca")
epicsEnvSet("SCALER_RNAME", "mca")
epicsEnvSet("RNAME", "mca")
epicsEnvSet("MCS_PREFIX", "20bmb:USBCTR0:MCS:")
epicsEnvSet("MAX_COUNTERS", "9")
epicsEnvSet("MAX_POINTS", "2048")
epicsEnvSet("POLL_TIME", "0.01")
epicsEnvSet("PORT", "USBCTR0")
# For MCA records FIELD=READ, for waveform records FIELD=PROC
# epicsEnvSet("FIELD", "PROC")
epicsEnvSet("CTR_FIELD", "READ")
## Set the minimum sleep time to 1 ms
# Removed in response to error: "asynSetMinTimerPeriod is not currently supported on this OS"
#! asynSetMinTimerPeriod(0.001)
## Configure port driver
# USBCTRConfig(portName, # The name to give to this asyn port driver
# uniqueID, # Device serial number.
# maxTimePoints, # Maximum number of time points for MCS
# pollTime, # Time to sleep between polls
USBCTRConfig("USBCTR0", "214D5DB", 2048, 0.01)
Error creating device with measCompCreateDevice
#asynSetTraceMask($(PORT), -1, ERROR|FLOW|DRIVER)
dbLoadTemplate("/APSshare/epics/synApps_6_3/support/measComp-R4-2/db/USBCTR.substitutions", "P=20bmb:USBCTR0:, PORT=USBCTR0")
# This loads the scaler record and supporting records
dbLoadRecords("/APSshare/epics/synApps_6_3/support/scaler-4-1/db/scaler.db", "P=20bmb:USBCTR0:, S=scaler1, DTYP=Asyn Scaler, OUT=@asyn(USBCTR), FREQ=10000000")
# This database provides the support for the MCS functions
dbLoadRecords("/APSshare/epics/synApps_6_3/support/measComp-R4-2/db/measCompMCS.template", "P=20bmb:USBCTR0:MCS:, PORT=USBCTR0, MAX_POINTS=2048")
# Load either MCA or waveform records below
# The number of records loaded must be the same as MAX_COUNTERS defined above
# Load the MCA records
dbLoadRecords("/APSshare/epics/synApps_6_3/support/mca-R7-10/mcaApp/Db/simple_mca.db", "P=20bmb:USBCTR0:MCS:, M=mca1, DTYP=asynMCA, INP=@asyn(USBCTR0 0), PREC=3, CHANS=2048")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/mca-R7-10/mcaApp/Db/simple_mca.db", "P=20bmb:USBCTR0:MCS:, M=mca2, DTYP=asynMCA, INP=@asyn(USBCTR0 1), PREC=3, CHANS=2048")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/mca-R7-10/mcaApp/Db/simple_mca.db", "P=20bmb:USBCTR0:MCS:, M=mca3, DTYP=asynMCA, INP=@asyn(USBCTR0 2), PREC=3, CHANS=2048")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/mca-R7-10/mcaApp/Db/simple_mca.db", "P=20bmb:USBCTR0:MCS:, M=mca4, DTYP=asynMCA, INP=@asyn(USBCTR0 3), PREC=3, CHANS=2048")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/mca-R7-10/mcaApp/Db/simple_mca.db", "P=20bmb:USBCTR0:MCS:, M=mca5, DTYP=asynMCA, INP=@asyn(USBCTR0 4), PREC=3, CHANS=2048")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/mca-R7-10/mcaApp/Db/simple_mca.db", "P=20bmb:USBCTR0:MCS:, M=mca6, DTYP=asynMCA, INP=@asyn(USBCTR0 5), PREC=3, CHANS=2048")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/mca-R7-10/mcaApp/Db/simple_mca.db", "P=20bmb:USBCTR0:MCS:, M=mca7, DTYP=asynMCA, INP=@asyn(USBCTR0 6), PREC=3, CHANS=2048")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/mca-R7-10/mcaApp/Db/simple_mca.db", "P=20bmb:USBCTR0:MCS:, M=mca8, DTYP=asynMCA, INP=@asyn(USBCTR0 7), PREC=3, CHANS=2048")
dbLoadRecords("/APSshare/epics/synApps_6_3/support/mca-R7-10/mcaApp/Db/simple_mca.db", "P=20bmb:USBCTR0:MCS:, M=mca9, DTYP=asynMCA, INP=@asyn(USBCTR0 8), PREC=3, CHANS=2048")
# This loads the waveform records
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)1, INP=@asyn($(PORT) 0), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)2, INP=@asyn($(PORT) 1), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)3, INP=@asyn($(PORT) 2), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)4, INP=@asyn($(PORT) 3), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)5, INP=@asyn($(PORT) 4), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)6, INP=@asyn($(PORT) 5), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)7, INP=@asyn($(PORT) 6), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)8, INP=@asyn($(PORT) 7), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)9, INP=@asyn($(PORT) 8), CHANS=$(MAX_POINTS)")
###############################################################################
iocInit
############################################################################
## EPICS R7.0.8
## Rev. 2024-01-08T15:12-0600
## Rev. Date build date/time:
############################################################################
20bmb:USBCTR0:PollTimeMS devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen1Period_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen1DutyCycle_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen1Delay_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen2Period_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen2DutyCycle_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen2Delay_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen3Period_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen3DutyCycle_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen3Delay_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen4Period_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen4DutyCycle_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen4Delay_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:MCS:ElapsedReal devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:MCS:Dwell_RBV devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PollSleepMS devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen1Period devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen1DutyCycle devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen1Delay devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen2Period devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen2DutyCycle devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen2Delay devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen3Period devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen3DutyCycle devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen3Delay devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen4Period devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen4DutyCycle devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen4Delay devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:MCS:PresetReal devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:MCS:Dwell devAsynFloat64::initCommon drvUserCreate
20bmb:USBCTR0:Bi1 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bi2 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bi3 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bi4 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bi5 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bi6 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bi7 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bi8 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo1_RBV devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo2_RBV devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo3_RBV devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo4_RBV devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo5_RBV devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo6_RBV devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo7_RBV devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo8_RBV devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:MCS:HardwareAcquiring devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Bo1 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo2 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo3 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo4 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo5 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo6 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo7 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bo8 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bd1 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bd2 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bd3 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bd4 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bd5 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bd6 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bd7 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:Bd8 devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen1Run devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen1IdleState devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen2Run devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen2IdleState devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen3Run devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen3IdleState devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen4Run devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:PulseGen4IdleState devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Counter1Reset devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Counter2Reset devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Counter3Reset devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Counter4Reset devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Counter5Reset devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Counter6Reset devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Counter7Reset devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Counter8Reset devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:MCS:EraseAll devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:MCS:EraseStart devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:MCS:StartAll devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:MCS:StopAll devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:MCS:ChannelAdvance devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:ModelNumber devAsynInt32::initCommon drvUserCreate
20bmb:USBCTR0:Li devAsynUInt32Digital::initCommon drvUserCreate
20bmb:USBCTR0
# Linux startup script
< envPaths
# Increase size of buffer for error logging from default 1256
errlogInit(20000)
################################################################################
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (20bmb.munch)
dbLoadDatabase("../../dbd/ioc20bmbLinux.dbd")
ioc20bmbLinux_registerRecordDeviceDriver(pdbbase)
< settings.iocsh
< common.iocsh
#- devIocStats
dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db","IOC=$(PREFIX)")
#- PV aliases change :: into :
dbLoadRecords("$(TOP)/20bmbApp/Db/iocAdminSoft_aliases.db","P=$(PREFIX)")
###############################################################################
# Other devices
###############################################################################
# LabJack DAQs
# < cmds/LabJack.cmd
# Measurement computing CTR08
< cmds/usbctr.cmd
###############################################################################
iocInit
###############################################################################
# Finish setting up the scaler
# For MCA records FIELD=READ, for waveform records FIELD=PROC
seq(USBCTR_SNL, "P=$(MCS_PREFIX), R=$(SCALER_RNAME), NUM_COUNTERS=$(MAX_COUNTERS), FIELD=$(CTR_FIELD)")
create_monitor_set("auto_settings.req",30,"P=$(CTR_PREFIX), MP=$(MCS_PREFIX)")
# write all the PV names to a local file
dbl > dbl-all.txt
# Diagnostic: CA links in all records
dbcar(0,1)
# print the time our boot was finished
date
# < envPaths
## Register all support components
dbLoadDatabase "$(MEASCOMP)/dbd/measCompApp.dbd"
# This command fails, so can we do without it?
#! measCompApp_registerRecordDeviceDriver pdbbase
epicsEnvSet("CTR_PREFIX", "$(PREFIX)USBCTR0:")
epicsEnvSet("UNIQUE_ID", "214D5DB") # From sticker on device, confirmed w/ instacal
epicsEnvSet("SCALER_RNAME", "mca")
epicsEnvSet("RNAME", "$(SCALER_RNAME)")
epicsEnvSet("MCS_PREFIX", "$(CTR_PREFIX)MCS:")
epicsEnvSet("MAX_COUNTERS", "9")
epicsEnvSet("MAX_POINTS", "2048")
epicsEnvSet("POLL_TIME", "0.01")
epicsEnvSet("PORT", "USBCTR0")
# For MCA records FIELD=READ, for waveform records FIELD=PROC
epicsEnvSet("CTR_FIELD", "READ")
## Set the minimum sleep time to 1 ms
# Removed in response to error: "asynSetMinTimerPeriod is not currently supported on this OS"
#! asynSetMinTimerPeriod(0.001)
## Configure port driver
# USBCTRConfig(portName, # The name to give to this asyn port driver
# uniqueID, # Device serial number.
# maxTimePoints, # Maximum number of time points for MCS
# pollTime, # Time to sleep between polls
USBCTRConfig("$(PORT)", "$(UNIQUE_ID)", $(MAX_POINTS), $(POLL_TIME))
#asynSetTraceMask($(PORT), -1, ERROR|FLOW|DRIVER)
dbLoadTemplate("$(MEASCOMP)/db/USBCTR.substitutions", "P=$(CTR_PREFIX), PORT=$(PORT)")
# This loads the scaler record and supporting records
dbLoadRecords("$(SCALER)/db/scaler.db", "P=$(CTR_PREFIX), S=scaler1, DTYP=Asyn Scaler, OUT=@asyn(USBCTR), FREQ=10000000")
# This database provides the support for the MCS functions
dbLoadRecords("$(MEASCOMP)/db/measCompMCS.template", "P=$(MCS_PREFIX), PORT=$(PORT), MAX_POINTS=$(MAX_POINTS)")
# Load either MCA or waveform records below
# The number of records loaded must be the same as MAX_COUNTERS defined above
# Load the MCA records
dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(MCS_PREFIX), M=$(RNAME)1, DTYP=asynMCA, INP=@asyn($(PORT) 0), PREC=3, CHANS=$(MAX_POINTS)")
dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(MCS_PREFIX), M=$(RNAME)2, DTYP=asynMCA, INP=@asyn($(PORT) 1), PREC=3, CHANS=$(MAX_POINTS)")
dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(MCS_PREFIX), M=$(RNAME)3, DTYP=asynMCA, INP=@asyn($(PORT) 2), PREC=3, CHANS=$(MAX_POINTS)")
dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(MCS_PREFIX), M=$(RNAME)4, DTYP=asynMCA, INP=@asyn($(PORT) 3), PREC=3, CHANS=$(MAX_POINTS)")
dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(MCS_PREFIX), M=$(RNAME)5, DTYP=asynMCA, INP=@asyn($(PORT) 4), PREC=3, CHANS=$(MAX_POINTS)")
dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(MCS_PREFIX), M=$(RNAME)6, DTYP=asynMCA, INP=@asyn($(PORT) 5), PREC=3, CHANS=$(MAX_POINTS)")
dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(MCS_PREFIX), M=$(RNAME)7, DTYP=asynMCA, INP=@asyn($(PORT) 6), PREC=3, CHANS=$(MAX_POINTS)")
dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(MCS_PREFIX), M=$(RNAME)8, DTYP=asynMCA, INP=@asyn($(PORT) 7), PREC=3, CHANS=$(MAX_POINTS)")
dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(MCS_PREFIX), M=$(RNAME)9, DTYP=asynMCA, INP=@asyn($(PORT) 8), PREC=3, CHANS=$(MAX_POINTS)")
# This loads the waveform records
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)1, INP=@asyn($(PORT) 0), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)2, INP=@asyn($(PORT) 1), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)3, INP=@asyn($(PORT) 2), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)4, INP=@asyn($(PORT) 3), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)5, INP=@asyn($(PORT) 4), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)6, INP=@asyn($(PORT) 5), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)7, INP=@asyn($(PORT) 6), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)8, INP=@asyn($(PORT) 7), CHANS=$(MAX_POINTS)")
# dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template", "P=$(MCS_PREFIX), R=$(RNAME)9, INP=@asyn($(PORT) 8), CHANS=$(MAX_POINTS)")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment