2 Commits
v0.0.1 ... main

Author SHA1 Message Date
bb3fdca18b Add more docs 2025-11-04 14:02:25 +01:00
fdc2e485da Add more documentation 2025-11-04 13:55:29 +01:00
3 changed files with 45 additions and 10 deletions

View File

@@ -1,7 +1,19 @@
## 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.
### Use this module in your IOC
To use this in your IOC include the following in your startup script, example from NEUTRA.
```
epicsEnvSet("INSTR", "SQ:NEUTRA:")
runScript "$(camini_DIR)camini.cmd"
```
### Set up Camini the windows application
This is documented on the wiki, here:
https://liniec.pages.psi.ch/sinq/cameras/#andor-ikon-l-camera-with-camini

View File

@@ -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")

View File

@@ -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")