diff --git a/README.md b/README.md index 4fbf2a7..40ccaf6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ ## Camini epics module -This is an epics interface module for camini. +This is an epics interface module for camini the windows application, and camini the NICOS device. +It has only been tested with version 0.5.2 of the windows application, with Ikon-L. -This is the recommended solution (by Pierre) for Ikon-L camera. +This is the recommended solution (by Pierre), at least for Ikon-L camera. You should make sure to configure Camini with string "EPICS-", meaning without internal IOC. It then uses the PVs provided here as the interface. diff --git a/db/camini.db b/db/camini.db index de43a3c..c97f64d 100644 --- a/db/camini.db +++ b/db/camini.db @@ -1,5 +1,12 @@ -# This is a database for the simulation of the CAMINI -# detector control software @ ICON @ SINQ +# This is broker database, with PVs that are expected to exist by the +# camini Ikon-L application. And in turn also NICOS camini device. +# It mainly allows indirect communication between camini the windows application +# and camini the NICOS device. +# And in addition, the $(P)AUX PV has to be written from the sumIO.db. +# +# This has been tested with version 0.5.2 of the Camini windows application. +# + record(bi,"$(P)ARM") { field(DTYP,"Soft Channel") diff --git a/db/sumIO.db b/db/sumIO.db index e492194..fbe84d5 100644 --- a/db/sumIO.db +++ b/db/sumIO.db @@ -1,3 +1,24 @@ +# sumIO.db, SW impl. of protoncurrent averaging and interface with camini and NICOS +# +# The following PVs is indirectly required by camini, they have to first be +# mapped to EpicsReadable devices. +# $(P)THRES +# $(P)BEAMCOPY +# These could be renamed if corresponding NICOS setup files are adapted. +# +# The following PVs are expected to exists by the BeamOracle device in NICOS. +# This device only take $(P) as input, so the name-suffix has to be exact unless +# the BeamOracle device is modified/updated. +# $(P)SWITCH +# $(P)ACCINT +# $(P)ACCTIME +# $(P)BEAMAVG +# +# This DB also provides a macro $(AI) that used to forward the beam valid signal. +# For camini this is used to forward the value to the $(P)CAMINI:AUX PV. +# +################################# +# Comments from original author: # This code integrates the beam intensity signal during the # time where the integration is activated (SWITCH = 1) # and the camera is acquiring (SHUTTER = 0). It also counts @@ -5,6 +26,7 @@ # the average intensity. This average intensity is compared # to a threshold to indicate the camera whether the exposure # is sufficient. +################################## # this is a switch which can be set to activate/deactivate the counting @@ -28,7 +50,6 @@ record(ai, "$(P)ACCTIME"){ field(LINR, "LINEAR") } - # This is the threshold for acceptable intensity record(ai, "$(P)THRES") { field(DTYP, "Soft Channel") @@ -41,7 +62,6 @@ record(ai, "$(P)LASTAVG") { field(LINR, "LINEAR") } - # This is a record to hold a copy of the HIPA proton beam intensity record(ai, "$(P)BEAMCOPY") { field(SCAN, "1 second") @@ -49,7 +69,6 @@ record(ai, "$(P)BEAMCOPY") { field(INP, "$(AI)") } - # This record computes the total exposure time # (gated by the SWITCH and SHUTTER signals) record(calcout, "$(P)EXPTIME") { @@ -64,7 +83,6 @@ record(calcout, "$(P)EXPTIME") { field(DOPT,"Use CALC") } - # This record computes the integral of the beam intensity # (gated by the SWITCH and SHUTTER signals) record(calcout, "$(P)BEAMINT") { @@ -80,7 +98,6 @@ record(calcout, "$(P)BEAMINT") { field(FLNK, "$(P)BEAMAVG") } - # This record computes the average beam intensity record(calcout, "$(P)BEAMAVG") { field(INPA,"$(P)EXPTIME") @@ -93,7 +110,6 @@ record(calcout, "$(P)BEAMAVG") { field(FLNK, "$(P)AUX") } - # This record compares the average intensity to the threshold record(calcout, "$(P)AUX") { field(INPA,"$(P)BEAMAVG")