Commit 6f486c6e authored by Service Account for Max Wyman's avatar Service Account for Max Wyman
Browse files

Initial commit -- cloned from 25idc

parents
BASE=3.14
include modules
BASE=3.15
include modules
BASE=7.0
include modules
MODULES="sncseq ipac autosave alive caputRecorder sscan asyn calc busy std dac128v ip330 ipUnidig love ip optics modbus vac softGlue vme motor camac softGlueZynq"
ALIVE=R1-1-1
ASYN=R4-36
AUTOSAVE=R5-10
BUSY=R1-7-2
CALC=R3-7-3
CAMAC=R2-7-1
CAPUTRECORDER=R1-7-2
DAC128V=R2-9
IP=R2-20-1
IPAC=2.15
IP330=R2-9
IPUNIDIG=R2-11
LOVE=R3-2-7
MODBUS=R3-0
MOTOR=master
OPTICS=R2-13-3
SNCSEQ=R2-2-8
SOFTGLUE=R2-8-2
SOFTGLUEZYNQ=R2-0-2
SSCAN=R2-11-3
STD=R3-6
VAC=R1-9
VME=R2-9-2
#Which files need CRLF handling
* text=auto
*.sh eol=lf
*.bat eol=crlf
*.cmd -text
*~
O.*
*.swp
*BAK.adl
bin/
db/
dbd/
html/
include/
lib/
templates/
cdCommands
envPaths
dllPath.bat
auto_settings.sav*
auto_positions.sav*
built_*.req
dbl-all.txt
*.sav*
scan1Menu.sav
[submodule ".ci"]
path = .ci
url = https://github.com/epics-base/ci-scripts
08/24/2022 - 13:49:29 - fedorov
08/24/2022 - 15:39:42 - fedorov
08/24/2022 - 15:40:12 - fedorov
08/24/2022 - 15:40:23 - fedorov
08/24/2022 - 16:05:02 - fedorov
08/25/2022 - 11:47:48 - fedorov
08/26/2022 - 06:02:38 - fedorov
09/07/2022 - 06:14:51 - fedorov
# .travis.xml for use with EPICS Base ci-scripts
# (see: https://github.com/epics-base/ci-scripts)
language: cpp
compiler: gcc
dist: xenial
# Minimal set of packages needed to compile EPICS Base
cache:
directories:
- $HOME/.cache
env:
global:
- SETUP_PATH=.ci-local:.ci
# for the sequencer on Windows
- CHOCO=re2c
addons:
apt:
packages:
# for all EPICS builds
- libreadline6-dev
- libncurses5-dev
- perl
# for clang compiler
- clang
# for mingw builds (32bit and 64bit)
- g++-mingw-w64-i686
- g++-mingw-w64-x86-64
# for RTEMS cross builds
- qemu-system-x86
homebrew:
packages:
# for the sequencer
- re2c
update: true
install:
- python .ci/cue.py prepare
script:
- python .ci/cue.py build
- python .ci/cue.py test
- python .ci/cue.py test-results
# If you need to do more during install and build,
# add a local directory to your module and do e.g.
# - ./.ci-local/travis/install-extras.sh
# Define build jobs
# Well-known variables to use
# SET source setup file
# EXTRA content will be added to make command line
# STATIC set to YES for static build (default: NO)
# TEST set to NO to skip running the tests (default: YES)
# VV set to make build scripts verbose (default: unset)
# Usually from setup files, but may be specified or overridden
# on a job line
# MODULES list of dependency modules
# BASE branch or release tag name of the EPICS Base to use
# <MODULE> branch or release tag for a specific module
# ... see README for setup file syntax description
jobs:
include:
# Older Base releases
- env: SET=base3-14
# - env: SET=base3-14 BCFG=static
- env: SET=base3-15
# - env: SET=base3-15 BCFG=static
# Default gcc, static build
- env: SET=base7-0
# - env: SET=base7-0 BCFG=static
# Default clang build
- env: SET=base7-0
compiler: clang
# - env: SET=base7-0 EXTRA="CMD_CXXFLAGS=-std=c++11"
# compiler: clang
# Trusty: compiler versions very close to RHEL 7
- env: SET=base7-0
dist: trusty
# - env: SET=base7-0 BCFG=debug
# dist: trusty
# Other gcc versions (added as an extra package)
# - env: SET=base7-0
# compiler: gcc-6
# addons: { apt: { packages: ["g++-6"], sources: ["ubuntu-toolchain-r-test"] } }
# - env: SET=base7-0
# compiler: gcc-7
# addons: { apt: { packages: ["g++-7"], sources: ["ubuntu-toolchain-r-test"] } }
# Cross-compilations to Windows using MinGW and WINE
# - env: SET=base7-0 WINE=32 TEST=NO BCFG=static
- env: SET=base7-0 WINE=64 TEST=NO
# Windows builds
# - env: SET=base7-0
# os: windows
# compiler: vs2017
- env: SET=base7-0 BCFG=static
os: windows
compiler: vs2017
# - env: SET=base7-0 BCFG=debug
# os: windows
# compiler: vs2017
# MacOS build
- env: SET=base7-0
os: osx
compiler: clang
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 += 25idd.db
DB += $(patsubst ../%, %, $(wildcard ../*.template))
DB += $(patsubst ../%, %, $(wildcard ../*.db))
DB += $(patsubst ../%, %, $(wildcard ../*.vdb))
REQ += $(patsubst ../%, %, $(wildcard ../*.req))
#----------------------------------------------------
# If <anyname>.db template is not named <anyname>*.template add
# <anyname>_TEMPLATE = <templatename>
include $(TOP)/configure/RULES
#----------------------------------------
# ADD RULES AFTER THIS LINE
grecord(bo,"$(P)RemoteAccess") {
field(DESC,"AS for Remote Hosts")
field(DTYP,"Soft Channel")
field(ZNAM,"Disabled")
field(ONAM,"Enabled")
field(ASG, "controlFields")
field(PINI, "YES")
}
grecord(bo,"$(P)LocalAccess") {
field(DESC,"AS for Local PCs")
field(DTYP,"Soft Channel")
field(ZNAM,"Disabled")
field(ONAM,"Enabled")
field(ASG, "controlFields")
# test nondefault value
field(DOL, "1")
field(PINI, "YES")
}
grecord(bo,"$(P)AS_OnOff") {
field(DESC,"Access Security On/Off")
field(DTYP,"Soft Channel")
field(ZNAM,"On")
field(ONAM,"Off")
field(ASG, "controlFields")
field(PINI, "YES")
}
$(P)AS_OnOff
$(P)LocalAccess
$(P)RemoteAccess
$(P)$(R).SCAN
$(P)$(R).TMOD
$(P)$(R).OEOS
$(P)$(R).IEOS
$(P)$(R).OFMT
$(P)$(R).IFMT
$(P)$(R).TMOT
$(P)$(R).NRRD
$(P)$(R).BAUD
$(P)$(R).DBIT
$(P)$(R).SBIT
$(P)$(R).PRTY
$(P)$(R).MCTL
$(P)$(R).FCTL
# EnergyScan PVs
########################################################################
#
# Control PVs
#
########################################################################
record(busy, "$(P)eScan:Load")
{
field(SCAN, "Passive")
field(ZNAM, "Done")
field(ONAM, "Loading")
}
#record(calcout, "$(P)eScan:LoadCalc")
#{
# field(INPA, "$(P)eScan:Load CP")
# field(CALC, "A")
# field(OOPT, "Transition To Non-zero")
# field(OUT, "$(P)eScan:LoadSeq.PROC")
#}
record(sseq, "$(P)eScan:LoadSeq")
{
field(DESC, "Load Scan")
field(SCAN, "Passive")
field(SELM, "All")
field(DO1, "1")
field(LNK1, "$(P)eScan:Load PP")
field(DLY2, "0.25")
field(DO2, "1")
field(WAIT2, "1")
field(LNK2, "$(P)eScan:Load_eSteps.PROC")
field(DLY3, "0.25")
field(DO3, "1")
field(WAIT3, "1")
field(LNK3, "$(P)eScan:Load_intTimes.PROC")
field(DLY4, "0.25")
field(DO4, "1")
field(WAIT4, "1")
field(LNK4, "$(P)eScan:Load_IDeSteps.PROC")
field(DLY5, "0.25")
field(DOL5, "$(P)eScan:nSteps.VAL")
field(WAIT5, "0")
field(LNK5, "$(P)$(SCAN).NPTS")
field(DLY6, "0.25")
field(DO6, "0")
field(LNK6, "$(P)eScan:SettingsLoaded PP")
field(DLY7, "0.25")
field(DO7, "0")
field(LNK7, "$(P)eScan:Load PP")
}
record(busy, "$(P)eScan:Start")
{
field(SCAN, "Passive")
field(ZNAM, "Done")
field(ONAM, "Scanning")
}
#record(calcout, "$(P)eScan:StartCalc")
#{
# field(INPA, "$(P)eScan:Start CP")
# field(CALC, "A")
# field(OOPT, "Transition To Non-zero")
# field(OUT, "$(P)eScan:StartFanout.PROC")
## field(DISV, "1")
## field(SDIS, "$(P)eScan:PreventScan.RVAL")
#}
record(sseq, "$(P)eScan:StartSeq")
{
field(DESC, "Trigger Energy Scan ")
field(SCAN, "Passive")
field(DO1, "1")
field(LNK1, "$(P)eScan:Start")
field(DO2, "2")
field(LNK2, "$(P)$(SCAN).EXSC CA")
field(DISV, "1")
field(SDIS, "$(P)eScan:PreventScan.RVAL")
}
record(calcout, "$(P)eScan:ClearStart")
{
field(SDIS, "$(P)eScan:Start.RVAL")
field(DISV, "0")
field(INPA, "$(P)$(SCAN).BUSY CP")
field(CALC, "A")
field(OOPT, "Transition To Zero")
field(OUT, "$(P)eScan:Start PP")
}
record(dfanout, "$(P)eScan:Pause") {
field(DOL, "1")
field(OMSL, "closed_loop")
field(OUTA, "$(P)$(SCAN).PAUSE")
}
record(dfanout, "$(P)eScan:Stop") {
field(DOL, "0")
field(OMSL, "closed_loop")
field(OUTA, "$(P)$(SCAN).EXSC")
}
record(bi, "$(P)eScan:SettingsLoaded") {
field(DESC, "Flag raised when settings changed")
field(ZNAM, "Loaded")
field(ONAM, "Changed")
}
record(sseq, "$(P)eScan:RaiseFlag")
{
field(DESC, "Have any of the arrays been changed")
field(DO1, "1")
field(LNK1, "$(P)eScan:SettingsLoaded PP")
}
record(calc, "$(P)eScan:PreventScan")
{
field(DESC, "Keep scan from being started")
field(INPA, "$(P)eScan:SettingsLoaded CP")
field(INPB, "$(P)eScan:Load CP")
field(CALC, "A || B")
}
########################################################################
#
# Inputs for scan
#
########################################################################
record(ao,"$(P)eScan:E0") {
field(DESC,"Base Energy")
field(PREC, "6")
field(EGU, "eV")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_1_E0") {
field(DESC,"Region 1 starting E relative to E0")
field(PREC, "6")
field(EGU, "eV")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_2_E0") {
field(DESC,"Region 2 starting E relative to E0")
field(PREC, "6")
field(EGU, "eV")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_3_E0") {
field(DESC,"Region 3 starting E relative to E0")
field(PREC, "6")
field(EGU, "eV")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_3_k_final") {
field(DESC,"Region 1 ending k")
field(PREC, "6")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_1_E_stepSize") {
field(DESC,"Region 1 energy step size")
field(PREC, "6")
field(EGU, "eV")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_2_E_stepSize") {
field(DESC,"Region 2 energy step size")
field(PREC, "6")
field(EGU, "eV")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_3_k_stepSize") {
field(DESC,"Region 3 energy step size")
field(PREC, "6")
field(EGU, "Ang")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_1_intTime0") {
field(DESC,"Region 1 integration time")
field(PREC, "6")
field(EGU, "seconds")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_2_intTime0") {
field(DESC,"Region 2 integration time")
field(PREC, "6")
field(EGU, "seconds")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_3_intTime0") {
field(DESC,"Region 3 integration time")
field(PREC, "6")
field(EGU, "seconds")
field(LOW, "0")
field(IVOA, "Don't drive outputs")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:region_3_intTime_W") {
field(DESC,"Region 3 integration time weighting")
field(PREC, "6")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
record(ao,"$(P)eScan:E_to_k_factor") {
field(DESC,"E to k factor")
field(EGU, "eV/Ang/Ang")
field(PREC, "3")
field(VAL, "3.82")
# field(FLNK, "$(P)eScan:RaiseFlag.PROC CA")
}
########################################################################
#
# Update Calcs
#
########################################################################
#record(calcout, "$(P)eScan:SettingsCalc1") {
# field(DESC, "Raises settings loaded flag")
# field(INPA, "$(P)eScan:E0 CP")
# field(INPB, "$(P)eScan:region_1_E0 CP")
# field(INPC, "$(P)eScan:region_2_E0 CP")
# field(INPD, "$(P)eScan:region_3_E0 CP")
# field(INPE, "$(P)eScan:region_3_k_final CP")
# field(INPF, "$(P)eScan:region_1_E_stepSize CP")
# field(INPG, "$(P)eScan:region_2_E_stepSize CP")
# field(INPH, "$(P)eScan:region_3_k_stepSize CP")
# field(INPI, "$(P)eScan:region_1_intTime0 CP")
# field(INPJ, "$(P)eScan:region_2_intTime0 CP")
# field(INPK, "$(P)eScan:region_3_intTime0 CP")
# field(INPL, "$(P)eScan:region_3_intTime_W CP")
# field(CALC, "1")
# field(OUT, "$(P)eScan:SettingsLoaded PP")
#}
#
#record(calcout, "$(P)eScan:SettingsCalc2") {
# field(DESC, "Raises settings loaded flag")
# field(INPA, "$(P)$(BRANCH):ID_offset CP CP")
# field(INPB, "$(P)eScan:E_to_k_factor CP")
# field(CALC, "1")
# field(OUT, "$(P)eScan:SettingsLoaded PP")
#}
########################################################################
#
# Simple Calcs
#
########################################################################
record(calc, "$(P)eScan:region_3_k0") {
field(DESC, "Initial wavenumber for region 3")
field(INPA, "$(P)eScan:E0 CP")
field(INPB, "$(P)eScan:region_3_E0 CP")
field(INPC, "$(P)eScan:E_to_k_factor CP")
field(CALC, "D:=A+B; SQRT(B/C)")
field(DISV, "0")
field(SDIS, "$(P)eScan:E_to_k_factor.VAL CP")
field(PREC, "5")
}
record(calc, "$(P)eScan:region_3_Ef") {
field(DESC, "Final energy in region 3")
field(INPA, "$(P)eScan:E0 CP")
field(INPB, "$(P)eScan:region_3_k_final CP")
field(INPC, "$(P)eScan:E_to_k_factor CP")
field(CALC, "D := C * B^2; D + A")
field(PREC, "5")
}
record(calc, "$(P)eScan:validEnergies") {
field(DESC, "Checks if inputs are valid")
field(INPA, "$(P)eScan:E0 CP")
field(INPB, "$(P)eScan:region_1_E0 CP")
field(INPC, "$(P)eScan:region_2_E0 CP")
field(INPD, "$(P)eScan:region_3_E0 CP")
field(INPE, "$(P)eScan:region_3_Ef CP")
# field(INPF, "$(P)eScan:region_1_E_stepSize")
# field(INPG, "$(P)eScan:region_2_E_stepSize")
# field(INPH, "$(P)eScan:region_3_E_stepSize")
# field(INPI, "$(P)eScan:region_1_intTime0")
# field(INPJ, "$(P)eScan:region_2_intTime0")
# field(INPK, "$(P)eScan:region_3_intTime0")
# field(INPL, "$(P)eScan:region_3_intTime_W")
field(CALC, "B < C && C < D && D < E")
# field(OMSL, "On Change")
# field(OUT, "$(P)eScan:region_1_StepsFO.VAL PP")
# field(FLNK, "$(P)eScan:region_1_eSteps")
}
record(calc, "$(P)eScan:region_1_enable")
{
field(DESC, "Avoiding Divide by 0 and bad Es")
field(INPA, "$(P)eScan:region_1_E_stepSize CP")
field(INPB, "$(P)eScan:validEnergies.VAL CP")
field(CALC, "(A > 0) && B")
}
#record(calcout, "$(P)eScan:region_1_nSteps") {
record(calc, "$(P)eScan:region_1_nSteps") {
field(DESC, "Number of steps in region 1")
field(INPA, "$(P)eScan:region_2_E0 CP")
field(INPB, "$(P)eScan:region_1_E0 CP")
field(INPC, "$(P)eScan:region_1_E_stepSize CP")
field(CALC, "CEIL((A-B)/C)")
# field(OUT, "$(P)eScan:region_1_StepsFO.VAL PP")
field(DISV, "0")
field(SDIS, "$(P)eScan:region_1_enable.VAL CP")
field(FLNK, "$(P)eScan:region_1_StepsFO.PROC CA")
}
record(dfanout, "$(P)eScan:region_1_StepsFO")
{
field(DESC, "Set size of region 1 calcs")
field(SCAN, "Passive")
field(SELM, "All")