diff --git a/HLX503/HLX503-IOC-01App/src/build.mak b/HLX503/HLX503-IOC-01App/src/build.mak
index 2e0570728..8aa1cf574 100644
--- a/HLX503/HLX503-IOC-01App/src/build.mak
+++ b/HLX503/HLX503-IOC-01App/src/build.mak
@@ -35,8 +35,10 @@ $(APPNAME)_DBD += ReadASCII.dbd
$(APPNAME)_DBD += FileList.dbd
## add other dbd here ##
#$(APPNAME)_DBD += xxx.dbd
+$(APPNAME)_DBD += hlx503.dbd
# Add all the support libraries needed by this IOC
+$(APPNAME)_LIBS += hlx503
## Add additional libraries here ##
#$(APPNAME)_LIBS += xxx
@@ -58,6 +60,7 @@ $(APPNAME)_LIBS += calc sscan
$(APPNAME)_LIBS += pcrecpp pcre
$(APPNAME)_LIBS += seq pv efsw
+
# HLX503-IOC-01_registerRecordDeviceDriver.cpp derives from HLX503-IOC-01.dbd
$(APPNAME)_SRCS += $(APPNAME)_registerRecordDeviceDriver.cpp
diff --git a/HLX503/iocBoot/iocHLX503-IOC-01/config.xml b/HLX503/iocBoot/iocHLX503-IOC-01/config.xml
index ffbd4a1cd..ef6c9b7fb 100644
--- a/HLX503/iocBoot/iocHLX503-IOC-01/config.xml
+++ b/HLX503/iocBoot/iocHLX503-IOC-01/config.xml
@@ -18,8 +18,19 @@
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/HLX503/iocBoot/iocHLX503-IOC-01/st-common.cmd b/HLX503/iocBoot/iocHLX503-IOC-01/st-common.cmd
index 99e871dd4..9db34cc7d 100644
--- a/HLX503/iocBoot/iocHLX503-IOC-01/st-common.cmd
+++ b/HLX503/iocBoot/iocHLX503-IOC-01/st-common.cmd
@@ -10,8 +10,9 @@ epicsEnvSet "STREAM_PROTOCOL_PATH" "$(ITC503)/data"
epicsEnvSet "STREAM_PROTOCOL_PATH" "$(ITC503)/data"
epicsEnvSet "READASCII_NAME" "READASCII"
epicsEnvSet "FILELIST_NAME" "FILELIST"
-$(IFNOTDEVSIM) epicsEnvSet "CALIB_BASE_DIR" "$(ICPCONFIGBASE)/$(INSTRUMENT)"
+$(IFNOTRECSIM) $(IFNOTDEVSIM) epicsEnvSet "CALIB_BASE_DIR" "$(ICPCONFIGBASE)/$(INSTRUMENT)"
$(IFDEVSIM) epicsEnvSet "CALIB_BASE_DIR" "$(HLX503)"
+$(IFRECSIM) epicsEnvSet "CALIB_BASE_DIR" "$(HLX503)"
epicsEnvSet "TPAR_DIR" "configurations/hlx503"
epicsEnvSet "TPAR_PAT" ".*"
FileListConfigure("$(FILELIST_NAME)", "$(CALIB_BASE_DIR)/$(TPAR_DIR)", "$(TPAR_PAT)", 0)
@@ -50,13 +51,17 @@ epicsEnvSet "SENSOR$(1KPOTHE3POTLO_SENSOR)_NAME" "1KPOTHE3POTLO"
# asynSetTraceIOMask("L0", -1, 0x2)
# asynSetTraceMask("L0", -1, 0x9)
-## Load DB Records
-dbLoadRecords("$(ITC503)/db/ITC503.db","P=$(MYPVPREFIX)$(IOCNAME):, PORT=$(DEVICE), RECSIM=$(RECSIM=0), DISABLE=$(DISABLE=0), READ=$(READASCII_NAME), CTRLCHANNEL1_NAME=$(CTRLCHANNEL1_NAME), CTRLCHANNEL2_NAME=$(CTRLCHANNEL2_NAME), CTRLCHANNEL3_NAME=$(CTRLCHANNEL3_NAME), SENSOR1_NAME=$(SENSOR1_NAME), SENSOR2_NAME=$(SENSOR2_NAME), SENSOR3_NAME=$(SENSOR3_NAME), IFNOTHLX503=#")
-dbLoadRecords("$(HLX503)/db/hlx503.db","PVPREFIX=$(MYPVPREFIX),P=$(MYPVPREFIX)$(IOCNAME):,RECSIM=$(RECSIM=0),DISABLE=$(DISABLE=0),MAX_TEMP_FOR_HE3_COOLING=$(MAX_TEMP_FOR_HE3_COOLING),MAX_OPERATING_TEMP_FOR_HELIOX=$(MAX_OPERATING_TEMP_FOR_HELIOX),SORB_CHANNEL=$(SORB_CHANNEL),HE3POTHI_CHANNEL=$(HE3POTHI_CHANNEL),1KPOTHE3POTLO_CHANNEL=$(1KPOTHE3POTLO_CHANNEL),SORB_SENSOR=$(SORB_SENSOR),HE3POTHI_SENSOR=$(HE3POTHI_SENSOR),1KPOTHE3POTLO_SENSOR=$(1KPOTHE3POTLO_SENSOR),READ=$(READASCII_NAME),FILELIST=$(FILELIST_NAME)")
+stringiftest("RECONDENSE_PART_TIMEOUT_ON", "YES", 2)
+$(IFRECONDENSE_PART_TIMEOUT_ON) epicsEnvSet "RECONDENSE_PART_TIMEOUT_ON" "1"
+$(IFNOTRECONDENSE_PART_TIMEOUT_ON) epicsEnvSet "RECONDENSE_PART_TIMEOUT_ON" "0"
+
-# dbLoadRecords("$(FILELIST)/db/calibration.db", "P=$(MYPVPREFIX)$(IOCNAME):, CALIB_BASE_DIR=$(CALIB_BASE_DIR), SDIR=$(SENS_DIR), CALIBLIST=SENSORFILELISTHE3POT, CONV_TO_PV=TEMP, CONV_FROM_PV=, CONV_TO_DESC=Temperature, CONV_TO_EGU=K, SP_PV=RAMP:_OUT_SP")
-# dbLoadRecords("$(FILELIST)/db/calibration.db", "P=$(MYPVPREFIX)$(IOCNAME):, CALIB_BASE_DIR=$(CALIB_BASE_DIR), SDIR=$(SENS_DIR), CALIBLIST=SENSORFILELISTSORB, CONV_TO_PV=TEMP, CONV_FROM_PV=, CONV_TO_DESC=Temperature, CONV_TO_EGU=K, SP_PV=RAMP:_OUT_SP")
+epicsEnvSet "P" "$(MYPVPREFIX)$(IOCNAME):"
+## Load DB Records
+dbLoadRecords("$(ITC503)/db/ITC503.db","P=$(P), PORT=$(DEVICE), RECSIM=$(RECSIM=0), DISABLE=$(DISABLE=0), READ=$(READASCII_NAME), CTRLCHANNEL1_NAME=$(CTRLCHANNEL1_NAME), CTRLCHANNEL2_NAME=$(CTRLCHANNEL2_NAME), CTRLCHANNEL3_NAME=$(CTRLCHANNEL3_NAME), SENSOR1_NAME=$(SENSOR1_NAME), SENSOR2_NAME=$(SENSOR2_NAME), SENSOR3_NAME=$(SENSOR3_NAME), IFNOTHLX503=#")
+dbLoadRecords("$(HLX503)/db/hlx503.db","P=$(P),RECSIM=$(RECSIM=0),DISABLE=$(DISABLE=0),MAX_TEMP_FOR_HE3_COOLING=$(MAX_TEMP_FOR_HE3_COOLING),MAX_OPERATING_TEMP_FOR_HELIOX=$(MAX_OPERATING_TEMP_FOR_HELIOX),SORB_CHANNEL=$(SORB_CHANNEL),HE3POTHI_CHANNEL=$(HE3POTHI_CHANNEL),1KPOTHE3POTLO_CHANNEL=$(1KPOTHE3POTLO_CHANNEL),SORB_SENSOR=$(SORB_SENSOR),HE3POTHI_SENSOR=$(HE3POTHI_SENSOR),1KPOTHE3POTLO_SENSOR=$(1KPOTHE3POTLO_SENSOR),READ=$(READASCII_NAME),FILELIST=$(FILELIST_NAME)")
+dbLoadRecords("$(HLX503)/db/hlx503_recondense.db", "P=$(P),MAX_TEMP_FOR_HE3_COOLING=$(MAX_TEMP_FOR_HE3_COOLING),MAX_OPERATING_TEMP_FOR_HELIOX=$(MAX_OPERATING_TEMP_FOR_HELIOX),DEFAULT_POST_CONDENSE_TEMP_SETPOINT=$(DEFAULT_POST_CONDENSE_TEMP_SETPOINT=0.3),RECONDENSE_SORB_TEMP_SET=$(RECONDENSE_SORB_TEMP_SET=33.0),RECONDENSE_SORB_P=$(RECONDENSE_SORB_P=1.2),RECONDENSE_SORB_I=$(RECONDENSE_SORB_I=1.2),RECONDENSE_SORB_D=$(RECONDENSE_SORB_D=1.2),RECONDENSE_SORB_TEMP_FINAL=$(RECONDENSE_SORB_TEMP_FINAL=20.0),RECONDENSE_HE3POT_TARGET_TEMP_PART1=$(RECONDENSE_HE3POT_TARGET_TEMP_PART1=1.5),RECONDENSE_HE3POT_TARGET_TEMP_PART2=$(RECONDENSE_HE3POT_TARGET_TEMP_PART2=1.6),RECONDENSE_POST_PART2_WAIT_TIME=$(RECONDENSE_POST_PART2_WAIT_TIME=10),RECONDENSE_PART_TIMEOUT=$(RECONDENSE_PART_TIMEOUT=1800),RECONDENSE_PART_TIMEOUT_ON=$(RECONDENSE_PART_TIMEOUT_ON=1)")
##ISIS## Stuff that needs to be done after all records are loaded but before iocInit is called
< $(IOCSTARTUP)/preiocinit.cmd
@@ -69,3 +74,7 @@ iocInit
##ISIS## Stuff that needs to be done after iocInit is called e.g. sequence programs
< $(IOCSTARTUP)/postiocinit.cmd
+
+
+## Start any sequence programs
+seq hlx503, "P=$(P)"