]> jspc29.x-matter.uni-frankfurt.de Git - mvd_epics.git/commitdiff
BALZERS_PKG020: .proto .db first working version
authorOle Artz <ole.artz@t-online.de>
Wed, 21 Jun 2017 12:33:24 +0000 (14:33 +0200)
committerOle Artz <ole.artz@t-online.de>
Wed, 21 Jun 2017 12:33:24 +0000 (14:33 +0200)
18 files changed:
BALZERS_PKG020/BALZERS_PKG020App/Db/BALZERS_PKG020.db [new file with mode: 0644]
BALZERS_PKG020/BALZERS_PKG020App/Db/Makefile [new file with mode: 0644]
BALZERS_PKG020/BALZERS_PKG020App/Makefile [new file with mode: 0644]
BALZERS_PKG020/BALZERS_PKG020App/src/BALZERS_PKG020Main.cpp [new file with mode: 0644]
BALZERS_PKG020/BALZERS_PKG020App/src/Makefile [new file with mode: 0644]
BALZERS_PKG020/Makefile [new file with mode: 0644]
BALZERS_PKG020/configure/CONFIG [new file with mode: 0644]
BALZERS_PKG020/configure/CONFIG_SITE [new file with mode: 0644]
BALZERS_PKG020/configure/Makefile [new file with mode: 0644]
BALZERS_PKG020/configure/RELEASE [new file with mode: 0644]
BALZERS_PKG020/configure/RULES [new file with mode: 0644]
BALZERS_PKG020/configure/RULES.ioc [new file with mode: 0644]
BALZERS_PKG020/configure/RULES_DIRS [new file with mode: 0644]
BALZERS_PKG020/configure/RULES_TOP [new file with mode: 0644]
BALZERS_PKG020/iocBoot/Makefile [new file with mode: 0644]
BALZERS_PKG020/iocBoot/iocBALZERS_PKG020/Makefile [new file with mode: 0644]
BALZERS_PKG020/iocBoot/iocBALZERS_PKG020/st.cmd [new file with mode: 0644]
BALZERS_PKG020/protocols/BALZERS_PKG020.proto [new file with mode: 0644]

diff --git a/BALZERS_PKG020/BALZERS_PKG020App/Db/BALZERS_PKG020.db b/BALZERS_PKG020/BALZERS_PKG020App/Db/BALZERS_PKG020.db
new file mode 100644 (file)
index 0000000..c058363
--- /dev/null
@@ -0,0 +1,31 @@
+#############################################
+# ###                                   ### #
+# ### EPICS Database for                ### #
+# ### BALZERS_PKG020                    ### #
+# ###                                   ### #
+# ### author: O.Artz                    ### #
+# ###                                   ### #
+# ###                                   ### #
+# ### Ref 1.0; 2017-06-21               ### #
+# ###                                   ### #
+# ### macros:                           ### #
+# ###         sys   system              ### #
+# ###         sub   subsystem           ### #
+# ###         vsys  vacuum sub system   ### #
+# ###         PORT  Asyn Interface      ### #
+#############################################
+
+record (ai, "$(sys):$(sub):VACUUM:$(vsys):Pressure") {
+  field (DTYP, "stream")
+  field (INP,  "@BALZERS_PKG020.proto getPressureValue3 $(PORT)")
+  field (SCAN, "10 second")
+  #field (FLNK, "PANDA:$(subsys):COOLING:$(sector):getExtTemp")
+  field (EGU, "mbar")
+  #field (PREC, "2")
+  #field (ADEL, "1")
+  #field (MDEL, "1")
+  #field (ASLO, "0.01")
+  #field (AOFF, "0")
+}
+
+
diff --git a/BALZERS_PKG020/BALZERS_PKG020App/Db/Makefile b/BALZERS_PKG020/BALZERS_PKG020App/Db/Makefile
new file mode 100644 (file)
index 0000000..983981d
--- /dev/null
@@ -0,0 +1,22 @@
+TOP=../..
+include $(TOP)/configure/CONFIG
+#----------------------------------------
+#  ADD MACRO DEFINITIONS AFTER THIS LINE
+
+#----------------------------------------------------
+#  Optimization of db files using dbst (DEFAULT: NO)
+#DB_OPT = YES
+
+#----------------------------------------------------
+# Create and install (or just install) into <top>/db
+# databases, templates, substitutions like this
+#DB += xxx.db
+
+#----------------------------------------------------
+# If <anyname>.db template is not named <anyname>*.template add
+# <anyname>_template = <templatename>
+
+include $(TOP)/configure/RULES
+#----------------------------------------
+#  ADD RULES AFTER THIS LINE
+
diff --git a/BALZERS_PKG020/BALZERS_PKG020App/Makefile b/BALZERS_PKG020/BALZERS_PKG020App/Makefile
new file mode 100644 (file)
index 0000000..10e0126
--- /dev/null
@@ -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
+
diff --git a/BALZERS_PKG020/BALZERS_PKG020App/src/BALZERS_PKG020Main.cpp b/BALZERS_PKG020/BALZERS_PKG020App/src/BALZERS_PKG020Main.cpp
new file mode 100644 (file)
index 0000000..22ac096
--- /dev/null
@@ -0,0 +1,23 @@
+/* BALZERS_PKG020Main.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);
+}
diff --git a/BALZERS_PKG020/BALZERS_PKG020App/src/Makefile b/BALZERS_PKG020/BALZERS_PKG020App/src/Makefile
new file mode 100644 (file)
index 0000000..0bd1cb3
--- /dev/null
@@ -0,0 +1,47 @@
+TOP=../..
+
+include $(TOP)/configure/CONFIG
+#----------------------------------------
+#  ADD MACRO DEFINITIONS AFTER THIS LINE
+#=============================
+
+#=============================
+# Build the IOC application
+
+PROD_IOC = BALZERS_PKG020
+# BALZERS_PKG020.dbd will be created and installed
+DBD += BALZERS_PKG020.dbd
+
+# BALZERS_PKG020.dbd will be made up from these files:
+BALZERS_PKG020_DBD += base.dbd
+BALZERS_PKG020_DBD += stream.dbd
+BALZERS_PKG020_DBD += asyn.dbd
+BALZERS_PKG020_DBD += drvAsynSerialPort.dbd
+
+# Include dbd files from all support applications:
+#BALZERS_PKG020_DBD += xxx.dbd
+
+# Add all the support libraries needed by this IOC
+#BALZERS_PKG020_LIBS += xxx
+BALZERS_PKG020_LIBS += stream
+BALZERS_PKG020_LIBS += asyn
+
+# BALZERS_PKG020_registerRecordDeviceDriver.cpp derives from BALZERS_PKG020.dbd
+BALZERS_PKG020_SRCS += BALZERS_PKG020_registerRecordDeviceDriver.cpp
+
+# Build the main IOC entry point on workstation OSs.
+BALZERS_PKG020_SRCS_DEFAULT += BALZERS_PKG020Main.cpp
+BALZERS_PKG020_SRCS_vxWorks += -nil-
+
+# Add support from base/src/vxWorks if needed
+#BALZERS_PKG020_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
+
+# Finally link to the EPICS Base libraries
+BALZERS_PKG020_LIBS += $(EPICS_BASE_IOC_LIBS)
+
+#===========================
+
+include $(TOP)/configure/RULES
+#----------------------------------------
+#  ADD RULES AFTER THIS LINE
+
diff --git a/BALZERS_PKG020/Makefile b/BALZERS_PKG020/Makefile
new file mode 100644 (file)
index 0000000..19c9068
--- /dev/null
@@ -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
diff --git a/BALZERS_PKG020/configure/CONFIG b/BALZERS_PKG020/configure/CONFIG
new file mode 100644 (file)
index 0000000..c1a4703
--- /dev/null
@@ -0,0 +1,29 @@
+# CONFIG - Load build configuration data
+#
+# Do not make changes to this file!
+
+# Allow user to override where the build rules come from
+RULES = $(EPICS_BASE)
+
+# RELEASE files point to other application tops
+include $(TOP)/configure/RELEASE
+-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common
+ifdef T_A
+-include $(TOP)/configure/RELEASE.Common.$(T_A)
+-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
+endif
+
+CONFIG = $(RULES)/configure
+include $(CONFIG)/CONFIG
+
+# Override the Base definition:
+INSTALL_LOCATION = $(TOP)
+
+# CONFIG_SITE files contain other build configuration settings
+include $(TOP)/configure/CONFIG_SITE
+-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
+ifdef T_A
+ -include $(TOP)/configure/CONFIG_SITE.Common.$(T_A)
+ -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
+endif
+
diff --git a/BALZERS_PKG020/configure/CONFIG_SITE b/BALZERS_PKG020/configure/CONFIG_SITE
new file mode 100644 (file)
index 0000000..212485e
--- /dev/null
@@ -0,0 +1,43 @@
+# CONFIG_SITE
+
+# Make any application-specific changes to the EPICS build
+#   configuration variables in this file.
+#
+# Host/target specific settings can be specified in files named
+#   CONFIG_SITE.$(EPICS_HOST_ARCH).Common
+#   CONFIG_SITE.Common.$(T_A)
+#   CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
+
+# CHECK_RELEASE controls the consistency checking of the support
+#   applications pointed to by the RELEASE* files.
+# Normally CHECK_RELEASE should be set to YES.
+# Set CHECK_RELEASE to NO to disable checking completely.
+# Set CHECK_RELEASE to WARN to perform consistency checking but
+#   continue building even if conflicts are found.
+CHECK_RELEASE = YES
+
+# Set this when you only want to compile this application
+#   for a subset of the cross-compiled target architectures
+#   that Base is built for.
+#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
+
+# To install files into a location other than $(TOP) define
+#   INSTALL_LOCATION here.
+#INSTALL_LOCATION=</absolute/path/to/install/top>
+
+# Set this when the IOC and build host use different paths
+#   to the install location. This may be needed to boot from
+#   a Microsoft FTP server say, or on some NFS configurations.
+#IOCS_APPL_TOP = </IOC's/absolute/path/to/install/top>
+
+# For application debugging purposes, override the HOST_OPT and/
+#   or CROSS_OPT settings from base/configure/CONFIG_SITE
+#HOST_OPT = NO
+#CROSS_OPT = NO
+
+# These allow developers to override the CONFIG_SITE variable
+# settings without having to modify the configure/CONFIG_SITE
+# file itself.
+-include $(TOP)/../CONFIG_SITE.local
+-include $(TOP)/configure/CONFIG_SITE.local
+
diff --git a/BALZERS_PKG020/configure/Makefile b/BALZERS_PKG020/configure/Makefile
new file mode 100644 (file)
index 0000000..9254309
--- /dev/null
@@ -0,0 +1,8 @@
+TOP=..
+
+include $(TOP)/configure/CONFIG
+
+TARGETS = $(CONFIG_TARGETS)
+CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
+
+include $(TOP)/configure/RULES
diff --git a/BALZERS_PKG020/configure/RELEASE b/BALZERS_PKG020/configure/RELEASE
new file mode 100644 (file)
index 0000000..bd6b780
--- /dev/null
@@ -0,0 +1,43 @@
+# RELEASE - Location of external support modules
+#
+# IF YOU MAKE ANY CHANGES to this file you must subsequently
+# do a "gnumake rebuild" in this application's top level
+# directory.
+#
+# The build process does not check dependencies against files
+# that are outside this application, thus you should do a
+# "gnumake rebuild" in the top level directory after EPICS_BASE
+# or any other external module pointed to below is rebuilt.
+#
+# Host- or target-specific settings can be given in files named
+#  RELEASE.$(EPICS_HOST_ARCH).Common
+#  RELEASE.Common.$(T_A)
+#  RELEASE.$(EPICS_HOST_ARCH).$(T_A)
+#
+# This file is parsed by both GNUmake and an EPICS Perl script,
+# so it can ONLY contain definititions of paths to other support
+# modules, variable definitions that are used in module paths,
+# and include statements that pull in other RELEASE files.
+# Variables may be used before their values have been set.
+# Build variables that are NOT used in paths should be set in
+# the CONFIG_SITE file.
+
+# Variables and paths to dependent modules:
+#MODULES = /path/to/modules
+#MYMODULE = $(MODULES)/my-module
+
+# If using the sequencer, point SNCSEQ at its top directory:
+#SNCSEQ = $(MODULES)/seq-ver
+
+# EPICS_BASE should appear last so earlier modules can override stuff:
+EPICS_BASE = /home/scs/EPICS/EPICS/base
+
+# Set RULES here if you want to use build rules from somewhere
+# other than EPICS_BASE:
+#RULES = $(MODULES)/build-rules
+
+# These allow developers to override the RELEASE variable settings
+# without having to modify the configure/RELEASE file itself.
+-include $(TOP)/../RELEASE.local
+-include $(TOP)/configure/RELEASE.local
+
diff --git a/BALZERS_PKG020/configure/RULES b/BALZERS_PKG020/configure/RULES
new file mode 100644 (file)
index 0000000..6d56e14
--- /dev/null
@@ -0,0 +1,6 @@
+# RULES
+
+include $(CONFIG)/RULES
+
+# Library should be rebuilt because LIBOBJS may have changed.
+$(LIBNAME): ../Makefile
diff --git a/BALZERS_PKG020/configure/RULES.ioc b/BALZERS_PKG020/configure/RULES.ioc
new file mode 100644 (file)
index 0000000..901987c
--- /dev/null
@@ -0,0 +1,2 @@
+#RULES.ioc
+include $(CONFIG)/RULES.ioc
diff --git a/BALZERS_PKG020/configure/RULES_DIRS b/BALZERS_PKG020/configure/RULES_DIRS
new file mode 100644 (file)
index 0000000..3ba269d
--- /dev/null
@@ -0,0 +1,2 @@
+#RULES_DIRS
+include $(CONFIG)/RULES_DIRS
diff --git a/BALZERS_PKG020/configure/RULES_TOP b/BALZERS_PKG020/configure/RULES_TOP
new file mode 100644 (file)
index 0000000..d09d668
--- /dev/null
@@ -0,0 +1,3 @@
+#RULES_TOP
+include $(CONFIG)/RULES_TOP
+
diff --git a/BALZERS_PKG020/iocBoot/Makefile b/BALZERS_PKG020/iocBoot/Makefile
new file mode 100644 (file)
index 0000000..91e47d0
--- /dev/null
@@ -0,0 +1,6 @@
+TOP = ..
+include $(TOP)/configure/CONFIG
+DIRS += $(wildcard *ioc*)
+DIRS += $(wildcard as*)
+include $(CONFIG)/RULES_DIRS
+
diff --git a/BALZERS_PKG020/iocBoot/iocBALZERS_PKG020/Makefile b/BALZERS_PKG020/iocBoot/iocBALZERS_PKG020/Makefile
new file mode 100644 (file)
index 0000000..e064d73
--- /dev/null
@@ -0,0 +1,4 @@
+TOP = ../..
+include $(TOP)/configure/CONFIG
+TARGETS = envPaths
+include $(TOP)/configure/RULES.ioc
diff --git a/BALZERS_PKG020/iocBoot/iocBALZERS_PKG020/st.cmd b/BALZERS_PKG020/iocBoot/iocBALZERS_PKG020/st.cmd
new file mode 100644 (file)
index 0000000..a315228
--- /dev/null
@@ -0,0 +1,22 @@
+#!../../bin/linux-arm/BALZERS_PKG020
+
+## You may have to change BALZERS_PKG020 to something else
+## everywhere it appears in this file
+
+< envPaths
+epicsEnvSet ("STREAM_PROTOCOL_PATH", "${TOP}/protocols")
+
+cd "${TOP}"
+
+## Register all support components
+dbLoadDatabase "dbd/BALZERS_PKG020.dbd"
+BALZERS_PKG020_registerRecordDeviceDriver pdbbase
+
+## Load record instances
+#dbLoadRecords("db/xxx.db","user=scs")
+
+cd "${TOP}/iocBoot/${IOC}"
+iocInit
+
+## Start any sequence programs
+#seq sncxxx,"user=scs"
diff --git a/BALZERS_PKG020/protocols/BALZERS_PKG020.proto b/BALZERS_PKG020/protocols/BALZERS_PKG020.proto
new file mode 100644 (file)
index 0000000..785180d
--- /dev/null
@@ -0,0 +1,30 @@
+#################################################
+# ###                                       ### #
+# ### StreamDevice Protocol for             ### #
+# ### VACOM_MVC3                            ### #
+# ###                                       ### #
+# ### author: O.Artz                        ### #
+# ###                                      ### #
+# ###                                       ### #
+# ### Ref 1.0; 2017-06-21                   ### #
+#################################################
+
+###################
+# ### Globals ### #
+###################
+Terminator    = CR;
+LockTimeout   = 5000;
+ReplyTimeout  = 500;
+ReadTimeout   = 500;
+WriteTimeout  = 300;
+ExtraInput    = Ignore;
+
+#####################
+# ### Protocols ### #
+#####################
+
+
+getPressureValue3 {
+  out "RPV3";
+  in  "%*d,\t%e";
+}