Update Realtime Sampler Configuration
@@ -1,15 +1,17 @@
|
||||
Introduction
|
||||
# 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.
|
||||
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. This has been implemented for both the obsolete "Orchestra" realtime system (i.e. "Orchestra Detector") and the currently recommended "Orocos" realtime system. 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)
|
||||
- The positioner configuration includes the fields:
|
||||
- "rtDetector" whose value is the name of the `OrocosSampler` type detector
|
||||
- "rtDetectorChannelIndex" whose value is an unique channel index integer
|
||||
|
||||
Example from the PolLux Configuration
|
||||
# Example from the PolLux Configuration
|
||||
|
||||
Orocos Controller
|
||||
## Orocos Controller
|
||||
```
|
||||
"Orocos1" : {
|
||||
"active" : 1,
|
||||
@@ -17,8 +19,9 @@ Orocos Controller
|
||||
"nAxes" : 3
|
||||
},
|
||||
```
|
||||
Note that the controller only needs to exist. The `nAxes` field refers to the [axis configuration](PixelatorControllerSettings#axis) and is not related to the realtime sampler. See [Config_Controller#orocos](Config_Controller#orocos) for full details.
|
||||
|
||||
OrocosSampler Detector
|
||||
## OrocosSampler Detector
|
||||
```
|
||||
"OrocosDetector1" : {
|
||||
"active" : 1,
|
||||
@@ -29,8 +32,12 @@ OrocosSampler Detector
|
||||
"nexus_name" : "orocos1"
|
||||
},
|
||||
```
|
||||
Note that only one `OrocosSampler` Detector is needed. See [Config_Detector#orocos](Config_Detector#orocos) for full details.
|
||||
|
||||
## Positioner
|
||||
|
||||
Note that any positioner can be added to the realtime sampler by adding the appropriate fields.
|
||||
|
||||
Positioner
|
||||
```
|
||||
"Ring_Current" : {
|
||||
"active" : 1,
|
||||
|
||||
Reference in New Issue
Block a user