Added support for the dimetix distance measurement device

Refs #DM-93
This commit is contained in:
2016-08-09 15:36:22 +02:00
parent 28999f2212
commit 2950f21353
3 changed files with 97 additions and 0 deletions

View File

@ -0,0 +1,34 @@
#!../../bin/centos7-x86_64/sinqEPICS
# for debugging..................
## You may have to change sinqEPICS to something else
## everywhere it appears in this file
< envPaths
cd ${TOP}
## Register all support components
dbLoadDatabase "dbd/sinqEPICS.dbd"
dbLoadDatabase "dbd/sinq.dbd"
sinqEPICS_registerRecordDeviceDriver pdbbase
## Load record instances
#dbLoadRecords("db/xxx.db","user=koenneckeHost")
#---------- Install SPS
drvAsynIPPortConfigure("dimetix", "localhost:64000",0,0,0)
#drvAsynIPPortConfigure("slsvme", "localhost:8080",0,0,0)
dbLoadRecords("$(ASYN)/db/asynRecord.db","P=SQ:AMOR:,R=dimetix,PORT=dimetix,ADDR=0,OMAX=80,IMAX=80")
epicsEnvSet ("STREAM_PROTOCOL_PATH", "$(TOP)/sinqEPICSApp/Db:.")
cd ${TOP}/iocBoot/iocsinqEPICS
dbLoadRecords("$(TOP)/sinqEPICSApp/Db/dimetix.db","PREFIX=SQ:AMOR:DIMETIX:")
iocInit
## Start any sequence programs
#seq sncxxx,"user=koenneckeHost"

View File

@ -0,0 +1,40 @@
# DB file for dimetix laser distance measurement device
##
## Switch the laser
##
record(bo, "$(PREFIX)LASER") {
field(DESC, "Switch laser on and off")
field(DTYP,"stream")
field(OUT,"@dimetix.proto setlaser() dimetix 0")
field(PINI, "YES")
field(VAL, "0")
field(ZNAM, "OFF")
field(ONAM, "ON")
}
##
## Read the distance
##
record(ai, "$(PREFIX)DIST") {
field(DTYP, "stream")
field(DESC, "Distance")
field(INP, "@dimetix.proto read() dimetix 0")
field(SCAN, "1 second")
field(PREC, "1")
field(EGU, "mm")
}
##
## Set the readback (for simulation purposes only)
##
record(ao, "$(PREFIX)SimVal") {
field(DTYP, "stream")
field(DESC, "Set readback for simulation")
field(OUT, "@dimetix.proto setreadback() dimetix 0")
field(PREC, "1")
field(EGU, "mm")
}

View File

@ -0,0 +1,23 @@
# Streamdevice protocol file for a Dimetix distance measuring device as used at
# AMOR
InTerminator = "\n";
OutTerminator = "\r\n";
ExtraInput = Ignore;
setlaser {
out "%{s0p|s0o}";
in "g0?";
}
setreadback {
out "setval %d";
in "g0?";
}
read {
out "s0g";
in "g0g+%d";
@mismatch {in "@E213"}
}