#!../../bin/linux-x86/asym ## You may have to change struckScaler to something else ## everywhere it appears in this file < envPaths # The name of the IOC, also prefix that will be used in front of hardware-based records epicsEnvSet("IOCNAME","ASYM") # Here the prefix is the combination of what Hall B uses before "_", and Hall D specific # prefix to distinguish applications from the two halls. epicsEnvSet("PREFIX", "hdtag:asym:") epicsEnvSet("IOCSH_PS1","iocAsym> ") epicsEnvSet("RNAME", "mca") epicsEnvSet("MAX_SIGNALS", "32") #epicsEnvSet("NFIFO", "1024") epicsEnvSet("NFIFO", "4096") epicsEnvSet("MAX_CHANS", "16777216" ) epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", "500000") epicsEnvSet("PORT", "$(PREFIX)") #epicsEnvSet("DWEL", "0.000976563" ) epicsEnvSet("DWEL", "0.0338299571" ) #epicsEnvSet("DWEL", "0.001" ) errlogInit(20000) cd ${TOP} ## Register all support components dbLoadDatabase "dbd/asym.dbd" asym_registerRecordDeviceDriver pdbbase # Load IOC status records dbLoadRecords("db/iocAdminSoft.db","IOC=$(IOCNAME)") ## Load record instances #drvSIS3820Config("Port name", # baseAddress, # interruptVector, # int interruptLevel, # channels, # signals, # use DMA # fifoBufferWords) #drvSIS3820Config($(PORT), 0xA8000000, 224, 6, $(NFIFO), $(MAX_SIGNALS), 1, 0x200000) drvSIS3820_LinuxConfig($(PORT), 0x09000000, 220, 6, $(NFIFO), $(MAX_SIGNALS), 0, 0x200000) # Load the MCA records dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)1, DTYP=asynMCA, INP=@asyn($(PORT) 0), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)2, DTYP=asynMCA, INP=@asyn($(PORT) 1), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)3, DTYP=asynMCA, INP=@asyn($(PORT) 2), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)4, DTYP=asynMCA, INP=@asyn($(PORT) 3), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)5, DTYP=asynMCA, INP=@asyn($(PORT) 4), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)6, DTYP=asynMCA, INP=@asyn($(PORT) 5), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)7, DTYP=asynMCA, INP=@asyn($(PORT) 6), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)8, DTYP=asynMCA, INP=@asyn($(PORT) 7), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)9, DTYP=asynMCA, INP=@asyn($(PORT) 8), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)10, DTYP=asynMCA, INP=@asyn($(PORT) 9), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)11, DTYP=asynMCA, INP=@asyn($(PORT) 10), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)12, DTYP=asynMCA, INP=@asyn($(PORT) 11), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)13, DTYP=asynMCA, INP=@asyn($(PORT) 12), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)14, DTYP=asynMCA, INP=@asyn($(PORT) 13), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)15, DTYP=asynMCA, INP=@asyn($(PORT) 14), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)16, DTYP=asynMCA, INP=@asyn($(PORT) 15), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)17, DTYP=asynMCA, INP=@asyn($(PORT) 16), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)18, DTYP=asynMCA, INP=@asyn($(PORT) 17), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)19, DTYP=asynMCA, INP=@asyn($(PORT) 18), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)20, DTYP=asynMCA, INP=@asyn($(PORT) 19), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)21, DTYP=asynMCA, INP=@asyn($(PORT) 20), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)22, DTYP=asynMCA, INP=@asyn($(PORT) 21), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)23, DTYP=asynMCA, INP=@asyn($(PORT) 22), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)24, DTYP=asynMCA, INP=@asyn($(PORT) 23), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)25, DTYP=asynMCA, INP=@asyn($(PORT) 24), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)26, DTYP=asynMCA, INP=@asyn($(PORT) 25), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)27, DTYP=asynMCA, INP=@asyn($(PORT) 26), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)28, DTYP=asynMCA, INP=@asyn($(PORT) 27), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)29, DTYP=asynMCA, INP=@asyn($(PORT) 28), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)30, DTYP=asynMCA, INP=@asyn($(PORT) 29), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)31, DTYP=asynMCA, INP=@asyn($(PORT) 30), PREC=3, CHANS=$(NFIFO)") dbLoadRecords("$(TOP)/db/simple_mca.db", "P=$(PREFIX), M=$(RNAME)32, DTYP=asynMCA, INP=@asyn($(PORT) 31), PREC=3, CHANS=$(NFIFO)") # This loads the scaler record and supporting records dbLoadRecords("$(TOP)/db/scaler32.db", "P=$(PREFIX), S=scaler, DTYP=Asyn Scaler, OUT=@asyn($(PORT)), FREQ=25000000") # This database provides the support for the MCS functions dbLoadRecords("$(TOP)/db/SIS38XX.template", "P=$(PREFIX), PORT=$(PORT), SCALER=scaler") dbLoadRecords("db/asym_scaler_common.db", "P=$(PREFIX)" ) dbLoadRecords("db/asym_fdbk.db", "HALL=HD, P=$(PREFIX), CHNUM=2, IGL=IGL1I00DI24_24M.RVAL") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=1") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=2") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=3") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=4") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=5") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=6") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=7") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=8") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=9") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=10") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=11") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=12") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=13") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=14") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=15") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=16") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=17") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=18") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=19") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=20") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=21") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=22") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=23") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=24") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=25") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=26") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=27") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=28") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=29") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=30") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=31") dbLoadRecords("db/asym_scaler_macro.db", "P=$(PREFIX), CHAN=32") # Load IOC status records #dbLoadRecords("db/iocAdminSoft.db","IOC=$(IOCNAME)") cd ${TOP}/iocBoot/${IOC} < asym_save_restore.cmd set_pass0_restoreFile("asym.sav") set_pass1_restoreFile("asym.sav") iocInit create_monitor_set("asym.req", 30, "PREF=hdtag:asym:") makeAutosaveFiles() dbpf( $(PREFIX)ReadAll.SCAN, "Passive" ) dbpf( $(PREFIX)ChannelAdvance, "0" ) dbpf( $(PREFIX)Channel1Source, "0" ) dbpf( $(PREFIX)Dwell, "$(DWEL)" ) dbpf( $(PREFIX)StartAll, "1" ) ## Start Linux-version sequence programs for scaler modules and MCA, not profiler specific seq(&SIS38XX_Linux_SNL, "P=$(PREFIX), R=$(RNAME), NUM_SIGNALS=$(MAX_SIGNALS), FIELD=READ") seq(&asymCalculations, "PREF=$(PREFIX)")