diff --git a/Makefile.EEE b/Makefile.EEE new file mode 100644 index 0000000..def8559 --- /dev/null +++ b/Makefile.EEE @@ -0,0 +1,31 @@ +include ${EPICS_ENV_PATH}/module.Makefile + +PROJECT=sinq + +USR_DEPENDENCIES = asyn,4.27.0 +USR_DEPENDENCIES += motor,6.10.0 +USR_DEPENDENCIES += synAppsStd,3.4.1 +USR_DEPENDENCIES += streamdevice,2.6.0 +USR_DEPENDENCIES += busy,1.6.0 +USR_DEPENDENCIES += pcre,8.36.0 + + +TEMPLATES += sinqEPICSApp/Db/dimetix.db +TEMPLATES += sinqEPICSApp/Db/slsvme.db +TEMPLATES += sinqEPICSApp/Db/spsamor.db +TEMPLATES += sinqEPICSApp/Db/el737Record.db + + +DBDS += sinqEPICSApp/src/sinq.dbd + +SUBSTITUTIONS=-none- + +OPIS=-none- + +# What we need at SINQ +SOURCES += sinqEPICSApp/src/devScalerEL737.c +SOURCES += sinqEPICSApp/src/EL734Driver.cpp +SOURCES += sinqEPICSApp/src/NanotecDriver.cpp +SOURCES += sinqEPICSApp/src/stptok.cpp + +# MISCS would be the place to keep the stream device template files \ No newline at end of file diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE index aa5f0b5..1afa2e0 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -32,3 +32,5 @@ INSTALL_LOCATION=/afs/psi.ch/project/sinqdev/sinqepicsapp # You must rebuild in the iocBoot directory for this to # take effect. #IOCS_APPL_TOP = +STATIC_BUILD=NO +SHARED_LIBRARIES=YES diff --git a/configure/RELEASE b/configure/RELEASE index d80c2fd..41fe199 100644 --- a/configure/RELEASE +++ b/configure/RELEASE @@ -25,16 +25,17 @@ TEMPLATE_TOP=$(EPICS_BASE)/templates/makeBaseApp/top #SNCSEQ=$(EPICS_BASE)/../modules/soft/seq # EPICS_BASE usually appears last so other apps can override stuff: -EPICS_BASE=/usr/local/epics +EPICS_BASE=/opt/epics/bases/base-3.14.12.5 # Set RULES here if you want to take build rules from somewhere # other than EPICS_BASE: #RULES=/path/to/epics/support/module/rules/x-y -MOTOR=/usr/local/epics/support/motor-6-7 -ASYN=/usr/local/epics/support/asyn-4-18 -STD=/usr/local/epics/support/std-3-1 -ANC=/usr/local/epics/anc350v17 -STREAMS=/usr/local/epics/support/StreamDevice-2-6 -LAKESHORE336=/usr/local/epics/support/lakeshore336 -BUSY=/usr/local/epics/support/busy-1-4 -OXINSTCRYOJET=/usr/local/epics/support/OxInstCryojet-2-18-3 +MOTOR=/opt/epics/modules/motor/6.10.0/3.14.12.5 +ASYN=/opt/epics/modules/asyn/4.27.0/3.14.12.5 +SYNAPPSSTD=/opt/epics/modules/synAppsStd/3.4.1/3.14.12.5/ +#ANC=/usr/local/epics/anc350v17 +STREAMS=/opt/epics/modules/streamdevice/2.6.0/3.14.12.5 +#LAKESHORE336=/usr/local/epics/support/lakeshore336 +BUSY=/opt/epics/modules/busy/1.6.0/3.14.12.5 +#OXINSTCRYOJET=/usr/local/epics/support/OxInstCryojet-2-18-3 +PCRE=/opt/epics/modules/pcre/8.36.0/3.14.12.5 diff --git a/essst.cmd b/essst.cmd new file mode 100755 index 0000000..088a5a2 --- /dev/null +++ b/essst.cmd @@ -0,0 +1,61 @@ +###!/opt/epics/modules/environment/1.8.0/3.14.12.5/bin/centos7-x86_64/iocsh + +var requireDebug 2 + +require sinq, local + + +#---------- connect to controllers +drvAsynIPPortConfigure("serial1", "localhost:60001",0,0,0) +drvAsynIPPortConfigure("serial2", "localhost:60002",0,0,0) +drvAsynIPPortConfigure("serial3", "localhost:60003",0,0,0) +EL734CreateController("mota","serial1",12); +EL734CreateController("motb","serial2",12); +EL734CreateController("motc","serial3",12); + +### Motors + +dbLoadRecords("asynRecord.db","P=SQ:AMOR:,R=serial1,PORT=serial1,ADDR=0,OMAX=80,IMAX=80") +dbLoadRecords("asynRecord.db","P=SQ:AMOR:,R=serial2,PORT=serial1,ADDR=0,OMAX=80,IMAX=80") +dbLoadRecords("asynRecord.db","P=SQ:AMOR:,R=serial3,PORT=serial1,ADDR=0,OMAX=80,IMAX=80") + +dbLoadTemplate "mota.substitutions" +dbLoadTemplate "motb.substitutions" +dbLoadTemplate "motc.substitutions" + + +#--------- load EL737 counter box +drvAsynIPPortConfigure("cter1","localhost:62000",0,0,0) +dbLoadRecords("asynRecord.db","P=SQ:AMOR:,R=cter1,PORT=cter1,ADDR=0,OMAX=80,IMAX=80") +dbLoadRecords("el737Record.db") + +#asynSetTraceIOMask("cter1",0,2) + +#----------- load Magnets +drvAsynIPPortConfigure("slsvme", "localhost:60066",0,0,0) +#drvAsynIPPortConfigure("slsvme", "localhost:8080",0,0,0) + +dbLoadRecords("asynRecord.db","P=SQ:AMOR:,R=slsvme,PORT=slsvme,ADDR=0,OMAX=80,IMAX=80") + +epicsEnvSet ("STREAM_PROTOCOL_PATH", "$(TOP)/db:.") + +dbLoadRecords("slsvme.db","PREFIX=SQ:AMOR:PBY:,NO=1") +dbLoadRecords("slsvme.db","PREFIX=SQ:AMOR:FMA:,NO=2") +dbLoadRecords("slsvme.db","PREFIX=SQ:AMOR:ABY:,NO=3") + +#-------------- load SPS +drvAsynIPPortConfigure("sps1", "localhost:60077",0,0,0) +dbLoadRecords("asynRecord.db","P=SQ:AMOR:,R=spsdirect,PORT=sps1,ADDR=0,OMAX=80,IMAX=80") +dbLoadRecords("spsamor.db","PREFIX=SQ:AMOR:SPS1:") + +#------------- Load dimetix distance measurement device +drvAsynIPPortConfigure("dimetix", "localhost:60088",0,0,0) +dbLoadRecords("asynRecord.db","P=SQ:AMOR:,R=dimetixdirect,PORT=dimetix,ADDR=0,OMAX=80,IMAX=80") +dbLoadRecords("dimetix.db","PREFIX=SQ:AMOR:DIMETIX:") + + + +iocInit + +## Start any sequence programs +#seq sncxxx,"user=koenneckeHost" diff --git a/iocBoot/iocsinqEPICS/envPaths b/iocBoot/iocsinqEPICS/envPaths index 73243fb..f2d6760 100644 --- a/iocBoot/iocsinqEPICS/envPaths +++ b/iocBoot/iocsinqEPICS/envPaths @@ -1,8 +1,10 @@ -epicsEnvSet("ARCH","linux-x86-debug") -epicsEnvSet("IOC","iocsinqEPICS") + +epicsEnvSet("ARCH","centos7-x86_64") +epicsEnvSet("IOC","sinqEPICS") epicsEnvSet("TOP","/afs/psi.ch/project/sinqdev/sinqepicsapp") -epicsEnvSet("EPICS_BASE","/usr/local/epics") -epicsEnvSet("ASYN","/usr/local/epics/support/asyn-4-18") -epicsEnvSet("MOTOR","/usr/local/epics/support/motor-6-7") -epicsEnvSet("LAKESHORE336","/usr/local/epics/support/lakeshore336") -epicsEnvSet("OXINSTCRYOJET","/usr/local/epics/support/OxInstCryojet-2-18-3") +epicsEnvSet("EPICS_BASE","/opt/epics/bases/base-3.14.12.5") +epicsEnvSet("ASYN","/opt/epics/modules/asyn/4.27.0") +epicsEnvSet("MOTOR","/opt/amor/epics") +epicsEnvSet("SYNAPPSSTD","/opt/epics/modules/synAppsStd/3.4.1") +#epicsEnvSet("LAKESHORE336","/usr/local/epics/support/lakeshore336") +epicsEnvSet("STREAM","/opt/epics/modules/streamdevice/2.7.1") diff --git a/iocBoot/iocsinqEPICS/st.cmd b/iocBoot/iocsinqEPICS/st.cmd index cade92a..9e4f88b 100755 --- a/iocBoot/iocsinqEPICS/st.cmd +++ b/iocBoot/iocsinqEPICS/st.cmd @@ -1,41 +1,42 @@ -#!../../bin/linux-x86/sinqEPICS +#!/opt/amor/epics/sinqEPICS -## You may have to change sinqEPICS to something else -## everywhere it appears in this file + +cd /opt/amor/epics < envPaths -cd ${TOP} ## Register all support components dbLoadDatabase "dbd/sinqEPICS.dbd" dbLoadDatabase "dbd/sinq.dbd" sinqEPICS_registerRecordDeviceDriver pdbbase -## Load record instances -#dbLoadRecords("db/xxx.db","user=koenneckeHost") - -#---------- load EL734 motor controller -drvAsynIPPortConfigure("serial1", "narziss-ts:3002",0,0,0) -#drvAsynIPPortConfigure("serial1", "localhost:8080",0,0,0) -EL734CreateController("mota","serial1",6); +#---------- connect to controllers +drvAsynIPPortConfigure("serial1", "localhost:60001",0,0,0) +drvAsynIPPortConfigure("serial2", "localhost:60002",0,0,0) +drvAsynIPPortConfigure("serial3", "localhost:60003",0,0,0) +EL734CreateController("mota","serial1",12); +EL734CreateController("motb","serial2",12); +EL734CreateController("motc","serial3",12); ### Motors -dbLoadRecords("$(ASYN)/db/asynRecord.db","P=NZ:,R=serial1,PORT=serial1,ADDR=0,OMAX=80,IMAX=80") +dbLoadRecords("$(ASYN)/db/asynRecord.db","P=SQ:AMOR:,R=serial1,PORT=serial1,ADDR=0,OMAX=80,IMAX=80") +dbLoadRecords("$(ASYN)/db/asynRecord.db","P=SQ:AMOR:,R=serial2,PORT=serial1,ADDR=0,OMAX=80,IMAX=80") +dbLoadRecords("$(ASYN)/db/asynRecord.db","P=SQ:AMOR:,R=serial3,PORT=serial1,ADDR=0,OMAX=80,IMAX=80") - -cd ${TOP}/iocBoot/${IOC} -dbLoadTemplate "motor.substitutions.el734" +dbLoadTemplate "mota.substitutions" +dbLoadTemplate "motb.substitutions" +dbLoadTemplate "motc.substitutions" #--------- load EL737 counter box -drvAsynIPPortConfigure("cter1","narziss-ts:3003",0,0,0) -dbLoadRecords("$(ASYN)/db/asynRecord.db","P=NZ:,R=cter1,PORT=cter1,ADDR=0,OMAX=80,IMAX=80") +drvAsynIPPortConfigure("cter1","localhost:62000",0,0,0) +dbLoadRecords("$(ASYN)/db/asynRecord.db","P=SQ:AMOR:,R=cter1,PORT=cter1,ADDR=0,OMAX=80,IMAX=80") dbLoadRecords("${TOP}/db/el737Record.db") -asynSetTraceIOMask("cter1",0,2) +#asynSetTraceIOMask("cter1",0,2) iocInit diff --git a/iocBoot/iocsinqEPICS/stdimetix.cmd b/iocBoot/iocsinqEPICS/stdimetix.cmd new file mode 100755 index 0000000..5f9ef98 --- /dev/null +++ b/iocBoot/iocsinqEPICS/stdimetix.cmd @@ -0,0 +1,34 @@ +#!../../bin/centos7-x86_64/sinqEPICS +# for debugging.................. +## You may have to change sinqEPICS to something else +## everywhere it appears in this file + +< envPaths + +cd ${TOP} + +## Register all support components +dbLoadDatabase "dbd/sinqEPICS.dbd" +dbLoadDatabase "dbd/sinq.dbd" +sinqEPICS_registerRecordDeviceDriver pdbbase + +## Load record instances +#dbLoadRecords("db/xxx.db","user=koenneckeHost") + + +#---------- Install SPS +drvAsynIPPortConfigure("dimetix", "localhost:64000",0,0,0) +#drvAsynIPPortConfigure("slsvme", "localhost:8080",0,0,0) + +dbLoadRecords("$(ASYN)/db/asynRecord.db","P=SQ:AMOR:,R=dimetix,PORT=dimetix,ADDR=0,OMAX=80,IMAX=80") + +epicsEnvSet ("STREAM_PROTOCOL_PATH", "$(TOP)/sinqEPICSApp/Db:.") + +cd ${TOP}/iocBoot/iocsinqEPICS +dbLoadRecords("$(TOP)/sinqEPICSApp/Db/dimetix.db","PREFIX=SQ:AMOR:DIMETIX:") + + +iocInit + +## Start any sequence programs +#seq sncxxx,"user=koenneckeHost" diff --git a/iocBoot/iocsinqEPICS/stslsvme.cmd b/iocBoot/iocsinqEPICS/stslsvme.cmd new file mode 100755 index 0000000..c8f22b6 --- /dev/null +++ b/iocBoot/iocsinqEPICS/stslsvme.cmd @@ -0,0 +1,34 @@ +#!../../bin/centos7-x86_64/sinqEPICS +# for debugging.................. +## You may have to change sinqEPICS to something else +## everywhere it appears in this file + +< envPaths + +cd ${TOP} + +## Register all support components +dbLoadDatabase "dbd/sinqEPICS.dbd" +dbLoadDatabase "dbd/sinq.dbd" +sinqEPICS_registerRecordDeviceDriver pdbbase + +## Load record instances +#dbLoadRecords("db/xxx.db","user=koenneckeHost") + + +#---------- Install SLSVME +drvAsynIPPortConfigure("slsvme", "mpc2084:60066",0,0,0) +#drvAsynIPPortConfigure("slsvme", "localhost:8080",0,0,0) + +dbLoadRecords("$(ASYN)/db/asynRecord.db","P=SQ:AMOR:,R=slsvme,PORT=slsvme,ADDR=0,OMAX=80,IMAX=80") + +epicsEnvSet ("STREAM_PROTOCOL_PATH", "$(TOP)/sinqEPICSApp/Db:.") + +cd ${TOP}/iocBoot/iocsinqEPICS +dbLoadRecords("slsvme.db","PREFIX=SQ:AMOR:PBY:,NO=1") + + +iocInit + +## Start any sequence programs +#seq sncxxx,"user=koenneckeHost" diff --git a/iocBoot/iocsinqEPICS/stsps.cmd b/iocBoot/iocsinqEPICS/stsps.cmd new file mode 100755 index 0000000..8533e81 --- /dev/null +++ b/iocBoot/iocsinqEPICS/stsps.cmd @@ -0,0 +1,34 @@ +#!../../bin/centos7-x86_64/sinqEPICS +# for debugging.................. +## You may have to change sinqEPICS to something else +## everywhere it appears in this file + +< envPaths + +cd ${TOP} + +## Register all support components +dbLoadDatabase "dbd/sinqEPICS.dbd" +dbLoadDatabase "dbd/sinq.dbd" +sinqEPICS_registerRecordDeviceDriver pdbbase + +## Load record instances +#dbLoadRecords("db/xxx.db","user=koenneckeHost") + + +#---------- Install SPS +drvAsynIPPortConfigure("spss5", "localhost:63000",0,0,0) +#drvAsynIPPortConfigure("slsvme", "localhost:8080",0,0,0) + +dbLoadRecords("$(ASYN)/db/asynRecord.db","P=SQ:AMOR:,R=spss5,PORT=spss5,ADDR=0,OMAX=80,IMAX=80") + +epicsEnvSet ("STREAM_PROTOCOL_PATH", "$(TOP)/sinqEPICSApp/Db:.") + +cd ${TOP}/iocBoot/iocsinqEPICS +dbLoadRecords("$(TOP)/sinqEPICSApp/Db/spsamor.db","PREFIX=SQ:AMOR:SPSS5:") + + +iocInit + +## Start any sequence programs +#seq sncxxx,"user=koenneckeHost" diff --git a/sinqEPICSApp/Db/Makefile b/sinqEPICSApp/Db/Makefile index 983981d..9ddbce8 100644 --- a/sinqEPICSApp/Db/Makefile +++ b/sinqEPICSApp/Db/Makefile @@ -10,7 +10,7 @@ include $(TOP)/configure/CONFIG #---------------------------------------------------- # Create and install (or just install) into /db # databases, templates, substitutions like this -#DB += xxx.db +DB_INSTALL += slsvme.proto #---------------------------------------------------- # If .db template is not named *.template add diff --git a/sinqEPICSApp/Db/dimetix.db b/sinqEPICSApp/Db/dimetix.db new file mode 100644 index 0000000..00c5513 --- /dev/null +++ b/sinqEPICSApp/Db/dimetix.db @@ -0,0 +1,40 @@ + +# DB file for dimetix laser distance measurement device + +## +## Switch the laser +## +record(bo, "$(PREFIX)LASER") { + field(DESC, "Switch laser on and off") + field(DTYP,"stream") + field(OUT,"@dimetix.proto setlaser() dimetix 0") + field(PINI, "YES") + field(VAL, "0") + field(ZNAM, "OFF") + field(ONAM, "ON") +} + +## +## Read the distance +## +record(ai, "$(PREFIX)DIST") { + field(DTYP, "stream") + field(DESC, "Distance") + field(INP, "@dimetix.proto read() dimetix 0") + field(SCAN, "1 second") + field(PREC, "1") + field(EGU, "mm") +} + + +## +## Set the readback (for simulation purposes only) +## +record(ao, "$(PREFIX)SimVal") { + field(DTYP, "stream") + field(DESC, "Set readback for simulation") + field(OUT, "@dimetix.proto setreadback() dimetix 0") + field(PREC, "1") + field(EGU, "mm") +} + diff --git a/sinqEPICSApp/Db/dimetix.proto b/sinqEPICSApp/Db/dimetix.proto new file mode 100644 index 0000000..a744719 --- /dev/null +++ b/sinqEPICSApp/Db/dimetix.proto @@ -0,0 +1,23 @@ +# Streamdevice protocol file for a Dimetix distance measuring device as used at +# AMOR + +InTerminator = "\n"; +OutTerminator = "\r\n"; +ExtraInput = Ignore; + +setlaser { + out "%{s0p|s0o}"; + in "g0?"; +} + +setreadback { + out "setval %d"; + in "g0?"; +} + +read { + out "s0g"; + in "g0g+%d"; + @mismatch {in "@E213"} +} + diff --git a/sinqEPICSApp/Db/slsvme.db b/sinqEPICSApp/Db/slsvme.db new file mode 100644 index 0000000..d6f079b --- /dev/null +++ b/sinqEPICSApp/Db/slsvme.db @@ -0,0 +1,94 @@ +# Database definition for the SLS VME magnets as installed at AMOR + +## +## Read the High Limit +## +record(ai, "$(PREFIX)HighLim") { + field(DTYP, "stream") + field(DESC, "High Current Limit") + field(INP, "@slsvme.proto read($(NO),hl) slsvme 0") + field(SCAN, "1 second") + field(PREC, "3") + field(EGU, "A") +} + +## +## Read the High Limit +## +record(ai, "$(PREFIX)LowLim") { + field(DTYP, "stream") + field(DESC, "Low Current Limit") + field(INP, "@slsvme.proto read($(NO),ll) slsvme 0") + field(SCAN, "1 second") + field(PREC, "3") + field(EGU, "A") +} + +## +## Read the Error code +## +record(ai, "$(PREFIX)ErrCode") { + field(DTYP, "stream") + field(DESC, "Error Code") + field(INP, "@slsvme.proto read($(NO),err) slsvme 0") + field(SCAN, "1 second") + field(PREC, "3") + field(EGU, "A") +} + +## +## Read the textual representation of the error. +## +record(stringin, "$(PREFIX)ErrText") { + field(DTYP, "stream") + field(INP, "@slsvme.proto readErrTxt($(NO)) slsvme 0") + field(SCAN, "1 second") + field(PINI, "YES") +} + + +## +## Read the Current +## +record(ai, "$(PREFIX)CurRBV") { + field(DTYP, "stream") + field(DESC, "Low Current Limit") + field(INP, "@slsvme.proto read($(NO),cur) slsvme 0") + field(SCAN, "1 second") + field(PREC, "3") + field(EGU, "A") +} + +## +## Set the current +## +record(ao, "$(PREFIX)CurSet") { + field(DTYP, "stream") + field(DESC, "Setpoint current") + field(OUT, "@slsvme.proto write($(NO),cur) slsvme 0") + field(PREC, "3") + field(EGU, "A") +} + +## +## Read power status of the magnet +## +record(bi, "$(PREFIX)PowerStatusRBV") { + field(DESC, "Readback of the power status") + field(DTYP, "stream") + field(INP, "@slsvme.proto readonoff($(NO)) slsvme 0") + field(SCAN, "1 second") + field(ZNAM, "off") + field(ONAM, "on") +} + +## +## Set the power status +## +record(bo, "$(PREFIX)PowerStatus") { + field(DESC, "Set the power status") + field(DTYP, "stream") + field(OUT, "@slsvme.proto setpower($(NO)) slsvme 0") + field(ZNAM, "on") + field(ONAM, "off") +} diff --git a/sinqEPICSApp/Db/slsvme.proto b/sinqEPICSApp/Db/slsvme.proto new file mode 100644 index 0000000..dfcbc2f --- /dev/null +++ b/sinqEPICSApp/Db/slsvme.proto @@ -0,0 +1,31 @@ +# Streamdevice protocol file for the PSI SLS VME magnet controller used at AMOR + +InTerminator = "\n"; +OutTerminator = "\r\n"; +#ExtraInput = Ignore; + +read { + out "r \$1 \$2"; + in "\$1 \$2 %f"; +} + +readErrTxt { + out "r \$1 errtext"; + in "\$1 errtext %s"; +} + + +write { + out "w \$1 \$2 %f"; + in "OK"; +} + +readonoff { + out "r \$1 onoff"; + in "\$1 onoff %{off|on}"; +} + +setpower { + out "w \$1 %{on|off}"; + in "OK"; +} \ No newline at end of file diff --git a/sinqEPICSApp/Db/spsamor.db b/sinqEPICSApp/Db/spsamor.db new file mode 100644 index 0000000..b202782 --- /dev/null +++ b/sinqEPICSApp/Db/spsamor.db @@ -0,0 +1,32 @@ +# DB definition for a SPS-S5 with the custom RS232 interface as used at SINQ. + +#The digital inputs. Ignore the first one, which is the response character R + +record(waveform, "$(PREFIX)DigitalInput") { + field(DTYP, "stream") + field(INP, "@spss5.proto readDigital() spss5 0") + field(SCAN, "5 second") + field(NELM, "16") + field(FTVL, "LONG") + field(PREC, "1") +} + +# The analog inputs, again ignore the first one as it is the response character A +record(waveform, "$(PREFIX)AnalogInput") { + field(DTYP, "stream") + field(INP, "@spss5.proto readAnalog() spss5 0") + field(SCAN, "5 second") + field(NELM, "8") + field(FTVL, "LONG") + field(PREC, "1") +} + +# This is forwarding the S0001 style strings to the hardware. This is the easiest solution but requires +# Hardware knowledge upstream. Which is required anyway. The syntax is: SBBBI with 3 characters for the byte +# to set and one character for the bit in the byte. The Byte must always be filled with 0 to the left. +record(stringout, "$(PREFIX)Push") { + field(DESC, "String for pushing buttons") + field(DTYP, "stream") + field(OUT, "@spss5.proto push() spss5 0") +} + diff --git a/sinqEPICSApp/Db/spss5.proto b/sinqEPICSApp/Db/spss5.proto new file mode 100644 index 0000000..71216bd --- /dev/null +++ b/sinqEPICSApp/Db/spss5.proto @@ -0,0 +1,25 @@ +# Streamdevice protocol file for the Siemens SPS-S5 with the custom RS232 interface as used at +# AMOR + +InTerminator = "\n"; +OutTerminator = "\r\n"; +ExtraInput = Ignore; + + +readDigital { + out "R"; + separator=""; + in "\?%d"; +} + +readAnalog { + out "A"; + separator=""; + in "\?%d"; +} + + +push { + out "%s"; +} + diff --git a/sinqEPICSApp/src/Makefile b/sinqEPICSApp/src/Makefile index 8813b7e..70bc912 100644 --- a/sinqEPICSApp/src/Makefile +++ b/sinqEPICSApp/src/Makefile @@ -17,15 +17,15 @@ sinqEPICS_DBD += base.dbd # Include dbd files from all support applications: sinqEPICS_DBD += sinq.dbd -sinqEPICS_DBD += pmacAsynIPPort.dbd pmacAsynMotorPort.dbd +#sinqEPICS_DBD += pmacAsynIPPort.dbd pmacAsynMotorPort.dbd # Add all the support libraries needed by this IOC -sinqEPICS_LIBS += motor asyn std anc350 anc350AsynMotor stream busy +sinqEPICS_LIBS += motor asyn busy synAppsStd streamdevice pcre # sinqEPICS_registerRecordDeviceDriver.cpp derives from sinqEPICS.dbd sinqEPICS_SRCS += sinqEPICS_registerRecordDeviceDriver.cpp -sinqEPICS_SRCS += EL734Driver.cpp devScalerEL737.c pmacAsynIPPort.c -sinqEPICS_SRCS += pmacController.cpp pmacAxis.cpp +sinqEPICS_SRCS += EL734Driver.cpp +sinqEPICS_SRCS += devScalerEL737.c sinqEPICS_SRCS += NanotecDriver.cpp stptok.cpp sinqEPICS_SRCS += PhytronDriver.cpp diff --git a/sinqEPICSApp/src/el737Record.db b/sinqEPICSApp/src/el737Record.db index bde75f7..3da0f9a 100644 --- a/sinqEPICSApp/src/el737Record.db +++ b/sinqEPICSApp/src/el737Record.db @@ -4,6 +4,6 @@ record(scaler,"") field(NAME,"NZ:counter") field(DESC,"NARZIS EL737 counter") field(DTYP,"asynScalerEL737") - field(OUT,"INST_IO @asyn(cter1,0)" + field(OUT,"INST_IO @asyn(cter1,0)") } diff --git a/sinqEPICSApp/src/sinq.dbd b/sinqEPICSApp/src/sinq.dbd index 2fa4b8c..7400658 100644 --- a/sinqEPICSApp/src/sinq.dbd +++ b/sinqEPICSApp/src/sinq.dbd @@ -4,21 +4,20 @@ registrar(EL734Register) registrar(PhytronRegister) registrar(NanotecRegister) -addpath "/usr/local/epics/support/asyn-4-18/dbd" -addpath "/usr/local/epics/dbd" -addpath "/usr/local/epics/support/motor-6-7/dbd" -addpath "/usr/local/epics/support/std-3-1/dbd" -addpath "/usr/local/epics/anc350v17/dbd" -include "drvAsynIPPort.dbd" -include "motorRecord.dbd" -include "motorSupport.dbd" -include "anc350AsynMotor.dbd" +addpath "/opt/epics/modules/asyn/4.27.0/3.14.12.5/dbd" +addpath "/opt/epics/bases/base-3.14.12.5/dbd" +addpath "/opt/epics/modules/motor/6.10.0/3.14.12.5/dbd" +#addpath "/usr/local/epics/support/std-3-1/dbd" +addpath "/opt/epics/modules/synAppsStd/3.4.1/3.14.12.5/dbd" +include "asyn.dbd" +include "motor.dbd" +#include "motorSupport.dbd" -include "scalerRecord.dbd" +include "synAppsStd.dbd" device(scaler,INST_IO,devScalerEL737,"asynScalerEL737") #--------- For lakeshore -addpath "/usr/local/epics/support/StreamDevice-2-6/dbd" -include "stream.dbd" -addpath "/usr/local/epics/support/busy-1-4/dbd" -include "busySupport.dbd" +addpath "/opt/epics/modules/streamdevice/2.6.0/3.14.12.5/dbd" +include "streamdevice.dbd" +addpath "/opt/epics/modules/busy/1.6.0/3.14.12.5/dbd" +include "busy.dbd"