added UPD records
Signed-off-by: Bernardo Carvalho <bernardo.carvalho@tecnico.ulisboa.pt>
This commit is contained in:
6
epics/iocs/ISTTOKrpi2/.gitignore
vendored
Normal file
6
epics/iocs/ISTTOKrpi2/.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
O.*
|
||||
bin/*
|
||||
iocBoot/iocISTTOKrpi2/save/*
|
||||
db
|
||||
dbd
|
||||
configure
|
||||
@@ -1,31 +1,42 @@
|
||||
# 8/5/2021 Only sensor 2 is working. Running with dspIC
|
||||
# 20/9/2021 sensors 1,2,3 are working. Running with dspIC
|
||||
record (longin, "$(P)$(R)P001:M")
|
||||
{
|
||||
field (DESC, "getPressure001 $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure001($(P)$(R)P001:E) $(bus)")
|
||||
field (SCAN, "1 second")
|
||||
field (FLNK, "$(P)$(R)VVessel-Pressure")
|
||||
field (SCAN, "I/O Intr")
|
||||
# field (SCAN, "1 second")
|
||||
field (FLNK, "$(P)$(R)TMPump1-PressureAdmission")
|
||||
}
|
||||
record (longin, "$(P)$(R)P001:E")
|
||||
{
|
||||
field (DESC, "Pressure001 exponent $(bus)")
|
||||
}
|
||||
record (calc, "$(P)$(R)VVessel-Pressure")
|
||||
record (calc, "$(P)$(R)TMPump1-PressureAdmission")
|
||||
{
|
||||
field (DESC, "ISTTOK:central:VVessel-Pressure")
|
||||
field(DESC, "ISTTOK:central:TMPump1-PressureAdmission")
|
||||
field(INPA, "$(P)$(R)P001:M")
|
||||
field(INPB, "$(P)$(R)P001:E")
|
||||
field(CALC, "(A*0.001)*10.0**(B-20)")
|
||||
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
field(HIHI,"1.0e-2")
|
||||
field(HIGH,"1.0e-3")
|
||||
# field(LOW, "20.0")
|
||||
# field(LOLO,"0.0")
|
||||
field(HHSV,"MAJOR")
|
||||
field(HSV, "MINOR")
|
||||
# field(LSV, "MINOR")
|
||||
# field(LLSV,"MAJOR")
|
||||
}
|
||||
|
||||
record (longin, "$(P)$(R)P002:M")
|
||||
{
|
||||
field (DESC, "getPressure002 $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure002($(P)$(R)P002:E) $(bus)")
|
||||
field (SCAN, "2 second")
|
||||
field (SCAN, "I/O Intr")
|
||||
# field (SCAN, "2 second")
|
||||
field (FLNK, "$(P)$(R)RPump1-Pressure")
|
||||
}
|
||||
record (longin, "$(P)$(R)P002:E")
|
||||
@@ -40,8 +51,8 @@ record (calc, "$(P)$(R)RPump1-Pressure")
|
||||
field(CALC, "(A*0.001)*10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
# field(HIHI,"1.0e-1")
|
||||
# field(HIGH,"5.0e-3")
|
||||
field(HIHI,"1.0e-1")
|
||||
field(HIGH,"5.0e-2")
|
||||
# field(LOW, "20.0")
|
||||
# field(LOLO,"0.0")
|
||||
field(HHSV,"MAJOR")
|
||||
@@ -55,23 +66,27 @@ record (longin, "$(P)$(R)P003:M")
|
||||
field (DESC, "getPressure003 Mantissa $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure003($(P)$(R)P003:E) $(bus)")
|
||||
field (SCAN, "1 second")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (FLNK, "$(P)$(R)TMPump1-PressureAdmission")
|
||||
# field (SCAN, "1 second")
|
||||
field (SCAN, "I/O Intr")
|
||||
field (FLNK, "$(P)$(R)VVessel-Pressure")
|
||||
}
|
||||
|
||||
record (longin, "$(P)$(R)P003:E")
|
||||
{
|
||||
field (DESC, "Pressure003 Exponent $(bus)")
|
||||
}
|
||||
record (calc, "$(P)$(R)TMPump1-PressureAdmission")
|
||||
record (calc, "$(P)$(R)VVessel-Pressure")
|
||||
{
|
||||
field(DESC, "ISTTOK:central:TMPump1-PressureAdmission")
|
||||
field (DESC, "ISTTOK:central:VVessel-Pressure")
|
||||
field(INPA, "$(P)$(R)P003:M")
|
||||
field(INPB, "$(P)$(R)P003:E")
|
||||
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
||||
field(CALC, "(A*0.001)*10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
field(HIHI,"1.0e-1")
|
||||
field(HIGH,"1.0e-2")
|
||||
field(HHSV,"MAJOR")
|
||||
field(HSV, "MINOR")
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +95,8 @@ record (longin, "$(P)$(R)P004:M")
|
||||
field (DESC, "getPressure004 Mantissa $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure004($(P)$(R)P004:E) $(bus)")
|
||||
field (SCAN, "1 second")
|
||||
# field (SCAN, "1 second")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (FLNK, "$(P)$(R)RPump2-Pressure")
|
||||
}
|
||||
record (longin, "$(P)$(R)P004:E")
|
||||
@@ -100,8 +116,8 @@ record (calc, "$(P)$(R)RPump2-Pressure")
|
||||
# field(HIGH,"5.0e-3")
|
||||
# field(LOW, "20.0")
|
||||
# field(LOLO,"0.0")
|
||||
field(HHSV,"MAJOR")
|
||||
field(HSV, "MINOR")
|
||||
# field(HHSV,"MAJOR")
|
||||
# field(HSV, "MINOR")
|
||||
# field(LSV, "MINOR")
|
||||
# field(LLSV,"MAJOR")
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ include $(TOP)/configure/CONFIG
|
||||
#----------------------------------------------------
|
||||
# Create and install (or just install) into <top>/db
|
||||
# databases, templates, substitutions like this
|
||||
#DB += xxx.db
|
||||
DB += ISTTOKpfeiffer.db
|
||||
DB += pfeiffer.proto
|
||||
|
||||
|
||||
@@ -1,25 +1,30 @@
|
||||
Terminator=CR;
|
||||
MaxInput = 20;
|
||||
MaxInput = 30;
|
||||
ExtraInput = Ignore;
|
||||
|
||||
# in millisecond
|
||||
#ReadTimeout = 2000;
|
||||
ReplyTimeout = 250;
|
||||
#ReadTimeout = 1500;
|
||||
#ReplyTimeout = 100;
|
||||
#PollPeriod = $ReplyTimeout;
|
||||
#Integer. Affects first in command in I/O Intr mode (see chapter Record Processing).
|
||||
PollPeriod = 250;
|
||||
|
||||
|
||||
# Using redirection to read 2 records, mantissa and exponent
|
||||
getPressure001 {
|
||||
out "0010074002=?106";
|
||||
# out "0010074002=?106";
|
||||
in "0011074006%4u%(\$1)2u%+<sum8>";
|
||||
}
|
||||
# out "0020074002=?107";
|
||||
getPressure002 {
|
||||
out "0020074002=?107";
|
||||
in "0021074006%4u%(\$1)2u%+<sum8>";
|
||||
}
|
||||
getPressure003 {
|
||||
out "0030074002=?108";
|
||||
# out "0030074002=?108";
|
||||
in "0031074006%4u%(\$1)2u%+<sum8>";
|
||||
}
|
||||
getPressure004 {
|
||||
out "0040074002=?109";
|
||||
# out "0040074002=?109";
|
||||
in "0041074006%4u%(\$1)2u%+<sum8>";
|
||||
}
|
||||
#
|
||||
|
||||
8
epics/iocs/ISTTOKrpi2/ISTTOKrpi2App/Makefile
Normal file
8
epics/iocs/ISTTOKrpi2/ISTTOKrpi2App/Makefile
Normal file
@@ -0,0 +1,8 @@
|
||||
TOP = ..
|
||||
include $(TOP)/configure/CONFIG
|
||||
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *src*))
|
||||
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Src*))
|
||||
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *db*))
|
||||
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Db*))
|
||||
include $(TOP)/configure/RULES_DIRS
|
||||
|
||||
23
epics/iocs/ISTTOKrpi2/ISTTOKrpi2App/src/ISTTOKrpi2Main.cpp
Normal file
23
epics/iocs/ISTTOKrpi2/ISTTOKrpi2App/src/ISTTOKrpi2Main.cpp
Normal file
@@ -0,0 +1,23 @@
|
||||
/* ISTTOKrpi2Main.cpp */
|
||||
/* Author: Marty Kraimer Date: 17MAR2000 */
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "epicsExit.h"
|
||||
#include "epicsThread.h"
|
||||
#include "iocsh.h"
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
if(argc>=2) {
|
||||
iocsh(argv[1]);
|
||||
epicsThreadSleep(.2);
|
||||
}
|
||||
iocsh(NULL);
|
||||
epicsExit(0);
|
||||
return(0);
|
||||
}
|
||||
@@ -20,10 +20,13 @@ ISTTOKrpi2_DBD += base.dbd
|
||||
ISTTOKrpi2_DBD += asyn.dbd
|
||||
ISTTOKrpi2_DBD += stream.dbd
|
||||
ISTTOKrpi2_DBD += drvAsynSerialPort.dbd
|
||||
ISTTOKrpi2_DBD += asSupport.dbd
|
||||
|
||||
# Add all the support libraries needed by this IOC
|
||||
#ISTTOKrpi2_LIBS += xxx
|
||||
ISTTOKrpi2_LIBS += asyn
|
||||
ISTTOKrpi2_LIBS += stream
|
||||
ISTTOKrpi2_LIBS += autosave
|
||||
|
||||
# ISTTOKrpi2_registerRecordDeviceDriver.cpp derives from ISTTOKrpi2.dbd
|
||||
ISTTOKrpi2_SRCS += ISTTOKrpi2_registerRecordDeviceDriver.cpp
|
||||
|
||||
31
epics/iocs/ISTTOKrpi2/Makefile
Normal file
31
epics/iocs/ISTTOKrpi2/Makefile
Normal file
@@ -0,0 +1,31 @@
|
||||
# Makefile at top of application tree
|
||||
TOP = .
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
# Directories to build, any order
|
||||
DIRS += configure
|
||||
DIRS += $(wildcard *Sup)
|
||||
DIRS += $(wildcard *App)
|
||||
DIRS += $(wildcard *Top)
|
||||
DIRS += $(wildcard iocBoot)
|
||||
|
||||
# The build order is controlled by these dependency rules:
|
||||
|
||||
# All dirs except configure depend on configure
|
||||
$(foreach dir, $(filter-out configure, $(DIRS)), \
|
||||
$(eval $(dir)_DEPEND_DIRS += configure))
|
||||
|
||||
# Any *App dirs depend on all *Sup dirs
|
||||
$(foreach dir, $(filter %App, $(DIRS)), \
|
||||
$(eval $(dir)_DEPEND_DIRS += $(filter %Sup, $(DIRS))))
|
||||
|
||||
# Any *Top dirs depend on all *Sup and *App dirs
|
||||
$(foreach dir, $(filter %Top, $(DIRS)), \
|
||||
$(eval $(dir)_DEPEND_DIRS += $(filter %Sup %App, $(DIRS))))
|
||||
|
||||
# iocBoot depends on all *App dirs
|
||||
iocBoot_DEPEND_DIRS += $(filter %App,$(DIRS))
|
||||
|
||||
# Add any additional dependency rules here:
|
||||
|
||||
include $(TOP)/configure/RULES_TOP
|
||||
6
epics/iocs/ISTTOKrpi2/iocBoot/Makefile
Normal file
6
epics/iocs/ISTTOKrpi2/iocBoot/Makefile
Normal file
@@ -0,0 +1,6 @@
|
||||
TOP = ..
|
||||
include $(TOP)/configure/CONFIG
|
||||
DIRS += $(wildcard *ioc*)
|
||||
DIRS += $(wildcard as*)
|
||||
include $(CONFIG)/RULES_DIRS
|
||||
|
||||
5
epics/iocs/ISTTOKrpi2/iocBoot/iocISTTOKrpi2/Makefile
Normal file
5
epics/iocs/ISTTOKrpi2/iocBoot/iocISTTOKrpi2/Makefile
Normal file
@@ -0,0 +1,5 @@
|
||||
TOP = ../..
|
||||
include $(TOP)/configure/CONFIG
|
||||
ARCH = $(EPICS_HOST_ARCH)
|
||||
TARGETS = envPaths
|
||||
include $(TOP)/configure/RULES.ioc
|
||||
8
epics/iocs/ISTTOKrpi2/iocBoot/iocISTTOKrpi2/envPaths
Normal file
8
epics/iocs/ISTTOKrpi2/iocBoot/iocISTTOKrpi2/envPaths
Normal file
@@ -0,0 +1,8 @@
|
||||
epicsEnvSet("IOC","iocISTTOKrpi2")
|
||||
epicsEnvSet("TOP","/home/pi/ISTTOK/epics/iocs/ISTTOKrpi2")
|
||||
epicsEnvSet("EPICS_BASE","/home/pi/EPICS/epics-base")
|
||||
epicsEnvSet("HOME","/home/pi")
|
||||
epicsEnvSet("SUPPORT","/home/pi/EPICS/support")
|
||||
epicsEnvSet("ASYN","/home/pi/EPICS/support/asyn")
|
||||
epicsEnvSet("STREAM","/home/pi/EPICS/support/stream")
|
||||
epicsEnvSet("AUTOSAVE","/home/pi/EPICS/support/autosave")
|
||||
@@ -0,0 +1,4 @@
|
||||
#ALARM Limits
|
||||
ISTTOK:vacuum:RPump1-Pressure.HIGH
|
||||
ISTTOK:vacuum:RPump1-Pressure.HIHI
|
||||
|
||||
4
epics/iocs/ISTTOKrpi2/iocBoot/iocISTTOKrpi2/save/iocISTTOKrpi2.sav
Executable file
4
epics/iocs/ISTTOKrpi2/iocBoot/iocISTTOKrpi2/save/iocISTTOKrpi2.sav
Executable file
@@ -0,0 +1,4 @@
|
||||
# autosave R5.3 Automatically generated - DO NOT MODIFY - 211011-110712
|
||||
ISTTOK:vacuum:RPump1-Pressure.HIGH 0.05
|
||||
ISTTOK:vacuum:RPump1-Pressure.HIHI 0.1
|
||||
<END>
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
< envPaths
|
||||
epicsEnvSet( "STREAM_PROTOCOL_PATH", "$(TOP)/db" )
|
||||
epicsEnvSet( "SAVE_DIR", "$(TOP)/iocBoot/$(IOC)" )
|
||||
|
||||
cd "${TOP}"
|
||||
|
||||
@@ -26,9 +27,27 @@ asynSetOption("RS0", 0, "clocal", "Y")
|
||||
asynSetOption("RS0", 0, "crtscts", "N")
|
||||
|
||||
dbLoadRecords("db/ISTTOKpfeiffer.db","P=ISTTOK:,R=vacuum:,bus=RS0")
|
||||
# Uncomment to Debug STREAM serial activity
|
||||
#var streamError 1
|
||||
#var streamDebug 1
|
||||
#streamSetLogfile("stream_logfile.txt")
|
||||
|
||||
#save_restoreSet_status_prefix("$(IOC):")
|
||||
save_restoreSet_status_prefix("ISTTOK:")
|
||||
set_requestfile_path("$(SAVE_DIR)")
|
||||
set_savefile_path("$(SAVE_DIR)/save")
|
||||
save_restoreSet_NumSeqFiles(3)
|
||||
save_restoreSet_SeqPeriodInSeconds(600)
|
||||
set_pass0_restoreFile("$(IOC).sav")
|
||||
set_pass1_restoreFile("$(IOC).sav")
|
||||
#dbLoadRecords("$(AUTOSAVE)/asApp/Db/save_restoreStatus.db", "P=ISTTOK:")
|
||||
|
||||
cd "${TOP}/iocBoot/${IOC}"
|
||||
iocInit
|
||||
|
||||
# Create request file and start periodic 'save’
|
||||
# makeAutosaveFileFromDbInfo("$(SAVE_DIR)/$(IOC).req", "autosaveFields")
|
||||
create_monitor_set("$(IOC).req", 30)
|
||||
|
||||
## Start any sequence programs
|
||||
#seq sncxxx,"user=pi"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#RELEASE Location of external products
|
||||
HOME=/home/pi
|
||||
<<<<<<< HEAD
|
||||
SUPPORT=$(HOME)/Apps/epics7/support
|
||||
#
|
||||
#
|
||||
@@ -16,15 +17,32 @@ AUTOSAVE = $(SUPPORT)/autosave
|
||||
#STREAM_WORKAROUND = 1
|
||||
DRVASYNI2C =$(SUPPORT)/drvAsynI2C
|
||||
SNCSEQ=$(SUPPORT)/seq-2-2
|
||||
=======
|
||||
>>>>>>> 514eb82e224779361fbe0844aaaa5c63fd4fd03f
|
||||
|
||||
SUPPORT=$(HOME)/EPICS/support
|
||||
|
||||
# IPAC is only necessary if support for Greensprings IP488 is required
|
||||
# IPAC release V2-7 or later is required.
|
||||
# IPAC=$(SUPPORT)/ipac-2-15
|
||||
#IPAC=
|
||||
#$(SUPPORT)/ipac-2-15
|
||||
#
|
||||
# # SEQ is required for testIPServer
|
||||
#$(SUPPORT)/seq-2-2-5
|
||||
|
||||
ASYN=$(SUPPORT)/asyn
|
||||
STREAM=$(SUPPORT)/stream
|
||||
AUTOSAVE = $(SUPPORT)/autosave
|
||||
#
|
||||
# SEQ is required for testIPServer
|
||||
#SNCSEQ=$(SUPPORT)/seq-2-2-5
|
||||
SNCSEQ=
|
||||
|
||||
## For sCalcout support in asynOctet - applications include asynCalc.dbd
|
||||
#CALC=$(SUPPORT)/calc-3-7-3
|
||||
CALC=
|
||||
PCRE=
|
||||
#
|
||||
EPICS_BASE=$(HOME)/Apps/epics7/epics-base
|
||||
|
||||
# If CALC was built with SSCAN support then SSCAN must be defined for testEpicsApp
|
||||
#SSCAN=$(SUPPORT)/sscan-2-11-3
|
||||
|
||||
# EPICS_BASE 3.14.6 or later is required
|
||||
EPICS_BASE=/home/pi/EPICS/epics-base
|
||||
|
||||
|
||||
Reference in New Issue
Block a user