diff --git a/PS300/PS300-IOC-01App/src/build.mak b/PS300/PS300-IOC-01App/src/build.mak index e43786763..b356d27ae 100644 --- a/PS300/PS300-IOC-01App/src/build.mak +++ b/PS300/PS300-IOC-01App/src/build.mak @@ -29,6 +29,7 @@ $(APPNAME)_DBD += calcSupport.dbd $(APPNAME)_DBD += asyn.dbd $(APPNAME)_DBD += drvAsynSerialPort.dbd $(APPNAME)_DBD += drvAsynIPPort.dbd +$(APPNAME)_DBD += drvPrologixGPIB.dbd $(APPNAME)_DBD += luaSupport.dbd $(APPNAME)_DBD += stream.dbd ## add other dbd here ## diff --git a/PS300/iocBoot/iocPS300-IOC-01/config.xml b/PS300/iocBoot/iocPS300-IOC-01/config.xml index 992b3ab8e..597e7a286 100644 --- a/PS300/iocBoot/iocPS300-IOC-01/config.xml +++ b/PS300/iocBoot/iocPS300-IOC-01/config.xml @@ -5,7 +5,9 @@ IOC to control the Stanford powersupply 300 series IOCs - + + + diff --git a/PS300/iocBoot/iocPS300-IOC-01/st-common.cmd b/PS300/iocBoot/iocPS300-IOC-01/st-common.cmd index d1b1a56f9..696caa1fd 100644 --- a/PS300/iocBoot/iocPS300-IOC-01/st-common.cmd +++ b/PS300/iocBoot/iocPS300-IOC-01/st-common.cmd @@ -4,24 +4,31 @@ epicsEnvSet "DEVICE" "L0" ##ISIS## Run IOC initialisation < $(IOCSTARTUP)/init.cmd +stringiftest("GPIB", "$(IPADDR=)", 3) +stringiftest("SERIAL", "$(PORT=)", 3) + ## Device simulation mode IP configuration $(IFDEVSIM) drvAsynIPPortConfigure("$(DEVICE)", "localhost:$(EMULATOR_PORT=57677)") ## For recsim: $(IFRECSIM) drvAsynSerialPortConfigure("$(DEVICE)", "$(PORT=NUL)", 0, 1, 0, 0) -## For real device: -$(IFNOTDEVSIM) $(IFNOTRECSIM) drvAsynSerialPortConfigure("$(DEVICE)", "$(PORT=NO_PORT_MACRO)", 0, 0, 0, 0) -$(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", -1, "baud", "$(BAUD=9600)") -$(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", -1, "bits", "$(BITS=8)") -$(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", -1, "parity", "$(PARITY=none)") -$(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", -1, "stop", "$(STOP=1)") +## For real RS2323 serial device: +$(IFSERIAL) $(IFNOTDEVSIM) $(IFNOTRECSIM) drvAsynSerialPortConfigure("$(DEVICE)", "$(PORT=NO_PORT_MACRO)", 0, 0, 0, 0) +$(IFSERIAL) $(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", -1, "baud", "$(BAUD=9600)") +$(IFSERIAL) $(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", -1, "bits", "$(BITS=8)") +$(IFSERIAL) $(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", -1, "parity", "$(PARITY=none)") +$(IFSERIAL) $(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", -1, "stop", "$(STOP=1)") ## Hardware flow control off -$(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", 0, "clocal", "Y") -$(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)",0,"crtscts","N") +$(IFSERIAL) $(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)", 0, "clocal", "Y") +$(IFSERIAL) $(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)",0,"crtscts","N") ## Software flow control off -$(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)",0,"ixon","N") -$(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)",0,"ixoff","N") +$(IFSERIAL) $(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)",0,"ixon","N") +$(IFSERIAL) $(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)",0,"ixoff","N") + +## GPIB prologix +$(IFGPIB) $(IFNOTDEVSIM) $(IFNOTRECSIM) prologixGPIBConfigure("$(DEVICE)", "$(IPADDR=)") +$(IFGPIB) $(IFNOTDEVSIM) $(IFNOTRECSIM) prologixGPIBSetOption("$(DEVICE)", "timeout_ms", 2000) ## Load record instances @@ -29,7 +36,7 @@ $(IFNOTDEVSIM) $(IFNOTRECSIM) asynSetOption("$(DEVICE)",0,"ixoff","N") < $(IOCSTARTUP)/dbload.cmd ## Load our record instances -dbLoadRecords("$(PS300)/db/devSRS_PS$(MODEL=350_pos).db","PVPREFIX=$(MYPVPREFIX),P=$(MYPVPREFIX),R=$(IOCNAME):,A=-1, PORT=$(DEVICE)") +dbLoadRecords("$(PS300)/db/devSRS_PS$(MODEL).db","PVPREFIX=$(MYPVPREFIX),P=$(MYPVPREFIX),R=$(IOCNAME):,A=$(GPIBADDR),PORT=$(DEVICE)") dbLoadRecords("$(PS300)/db/devSRS_PS300_common.db","PVPREFIX=$(MYPVPREFIX),P=$(MYPVPREFIX),R=$(IOCNAME):,RECSIM=$(RECSIM=0),DISABLE=$(DISABLE=0),PORT=$(DEVICE)") ##ISIS## Stuff that needs to be done after all records are loaded but before iocInit is called