Binary file IOCDOSEApp/Db/.fht.db.swo has changed
--- a/IOCDOSEApp/Db/Makefile Tue Oct 28 04:47:56 2014 +0100
+++ b/IOCDOSEApp/Db/Makefile Tue Nov 02 13:19:46 2021 +0100
@@ -11,6 +11,13 @@
# Create and install (or just install) into <top>/db
# databases, templates, substitutions like this
#DB += xxx.db
+DB_INSTALLS += fht.db
+DB_INSTALLS += vega.db
+DB_INSTALLS += dpt-mod.db
+#DB += fht.proto
+#DB += vega.proto
+DB_INSTALLS += $(TOP)/IOCDOSEApp/Db/fht.proto
+DB_INSTALLS += $(TOP)/IOCDOSEApp/Db/vega.proto
#----------------------------------------------------
# If <anyname>.db template is not named <anyname>*.template add
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/IOCDOSEApp/Db/dpt-mod.db Tue Nov 02 13:19:46 2021 +0100
@@ -0,0 +1,7 @@
+# ai record template for register inputs
+record(ai, "$(P)$(R):Pressure") {
+field(DTYP,"asynInt32")
+field(INP,"@asyn($(PORT) $(OFFSET))$(DATA_TYPE)")
+field(SCAN,"I/O Intr")
+field(EGU, "Pa")
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/IOCDOSEApp/Db/fht.db Tue Nov 02 13:19:46 2021 +0100
@@ -0,0 +1,92 @@
+record(ai, "$(P)$(R)GetRadiation_1")
+{
+ field(DESC, "Get Radiation")
+ field(DTYP, "stream")
+ field(INP, "@fht.proto getRadiation(138) $(BUS)")
+ field(SCAN, "1 second")
+ field(EGU, "uSv/h")
+ field(FLNK, "$(P)$(R)GetRadiation_1:Hour")
+}
+
+record(calc, "$(P)$(R)GetRadiation_1:Add") {
+ field(INPA, "$(P)$(R)GetRadiation_1 CP NMS")
+ field(INPB, "1")
+ field(CALC, "B>0?VAL+A:0;B:=1")
+ field(FLNK, "$(P)$(R)GetRadiation_1:Counter")
+}
+
+record(calc, "$(P)$(R)GetRadiation_1:Counter") {
+ field(INPA, "$(P)$(R)GetRadiation_1:Add NPP ")
+ field(CALC, "A>0?VAL+1:0")
+ field(FLNK, "$(P)$(R)GetRadiation_1:SumOneHour")
+}
+
+record(calc, "$(P)$(R)GetRadiation_1:SumOneHour") {
+ field(INPA, "$(P)$(R)GetRadiation_1:Add NPP ")
+ field(INPB, "$(P)$(R)GetRadiation_1:Counter NPP ")
+ field(CALC, "B>0?A/B:0")
+ field(EGU, "uSv/h")
+}
+
+record(stringin, "$(P)$(R)GetRadiation_1:Hour") {
+ field(DTYP, "Soft Timestamp")
+ field(INP, "@%M")
+ field(TSEL, "$(P)$(R)GetRadiation_1.TIME")
+ field(FLNK, "$(P)$(R)GetRadiation_1:HourClear")
+}
+
+record(calcout, "$(P)$(R)GetRadiation_1:HourClear") {
+ field(INPA, "$(P)$(R)GetRadiation_1:Hour NPP NMS")
+ field(INPB, "0")
+ field(CALC, "A<B?0:1;B:=A")
+ field(DOPT, "Use CALC")
+ field(OOPT, "When Zero")
+ field(OUT, "$(P)$(R)GetRadiation_1:Add.B PP")
+}
+
+
+record(ai, "$(P)$(R)GetRadiation_2")
+{
+ field(DESC, "Get Radiation")
+ field(DTYP, "stream")
+ field(INP, "@fht.proto getRadiation(239) $(BUS)")
+ field(EGU, "uSiv")
+ field(SCAN, "1 second")
+ field(FLNK, "$(P)$(R)GetRadiation_2:Hour")
+}
+
+record(calc, "$(P)$(R)GetRadiation_2:Add") {
+ field(INPA, "$(P)$(R)GetRadiation_2 CP NMS")
+ field(INPB, "1")
+ field(CALC, "B>0?VAL+A:0;B:=1")
+ field(FLNK, "$(P)$(R)GetRadiation_2:Counter")
+}
+
+record(calc, "$(P)$(R)GetRadiation_2:Counter") {
+ field(INPA, "$(P)$(R)GetRadiation_2:Add NPP ")
+ field(CALC, "A>0?VAL+1:0")
+ field(FLNK, "$(P)$(R)GetRadiation_2:SumOneHour")
+}
+
+record(calc, "$(P)$(R)GetRadiation_2:SumOneHour") {
+ field(INPA, "$(P)$(R)GetRadiation_2:Add NPP ")
+ field(INPB, "$(P)$(R)GetRadiation_2:Counter NPP ")
+ field(CALC, "B>0?A/B:0")
+ field(EGU, "uSv/h")
+}
+
+record(stringin, "$(P)$(R)GetRadiation_2:Hour") {
+ field(DTYP, "Soft Timestamp")
+ field(INP, "@%M")
+ field(TSEL, "$(P)$(R)GetRadiation_2.TIME")
+ field(FLNK, "$(P)$(R)GetRadiation_2:HourClear")
+}
+
+record(calcout, "$(P)$(R)GetRadiation_2:HourClear") {
+ field(INPA, "$(P)$(R)GetRadiation_2:Hour NPP NMS")
+ field(INPB, "0")
+ field(CALC, "A<B?0:1;B:=A")
+ field(DOPT, "Use CALC")
+ field(OOPT, "When Zero")
+ field(OUT, "$(P)$(R)GetRadiation_2:Add.B PP")
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/IOCDOSEApp/Db/fht.proto Tue Nov 02 13:19:46 2021 +0100
@@ -0,0 +1,7 @@
+Terminator = ETX;
+
+getRadiation {
+ out "\a01RM\$1";
+ in "\a01RM%E%*i%*i%*x";
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/IOCDOSEApp/Db/vega.db Tue Nov 02 13:19:46 2021 +0100
@@ -0,0 +1,37 @@
+#
+# VEGA power control
+#
+record(ao, "$(P)$(R)EnergyMode")
+{
+ field(DESC, "force Energy mode")
+ field(DTYP, "stream")
+ field(OUT, "@vega.proto forceEnergyMode $(BUS)")
+ field(PINI, "YES")
+}
+
+
+record(ai, "$(P)$(R)GetEnergy")
+{
+ field(DESC, "Get energy")
+ field(DTYP, "stream")
+ field(INP, "@vega.proto getEnergy $(BUS)")
+ field(EGU, "J")
+ field(PREC,"4")
+ field(SCAN, "2 second")
+}
+
+record(ai, "$(P)$(R)GetRange")
+{
+ field(DESC, "Get range")
+ field(DTYP, "stream")
+ field(INP, "@vega.proto getRange $(BUS)")
+ field(PINI, "YES")
+}
+
+record(ao, "$(P)$(R)SetRange")
+{
+ field(DESC, "Set range")
+ field(DTYP, "stream")
+ field(FLNK, "$(P)$(R)GetRange")
+ field(OUT, "@vega.proto setRange $(BUS)")
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/IOCDOSEApp/Db/vega.proto Tue Nov 02 13:19:46 2021 +0100
@@ -0,0 +1,23 @@
+
+Terminator = CR LF;
+InTerminator = LF;
+
+getEnergy {
+ out "$SE";
+ in "*\ %E\r\000";
+}
+
+setRange {
+ out "$WN%f";
+ in "*\r\000";
+}
+
+getRange {
+ out "$RN";
+ in "*%d\r\000";
+}
+
+forceEnergyMode {
+ out "$FE";
+}
+
--- a/IOCDOSEApp/src/Makefile Tue Oct 28 04:47:56 2014 +0100
+++ b/IOCDOSEApp/src/Makefile Tue Nov 02 13:19:46 2021 +0100
@@ -19,6 +19,9 @@
IOCDOSE_DBD += asSupport.dbd
IOCDOSE_DBD += devIocStats.dbd
IOCDOSE_DBD += devTimestampWorkaround.dbd
+IOCDOSE_DBD += reccaster.dbd
+IOCDOSE_DBD += asyn.dbd
+IOCDOSE_DBD += modbusSupport.dbd
# Streamdevice
IOCDOSE_DBD += stream.dbd
@@ -33,6 +36,8 @@
IOCDOSE_LIBS += autosave
IOCDOSE_LIBS += asyn
IOCDOSE_LIBS += stream
+IOCDOSE_LIBS += reccaster
+IOCDOSE_LIBS += modbus
# IOCDOSE_registerRecordDeviceDriver.cpp derives from IOCDOSE.dbd
--- a/configure/RELEASE Tue Oct 28 04:47:56 2014 +0100
+++ b/configure/RELEASE Tue Nov 02 13:19:46 2021 +0100
@@ -31,7 +31,8 @@
SNCSEQ=$(SUPPORT)/seq-2-1-14
AUTOSAVE=$(SUPPORT)/autosave-5-1
IOCSTATS=$(SUPPORT)/iocStats-3-1-11
-
+RECCASTER=$(SUPPORT)/recsync/client
+MODBUS=$(SUPPORT)/modbus-R2-5
# EPICS_BASE usually appears last so other apps can override stuff:
EPICS_BASE=/home/epics/EPICS/base
--- a/iocBoot/iocIOCDOSE/st.cmd Tue Oct 28 04:47:56 2014 +0100
+++ b/iocBoot/iocIOCDOSE/st.cmd Tue Nov 02 13:19:46 2021 +0100
@@ -5,13 +5,12 @@
epicsEnvSet ("IOC", "IOCDOSE")
epicsEnvSet ("LOG_DIR", "/srv/ioc/log")
-
epicsEnvSet ("EPICS_CA_ADDR_LIST","10.0.1.255")
-
epicsEnvSet ("EPICS_CA_AUTO_ADDR_LIST","NO")
-
+epicsEnvSet ("STREAM_PROTOCOL_PATH", "db")
-epicsEnvSet ("STREAM_PROTOCOL_PATH", "db")
+epicsEnvSet ("HRK_INET", "10.0.0.206:4002")
+epicsEnvSet ("HRK_LINK", "HRK")
## Register all support components
dbLoadDatabase ("dbd/${IOC}.dbd")
@@ -21,22 +20,29 @@
#asynSetTraceMask("", 0, 17)
# Configure asyn tcp ports
-drvAsynIPPortConfigure ("VEGA", "10.0.0.205:4001")
+#drvAsynIPPortConfigure ("VEGA", "10.0.0.205:4001")
drvAsynIPPortConfigure ("FHT_1", "10.0.0.200:4012")
drvAsynIPPortConfigure ("FHT_2", "10.0.0.200:4013")
+# Pressure Reading, Modbus
+drvAsynIPPortConfigure ("${HRK_LINK}","${HRK_INET}",0,0,0)
+modbusInterposeConfig ("${HRK_LINK}",1,1000,6)
+drvModbusAsynConfigure ("A0_In_Word","${HRK_LINK}",1,4,1,1,4,30000,"HRK")
+
#asynSetTraceIOMask ("${VEGA_LINK}", 0,2)
#asynSetTraceFile("${VEGA_LINK}",-1,"")
#asynSetTraceMask("${VEGA_LINK}",-1,0x019)
#asynSetTraceIOMask("${VEGA_LINK}",-1,0x2)
-dbLoadRecords ("db/vega.db","P=FHIFEL:,R=VEGA:,BUS=VEGA")
+#dbLoadRecords ("db/vega.db","P=FHIFEL:,R=VEGA:,BUS=VEGA")
dbLoadRecords ("db/fht.db","P=FHIFEL:,R=FHT1:,BUS=FHT_1")
dbLoadRecords ("db/fht.db","P=FHIFEL:,R=FHT2:,BUS=FHT_2")
## Load record instances
dbLoadRecords ("db/IOC-stats.db", "IOC=${IOC}")
+dbLoadRecords ("db/dpt-mod.db", "P=FHIFEL:,R=DPT-MOD:Pressure,PORT=A0_In_Word,OFFSET=0,DATA_TYPE=INT16")
+
epicsEnvSet ("streamDebug","1")
iocInit()