--- /dev/null
+
+record (bo, "$(sys):$(sub):POWER:$(vsys):ActivateAllChannel") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto ActivateAllChannel $(PORT)")
+ field (SCAN, "2 second")
+}
+
+record (bo, "$(sys):$(sub):POWER:$(vsys):DeactivateAllChannel") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto DeactivateAllChannel $(PORT)")
+ field (SCAN, "2 second")
+}
--- /dev/null
+file HAMEG_HMP_CHANNEL.template {
+
+pattern { CHAN_NAME, CHAN }
+ { "CHAN1", 1 }
+ { "CHAN2", 2 }
+ { "CHAN3", 3 }
+}
+
--- /dev/null
+record (ao, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetVoltage") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto SetVoltage($(CHAN)) $(PORT)")
+ field (EGU, "V")
+ field (PREC, "4")
+ field (ADEL, "0.005")
+ field (MDEL, "0.001")
+}
+record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadSetVoltage") {
+ field (DTYP, "stream")
+ field (INP, "@HAMEG_HMP4030.proto ReadSetVoltage($(CHAN)) $(PORT)")
+ field (SCAN, "2 second")
+ field (EGU, "V")
+ field (PREC, "4")
+ field (ADEL, "0.005")
+ field (MDEL, "0.001")
+}
+
+record (ao, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetVoltageStepSize") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto SetVoltageStepSize($(CHAN)) $(PORT)")
+ field (EGU, "V")
+ field (PREC, "4")
+ field (ADEL, "0.005")
+ field (MDEL, "0.001")
+}
+
+record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadSetVoltageStepSize") {
+ field (DTYP, "stream")
+ field (INP, "@HAMEG_HMP4030.proto ReadSetVoltageStepSize($(CHAN)) $(PORT)")
+ field (EGU, "V")
+ field (PREC, "4")
+ field (ADEL, "0.005")
+ field (MDEL, "0.001")
+}
+
+record (ao, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetCurrent") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto SetCurrent($(CHAN)) $(PORT)")
+ field (EGU, "A")
+ field (PREC, "4")
+ field (ADEL, "0.005")
+ field (MDEL, "0.001")
+}
+record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadSetCurrent") {
+ field (DTYP, "stream")
+ field (INP, "@HAMEG_HMP4030.proto ReadSetCurrent($(CHAN)) $(PORT)")
+ field (SCAN, "2 second")
+ field (EGU, "A")
+ field (PREC, "4")
+ field (ADEL, "0.005")
+ field (MDEL, "0.001")
+}
+
+record (ao, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetCurrentStepSize") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto SetCurrentStepSize($(CHAN)) $(PORT)")
+ field (EGU, "A")
+ field (PREC, "4")
+ field (ADEL, "0.005")
+ field (MDEL, "0.001")
+}
+
+record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadSetCurrentStepSize") {
+ field (DTYP, "stream")
+ field (INP, "@HAMEG_HMP4030.proto ReadSetCurrentStepSize($(CHAN)) $(PORT)")
+ field (EGU, "A")
+ field (PREC, "4")
+ field (ADEL, "0.005")
+ field (MDEL, "0.001")
+}
+
+record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ActivateChannel") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto ActivateChannel($(CHAN)) $(PORT)")
+}
+
+record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):DeactivateChannel") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto DeactivateChannel($(CHAN)) $(PORT)")
+}
+
+record (bi, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadChannelMode") {
+ field (DTYP, "stream")
+ field (INP, "@HAMEG_HMP4030.proto ReadChannelMode($(CHAN)) $(PORT)")
+}
+
+record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ActivateFuse") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto ActivateFuse($(CHAN)) $(PORT)")
+}
+
+record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):DeactivateFuse") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto DeactivateFuse($(CHAN)) $(PORT)")
+}
+
+record (bi, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadFuseMode") {
+ field (DTYP, "stream")
+ field (INP, "@HAMEG_HMP4030.proto ReadFuseMode($(CHAN)) $(PORT)")
+}
+
+record (ao, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetVoltageProtection") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto SetVoltageProtection($(CHAN)) $(PORT)")
+ field (EGU, "V")
+ field (PREC, "4")
+ field (ADEL, "0.005")
+ field (MDEL, "0.001")
+}
+
+record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ClearVoltageProtection") {
+ field (DTYP, "stream")
+ field (OUT, "@HAMEG_HMP4030.proto ClearVoltageProtection($(CHAN)) $(PORT)")
+}
+
+#record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadVoltageMinProtection") {
+# field (DTYP, "stream")
+# field (INP, "@HAMEG_HMP4030.proto ReadVoltageMINProtection($(CHAN)) $(PORT)")
+# field (EGU, "V")
+# field (PREC, "4")
+# field (ADEL, "0.005")
+# field (MDEL, "0.001")
+#}
+
+#record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadVoltageMaXProtection") {
+# field (DTYP, "stream")
+# field (INP, "@HAMEG_HMP4030.proto ReadVoltageMAXProtection($(CHAN)) $(PORT)")
+# field (EGU, "V")
+# field (PREC, "4")
+# field (ADEL, "0.005")
+# field (MDEL, "0.001")
+#}
+
+#record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetVoltageProtectionMeasured") {
+# field (DTYP, "stream")
+# field (OUT, "@HAMEG_HMP4030.proto SetVoltageProtectionMeasured($(CHAN)) $(PORT)")
+#}
+
+#record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetVoltageProtectionProtected") {
+# field (DTYP, "stream")
+# field (OUT, "@HAMEG_HMP4030.proto SetVoltageProtectionProtected($(CHAN)) $(PORT)")
+#}
+
+#record (bi, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadVoltageProtectionMode") {
+# field (DTYP, "stream")
+# field (INP, "@HAMEG_HMP4030.proto ReadVoltageProtectionMode($(CHAN)) $(PORT)")
+#}
# databases, templates, substitutions like this
#DB += xxx.db
DB += HAMEG_HMP4030.db
+DB += HAMEG_HMP4030_CHANNEL.db
#----------------------------------------------------
# HAMEG_HMP4030.dbd will be made up from these files:
HAMEG_HMP4030_DBD += base.dbd
+HAMEG_HMP4030_DBD += stream.dbd
+HAMEG_HMP4030_DBD += asyn.dbd
+HAMEG_HMP4030_DBD += drvAsynSerialPort.dbd
# Include dbd files from all support applications:
#HAMEG_HMP4030_DBD += xxx.dbd
# Add all the support libraries needed by this IOC
#HAMEG_HMP4030_LIBS += xxx
+HAMEG_HMP4030_LIBS += stream
+HAMEG_HMP4030_LIBS += asyn
# HAMEG_HMP4030_registerRecordDeviceDriver.cpp derives from HAMEG_HMP4030.dbd
HAMEG_HMP4030_SRCS += HAMEG_HMP4030_registerRecordDeviceDriver.cpp
# Variables and paths to dependent modules:
#MODULES = /path/to/modules
+MODULES = /home/scs/EPICS/EPICS/modules/
#MYMODULE = $(MODULES)/my-module
# If using the sequencer, point SNCSEQ at its top directory:
-#SNCSEQ = $(MODULES)/seq-ver
+SNCSEQ = $(MODULES)/synApps_5_8/support/seq-2-2-1
+ASYN = $(MODULES)/synApps_5_8/support/asyn-4-26
+STREAM = $(MODULES)/synApps_5_8/support/stream-2-6a
# EPICS_BASE should appear last so earlier modules can override stuff:
EPICS_BASE = /home/scs/EPICS/EPICS/base
dbLoadDatabase "dbd/HAMEG_HMP4030.dbd"
HAMEG_HMP4030_registerRecordDeviceDriver pdbbase
-#drvAsynSerialPortConfigure("HAMEG_PORT","/dev/HAMEG_HAMEG_HO720_018442435")
-asynSetOption ("BALZERS_PORT", 0, "baud", "115200")
-asynSetOption ("BALZERS_PORT", 0, "bits", "8")
-asynSetOption ("BALZERS_PORT", 0, "parity", "none")
-asynSetOption ("BALZERS_PORT", 0, "stop", "1")
-asynSetOption ("BALZERS_PORT", 0, "clocal", "N")
-asynSetOption ("BALZERS_PORT", 0, "crtscts", "N")
+drvAsynSerialPortConfigure("HAMEG_PORT","/dev/HAMEG_HAMEG_HO720_018442435")
+asynSetOption ("HAMEG_PORT", 0, "baud", "115200")
+asynSetOption ("HAMEG_PORT", 0, "bits", "8")
+asynSetOption ("HAMEG_PORT", 0, "parity", "none")
+asynSetOption ("HAMEG_PORT", 0, "stop", "1")
+asynSetOption ("HAMEG_PORT", 0, "clocal", "N")
+asynSetOption ("HAMEG_PORT", 0, "crtscts", "N")
## Load record instances
#dbLoadRecords("db/xxx.db","user=scs")
-dbLoadRecords("dbd/bptHAMEG_HMP4030.dbd")
-dbLoadRecords("db/HAMEG_HMP4030.db", "PORT=HAMEG_PORT,sys=CBM,sub=MVD,vsys=PRESTO_RECIPIENT")
+dbLoadRecords("db/HAMEG_HMP4030.db", "PORT=HAMEG_PORT,sys=CBM,sub=MVD,vsys=PRESTO_RECIPIENT")
+dbLoadRecords("db/HAMEG_HMP4030_CHANNEL.db", "PORT=HAMEG_PORT,sys=CBM,sub=MVD,vsys=PRESTO_RECIPIENT")
cd "${TOP}/iocBoot/${IOC}"
iocInit
in "%f";
}
-SetVoltageStepSize {
+SetCurrentStepSize {
out "INST OUT\$1";
out "CURR:STEP %f";
}
-ReadSetVoltageStepSize {
+ReadSetCurrentStepSize {
out "INST OUT\$1";
out "CURR:STEP?";
in "%f";
}
-#---VOLLTAGE+CURRENT------------------------------------------------------------------
-SetVoltage_Current {
- out "INST OUT\$1";
- out "APPL %f,%f";
-}
-
-ReadSetVoltage_Current {
- out "INST OUT\$1";
- out "APPL?";
-}
-
#---CHANNELMODE-----------------------------------------------------------------------
ActivateChannel {
out "INST OUT\$1";
}
ActivateAllChannel {
- out "INST OUT\$1";
out "OUTP:GEN ON";
}
DeactivateAllChannel {
- out "INST OUT\$1";
out "OUTP:GEN OFF";
}
#---FUSE------------------------------------------------------------------------------
ActivateFuse {
out "INST OUT\$1";
- out "FUSE ON":
+ out "FUSE ON";
}
DeactivateFuse {
out "INST OUT\$1";
- out "FUSE OFF":
+ out "FUSE OFF";
}
ReadFuseMode {
}
ClearVoltageProtection {
- out "INST OUT\%1";
+ out "INST OUT\$1";
out "VOLT:PROT:CLE";
}
}
SetVoltageProtectionMeasured {
- out "INST OUT\%1";
+ out "INST OUT\$1";
out "VOLT:PROT:MODE MEAS";
}
SetVoltageProtectionProtected {
- out "INST OUT\%1";
+ out "INST OUT\$1";
out "VOLT:PROT:MODE PROT";
}
ReadVoltageProtectionMode {
- out "INST OUT\%1";
+ out "INST OUT\$1";
out "VOLT:PROT:MODE?";
in "protected";
}