Bunch Bank Control (Version 1.3)
This panel shows the control configuration for a single bunch bank. The bunch control is determined by three waveforms, which can written to directly as waveform PVs, or can be individually edited using the controls on this page. These are the three waveform PVs (each prefixed with $(device):$(axis)
, with n
from 0 to 3):
Title | PV | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Bunch FIR Select | :BUN:n:FIRWF_S | Determines which of the four available bunch by bunch filters is active on each bunch. | ||||||||||
Output Selection | :BUN:n:OUTWF_S | Determines which outputs are selected for each bunch. The output selection is a bit mask of sources:
| ||||||||||
Bunch Gains | :BUN:n:GAINWF_S | Individual bunch gains, should be a number in the range -1 to 1 for each bunch. |
The bottom right of this screen, labelled "Settings", shows a summary of the three waveforms, as described in the Bunch Bank section of the Sequencer and Bunch Control page.
Bunch Waveform Setting
The rest of this screen is provided for manual configuration of bunch control settings. Down the right hand side, each of three sets of controls ("Set FIR", "Set DAC out", "Set DAC gain") allows a selected set of bunch to be set to the selected value, and at the bottom left ("Set Bunches") allows the bunch selection to be set and all three waveforms to be programmed in a single action.
The section "Set Bunches" provides the following PVs:
Title | PV | Description |
---|---|---|
:BUN:n:BUNCH_SELECT_S | This field can be set to a string describing the bunches to be modified by the buttons "Set All", "Set FIR", "Set DAC", and "Set gain". The exact syntax of this string is described below. If an invalid value is written the write is rejected and the Status field below is updated with a description of the format error. | |
Status | :BUN:n:SELECT_STATUS | After a successful write to :BUNCH_SELECT_S this field reads "Ok". After any unsuccessful write this field has minor severity and shows a description of the reason why the write was rejected. |
The three groups on the side enable control of the corresponding waveform.
Name | PV | Description |
---|---|---|
Set FIR | :BUN:n:FIR_SELECT_S | Chooses the FIR selection that will be written to the selected bunches when the "Set FIR" button is pressed. |
:BUN:n:FIRWF:SET_S | Updates the selected bunches of :BUN:n:FIRWF_S with the selected value. | |
Set DAC out | :BUN:n:DAC_SELECT_S | Chooses the DAC output selection that will be written to the selected bunches when the "Set DAC" button is pressed. |
:BUN:n:OUTWF:SET_S | Updates the selected bunches of :BUN:n:OUTWF_S with the selected value. | |
Set DAC gain | :BUN:n:GAIN_SELECT_S | Chooses the DAC gain selection that will be written to the selected bunches when the "Set gain" button is pressed. |
:BUN:n:GAINWF:SET_S | Updates the selected bunches of :BUN:n:GAINWF_S with the selected value. |
Bunch Select Syntax
The string written to the :BUNCH:SELECT_S
PV determines the range of bunches that will be modified by the "Set" PVs. This string is either a single :
character, selecting all bunches, or is a sequence of numbers or ranges or "skip ranges". A formal syntax can be written thus:
bunch_select = all | range range+ all = ":" range = bunch | start ":" end | start ":" step ":" end
The various syntactic options are described below:
Syntax | Meaning |
---|---|
: | Selects all bunches |
bunch | Selects the specified single bunch |
start: end | Selects the inclusive range of bunches from start to end |
start: step: end | Selects bunches starting from start spaced at intervals of step extending until but not after end. |
Valid examples are:
: | Selects all bunches |
1 2 5 6 | Selects four named bunches |
0:935 | Also selects all bunches (at DLS with 936 bunch ring) |
0:100 200:300 | Selects two ranges of numbers for a total of 202 selected bunches. |
0:5:20 | Same as selection "0 5 10 15 20". |