Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bb3fdca18b | |||
| fdc2e485da |
16
README.md
16
README.md
@@ -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
|
||||
|
||||
11
db/camini.db
11
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")
|
||||
|
||||
28
db/sumIO.db
28
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")
|
||||
|
||||
Reference in New Issue
Block a user