Create Realtime Sampler Configuration
61
Realtime-Sampler-Configuration.md
Normal file
61
Realtime-Sampler-Configuration.md
Normal file
@@ -0,0 +1,61 @@
|
||||
Introduction
|
||||
|
||||
The Pixelator/Orocos system includes a feature that allows a data channel (that can be slow to respond) to be sampled at a fast rate and thus allow the data channel to be recorded on a pixel-by-pixel basis. This is used at PolLux to record variations in the storage ring current. At the time of writing, this is only implemented for EPICS channels, but it is easy to implement for other positioner types by copying code that references "rtDetector" in [PixelatorController/src/EpicsPositioner.cc](https://gitlab.psi.ch/microspectro/pixelator/-/blob/master/PixelatorController/src/EpicsPositioner.cc) into the code for other positioner types.
|
||||
|
||||
Configuring a realtime sampler requires:
|
||||
- An `Orocos` type controller (just one for all realtime sampler channels)
|
||||
- An `OrocosSampler` type detector (just one for all realtime sampler channels)
|
||||
- A positioner with the appropriate "rtDetector" fields (one for each channel)
|
||||
|
||||
Example from the PolLux Configuration
|
||||
|
||||
Orocos Controller
|
||||
```
|
||||
"Orocos1" : {
|
||||
"active" : 1,
|
||||
"type" : "Orocos",
|
||||
"nAxes" : 3
|
||||
},
|
||||
```
|
||||
|
||||
OrocosSampler Detector
|
||||
```
|
||||
"OrocosDetector1" : {
|
||||
"active" : 1,
|
||||
"controller" : "Orocos1",
|
||||
"type" : "OrocosSampler",
|
||||
"autoRecord" : 1,
|
||||
"monitor" : 1,
|
||||
"nexus_name" : "orocos1"
|
||||
},
|
||||
```
|
||||
|
||||
Positioner
|
||||
```
|
||||
"Ring_Current" : {
|
||||
"active" : 1,
|
||||
"description" : "Storage ring electron beam current",
|
||||
"getChannel" : "ARIDI-PCT:CURRENT",
|
||||
"nexus_name" : "control",
|
||||
"readOnly" : true,
|
||||
"rtDetector" : "OrocosDetector1",
|
||||
"rtDetectorChannelIndex" : 0,
|
||||
"rtDetectorMonitor" : false,
|
||||
"type" : "Epics",
|
||||
"unitChannel" : "ARIDI-PCT:CURRENT.EGU"
|
||||
},
|
||||
```
|
||||
|
||||
```
|
||||
"user_data_13" : {
|
||||
"active" : 0,
|
||||
"description" : "User Input 13",
|
||||
"getChannel" : "X07DA-ES1-USER13:DAT",
|
||||
"readOnly" : true,
|
||||
"rtDetector" : "OrocosDetector1",
|
||||
"rtDetectorChannelIndex" : 13,
|
||||
"rtDetectorMonitor" : false,
|
||||
"type" : "Epics",
|
||||
"unitChannel" : "X07DA-ES1-USER13:DAT.EGU"
|
||||
},
|
||||
```
|
||||
Reference in New Issue
Block a user